Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc) » [EMFClient] Advice on merging 3 ex CDO exported models
| |
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1434537 is a reply to message #1434522] |
Tue, 30 September 2014 08:06 |
David Wynter Messages: 4624 Registered: July 2009 |
Senior Member |
|
|
Hi,
The 3 models are the same, the 3 model instances ( i.e. model data) all derive from a single parent model instance. They should not have any overlapping model objects across these 3 model instances.
We want to merge these 3 model instances to end up with one model instance containing all objects from all 3 source model instances.
The issue with CDO is after a variable amount of time it causes a corruption, it does not seem to be associated with our code, because it is at random which model class is being persisted at the time of the corruption, we do not use multi threading, we use our GUI design tool 1 to 1 to a single DbStore on H2. We are not aware of the corruption at the time we save the model, i.e. it saves. There are other times it fails to save, but that does not seem to cause an issue, it recovers.
Eike asked us to provide a test case, but they pass in general. Although a test class that copies the model will fail consistently once a repo is corrupted. Eike no longer has time to investigate, even when offered paid consulting, he has access to the corrupted repos on a google drive, but no time to look at them. Commits on CDO have really fallen off since the end of May. At this stage I think CDO is no longer tenable as a project, I have a raised the issues in the EMF forum, they remain unresolved. Not being able to provide a test case that shows the process that causes corruption means I cannot raise a bug. So we are trapped, with hundreds of hours of modelling work in corrupted CDO repos. We are just trying to recover the situation. EMFStore is our destination. As a startup and being so dependent on CDO this has been a massive problem.
|
|
|
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1434584 is a reply to message #1434537] |
Tue, 30 September 2014 09:37 |
Jonas Helming Messages: 699 Registered: July 2009 |
Senior Member |
|
|
Hi David,
how were those three instances divided? If there are no common,
overlapping model elements, how should they be combined? Is there a
common containment structure, elements should be put in? Depending on
your case, I think it might be fairly simple to programmatically combine
the models, especially if there is no overlapping.
The merging algorithm of EMF Store works change-based. In your case, you
are comparing states (without having the history available), so it will
not solve your case.
Best regards
Jonas
Am 30.09.2014 10:06, schrieb David Wynter:
> Hi,
>
> The 3 models are the same, the 3 model instances ( i.e. model data) all
> derive from a single parent model instance. They should not have any
> overlapping model objects across these 3 model instances.
> We want to merge these 3 model instances to end up with one model
> instance containing all objects from all 3 source model instances.
>
> The issue with CDO is after a variable amount of time it causes a
> corruption, it does not seem to be associated with our code, because it
> is at random which model class is being persisted at the time of the
> corruption, we do not use multi threading, we use our GUI design tool 1
> to 1 to a single DbStore on H2. We are not aware of the corruption at
> the time we save the model, i.e. it saves. There are other times it
> fails to save, but that does not seem to cause an issue, it recovers.
> Eike asked us to provide a test case, but they pass in general. Although
> a test class that copies the model will fail consistently once a repo is
> corrupted. Eike no longer has time to investigate, even when offered
> paid consulting, he has access to the corrupted repos on a google drive,
> but no time to look at them. Commits on CDO have really fallen off since
> the end of May. At this stage I think CDO is no longer tenable as a
> project, I have a raised the issues in the EMF forum, they remain
> unresolved. Not being able to provide a test case that shows the process
> that causes corruption means I cannot raise a bug. So we are trapped,
> with hundreds of hours of modelling work in corrupted CDO repos. We are
> just trying to recover the situation. EMFStore is our destination. As a
> startup and being so dependent on CDO this has been a massive problem.
|
|
|
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1434803 is a reply to message #1434584] |
Tue, 30 September 2014 16:19 |
David Wynter Messages: 4624 Registered: July 2009 |
Senior Member |
|
|
Hi,
To answer each in turn.
"how were those three instances divided? If there are no common,
overlapping model elements, how should they be combined?" As I stated there is a common parent, since branching there are no common overlapping model elements,
but of course all 3 have all the same original model elements.
I now have the makeithappen EMFClient running with our ecore model registered. I try to Import a project, delighted to see it is xmi format. But it runs for about 10 minutes on each of our 3 model instances in xmi and then fails without any console message and no error message.
I found the log, now attached.
Console output
Configuration location:
file:/Users/david/Documents/workspace/.metadata/.plugins/org.eclipse.pde.core/ECP View and Domain Model Editor/
Configuration file:
file:/Users/david/Documents/workspace/.metadata/.plugins/org.eclipse.pde.core/ECP View and Domain Model Editor/config.ini loaded
Install location:
file:/Users/david/eclipse/
Framework located:
file:/Users/david/eclipse/plugins/org.eclipse.osgi_3.9.1.v20140110-1610.jar
Framework classpath:
file:/Users/david/eclipse/plugins/org.eclipse.osgi_3.9.1.v20140110-1610.jar
Splash location:
null
Debug options:
file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/.options not found
Time to load bundles: 1335
Starting application: 5640
UIProviderDescriptor: org.eclipse.emf.ecp.emfstore.ui [27] --> file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/plugins/org.eclipse.emf.ecp.emfstore.ui_1.4.0.20140916-1322.jar
UIProviderDescriptor: org.eclipse.emf.ecp.workspace.ui [97] --> file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/plugins/org.eclipse.emf.ecp.workspace.ui_1.4.0.20140916-1322.jar
Loading ECPProjectManagerImpl from /Users/david/Documents/runtime-ECPViewModelAndDomainEditor/.metadata/.plugins/org.eclipse.emf.ecp.core/projects
ProviderDescriptor: org.eclipse.emf.ecp.emfstore.core [130] --> file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/plugins/org.eclipse.emf.ecp.emfstore.core_1.4.0.20140916-1322.jar
ProviderDescriptor: org.eclipse.emf.ecp.workspace.core [181] --> file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/plugins/org.eclipse.emf.ecp.workspace.core_1.4.0.20140916-1322.jar
Loading ECPRepositoryManagerImpl from /Users/david/Documents/runtime-ECPViewModelAndDomainEditor/.metadata/.plugins/org.eclipse.emf.ecp.core/repositories
RepositoryDescriptor: org.eclipse.emf.ecp.emfstore.ui [27] --> file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/plugins/org.eclipse.emf.ecp.emfstore.ui_1.4.0.20140916-1322.jar
Application Started: 10614
...
No location provider or error while instantiating location provider, switching to default location!
Property file read. (/Users/david/.emfstore/server/profiles/demoClient/./conf/es.properties)
Server data home location: /Users/david/.emfstore/server/profiles/demoClient/
JVM Max Memory: 1,037 MByte
Couldn't load password file from path: /Users/david/.emfstore/server/profiles/demoClient/./conf/user.properties
Using WebServerProvider class org.eclipse.emf.emfstore.internal.server.connection.xmlrpc.XmlRpcBuiltinWebServer at port 8080
Started XML RPC Webserver on port: 8080
Notifying post startup listener
Initialitation COMPLETE.
Server is RUNNING...Time to relax...
Resource save options initialized:
USE_ENCODED_ATTRIBUTE_STYLE: true
USE_CACHED_LOOKUP_TABLE: []
ENCODING: UTF-8
FLUSH_THRESHOLD: 100000
USE_FILE_BUFFER: true
-
Attachment: log
(Size: 373.63KB, Downloaded 147 times)
[Updated on: Tue, 30 September 2014 16:30] Report message to a moderator
|
|
|
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1434826 is a reply to message #1434803] |
Tue, 30 September 2014 16:59 |
David Wynter Messages: 4624 Registered: July 2009 |
Senior Member |
|
|
I thought I corrected the model uri and awaited for the model to complete loading.
But still get this
!ENTRY org.eclipse.ui 4 0 2014-09-30 18:07:03.374
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.e4.core.di.InjectionException: org.eclipse.emf.common.util.WrappedException: java.lang.ClassNotFoundException: com.yambina.edm.edmmodel.modelPackage cannot be found by com.eclipsesource.makeithappen.model_0.1.0.qualifier
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:63)
This is the correct package name and the package is in the com.eclipsesource.makeithappen.model project?
[Updated on: Tue, 30 September 2014 17:14] Report message to a moderator
|
|
| | | | | | |
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1436059 is a reply to message #1436022] |
Thu, 02 October 2014 10:26 |
David Wynter Messages: 4624 Registered: July 2009 |
Senior Member |
|
|
Ok, I traced. now I get it. Import Project is not for general ecore models that have been exported to xmi, it is some sort of specific model that contains an outer element ProjectSpace. Line 68 of org.eclipse.emf.emfstore.internal.client.model.util.ResourceHelper tells me this.
So how do you import ecore models that are in xmi format to EMFClient?
Also interested in resources explaining how to merge instance of the same model with a common parent dataset.
[Updated on: Thu, 02 October 2014 10:27] Report message to a moderator
|
|
|
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1436751 is a reply to message #1436059] |
Fri, 03 October 2014 11:02 |
David Wynter Messages: 4624 Registered: July 2009 |
Senior Member |
|
|
Proving to be difficult to merge these instances of the same model. EMF Compare fails with
An internal error occurred during: "Compute Model Differences".
loader constraint violation: when resolving method "org.eclipse.emf.compare.scope.FilterComparisonScope.setResourceSetContentFilter(Lcom/google/common/base/Predicate;)V" the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current class, org/eclipse/emf/compare/ide/ui/internal/logical/EMFSynchronizationModel, and the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for resolved class, org/eclipse/emf/compare/scope/FilterComparisonScope, have different Class objects for the type ope.setResourceSetContentFilter(Lcom/google/common/base/Predicate;)V used in the signature
[Updated on: Fri, 03 October 2014 11:03] Report message to a moderator
|
|
| |
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1438772 is a reply to message #1438032] |
Mon, 06 October 2014 13:19 |
David Wynter Messages: 4624 Registered: July 2009 |
Senior Member |
|
|
Hi,
Tried that, it works to a point. It looks like you need a single element at root level under the
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:edmmodel="http://www.yambina.com/edmmodel">
top element. We have lots of peer elements at the same level in the hierarchy under xmi:XMI and it only imports the first of these into the Project.
I added a top level element <parent></parent> under the xmi:XMI element that contains all my model elements as children. But this does not seem to load anything. Is there documentation on what EMFClient expects in the xmi file for it to successfully load an xmi file?
I have a concern on trying to merge these models, ecore uses element offsets to identify related elements e.g.
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:edmmodel="http://www.yambina.com/edmmodel">
<parent>
<edmmodel:Product Name="Bloomberg Per Security Product">
<uuid lsb="-8801872204936836175" msb="1090523321334386058"/>
<workflow product="/0" etlGroups="/575 /579 /736 /740 /868 /892" localName="BBG Bond Loading" valid="true">
<uuid lsb="-5346265735007129715" msb="-7710296907219514541"/>
</workflow>
...
You can see etlGroups contained within workflow here are expressed as offsets. The other models which were developed from the same parent will have different elements at these offsets. Will the Merge facility be able to accommodate these different offsets?
[Updated on: Mon, 06 October 2014 15:33] Report message to a moderator
|
|
| |
Goto Forum:
Current Time: Thu Sep 19 12:04:18 GMT 2024
Powered by FUDForum. Page generated in 0.02936 seconds
|