Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc) » [Teneo] Enhancing the ECore classes
| | |
Re: [Teneo] Enhancing the ECore classes [message #108758 is a reply to message #108744] |
Mon, 28 January 2008 19:26 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi David,
The testcases use programmatic creation of the jdo file. Can you try the same using:
JpoxHelper.INSTANCE.generateMapping(...).
gr. Martin
david wrote:
> Hi,
>
> Not sure where you get this jdo mapping? The package.jdo produced by
> Teneo does not include the ECore classes, only the classes from my own
> XSD. Did I miss something? How do I include the ECore classes in the
> package.jdo produced?
>
> Thx.
>
> David
>
> Martin Taal wrote:
>> Hi David,
>> I am not sure if this is related to the enhancement. How does the jdo
>> mapping look like for this field?
>>
>> To give you an idea, this is a mapping for mixed which I have in one
>> of the testcases:
>> <field name="mixed" persistence-modifier="persistent">
>> <collection
>> element-type="org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry "/>
>> <join name="letterbodytype_mixed"/>
>> <element>
>> <embedded>
>> <field name="featurePath">
>> <column name="FEATUREPATH"/>
>> </field>
>> <field name="anyValue">
>> <column name="ANYVALUE"/>
>> </field>
>> </embedded>
>> </element>
>> <order column="LETTERBODYTYPE_MIXED_IDX"/>
>> </field>
>>
>> gr. Martin
>>
>> david wrote:
>>> Hi,
>>>
>>> Not sure if I missed something in the steps to create my own JPOX
>>> persistence using Teneo, but I get this
>>>
>>> javax.jdo.JDOUserException: Field
>>> "org.mddl.mddl._3.impl.CallableTypeImpl.mixed" is declared as a
>>> reference type (interface/Object) but no implementation classes of
>>> "org.eclipse.emf.ecore.util.FeatureMap" have been found!
>>> at
>>> org.jpox.metadata.MetaDataUtils.getImplementationNamesForRef erenceField(MetaDataUtils.java:441)
>>>
>>> at
>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForRef erenceField(ColumnCreator.java:250)
>>>
>>> at
>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForFie ldUsingReference(ColumnCreator.java:224)
>>>
>>> at
>>> org.jpox.store.mapping.ReferenceMapping.createColumns(Refere nceMapping.java:77)
>>>
>>> at
>>> org.jpox.store.mapping.ReferenceMapping.initialize(Reference Mapping.java:63)
>>>
>>>
>>> .....
>>>
>>>
>>> So clearly the ECore classes are not enhanced. What did I miss?
>>>
>>> Thx.
>>>
>>> David
>>
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Enhancing the ECore classes [message #108783 is a reply to message #108758] |
Mon, 28 January 2008 22:23 |
David Wynter Messages: 4624 Registered: July 2009 |
Senior Member |
|
|
Hi,
So does this mean that no Teneo generated JPOX can be used unless you
programatically include the ECore package.jdo generation? I did not do
the library example, but had read the documentation but did not see this
requirement, which seems a fundamental one. Surely any pacakge.jdo
produced by Teneo will require use of the ECore classes and therefore
each time the ECore classes will be require enhancing too?
Thx.
David
Martin Taal wrote:
> Hi David,
> The testcases use programmatic creation of the jdo file. Can you try the
> same using: JpoxHelper.INSTANCE.generateMapping(...).
>
> gr. Martin
>
> david wrote:
>> Hi,
>>
>> Not sure where you get this jdo mapping? The package.jdo produced by
>> Teneo does not include the ECore classes, only the classes from my own
>> XSD. Did I miss something? How do I include the ECore classes in the
>> package.jdo produced?
>>
>> Thx.
>>
>> David
>>
>> Martin Taal wrote:
>>> Hi David,
>>> I am not sure if this is related to the enhancement. How does the jdo
>>> mapping look like for this field?
>>>
>>> To give you an idea, this is a mapping for mixed which I have in one
>>> of the testcases:
>>> <field name="mixed" persistence-modifier="persistent">
>>> <collection
>>> element-type="org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry "/>
>>> <join name="letterbodytype_mixed"/>
>>> <element>
>>> <embedded>
>>> <field name="featurePath">
>>> <column name="FEATUREPATH"/>
>>> </field>
>>> <field name="anyValue">
>>> <column name="ANYVALUE"/>
>>> </field>
>>> </embedded>
>>> </element>
>>> <order column="LETTERBODYTYPE_MIXED_IDX"/>
>>> </field>
>>>
>>> gr. Martin
>>>
>>> david wrote:
>>>> Hi,
>>>>
>>>> Not sure if I missed something in the steps to create my own JPOX
>>>> persistence using Teneo, but I get this
>>>>
>>>> javax.jdo.JDOUserException: Field
>>>> "org.mddl.mddl._3.impl.CallableTypeImpl.mixed" is declared as a
>>>> reference type (interface/Object) but no implementation classes of
>>>> "org.eclipse.emf.ecore.util.FeatureMap" have been found!
>>>> at
>>>> org.jpox.metadata.MetaDataUtils.getImplementationNamesForRef erenceField(MetaDataUtils.java:441)
>>>>
>>>> at
>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForRef erenceField(ColumnCreator.java:250)
>>>>
>>>> at
>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForFie ldUsingReference(ColumnCreator.java:224)
>>>>
>>>> at
>>>> org.jpox.store.mapping.ReferenceMapping.createColumns(Refere nceMapping.java:77)
>>>>
>>>> at
>>>> org.jpox.store.mapping.ReferenceMapping.initialize(Reference Mapping.java:63)
>>>>
>>>>
>>>> .....
>>>>
>>>>
>>>> So clearly the ECore classes are not enhanced. What did I miss?
>>>>
>>>> Thx.
>>>>
>>>> David
>>>
>>>
>
>
|
|
|
Re: [Teneo] Enhancing the ECore classes [message #108808 is a reply to message #108783] |
Mon, 28 January 2008 22:35 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi David,
No it is different. For featuremap (and anytype) Teneo has its own classes (for example
org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry). These are located in a separate jar file
(org.eclipse.emf.teneo.jpox.enhanced.jar) which is in the org.eclipse.emf.teneo.jpox plugin.
The classes in this jar file are already enhanced and the classes are exported by the
org.eclipse.emf.teneo.jpox plugin.
So in a plugin environment using the org.eclipse.emf.teneo.jpox will also make these enhanced
classes available to you. Enhancing the ecore classes is therefore not required.
It seems that during package.jdo generation the featuremap/mixed is not recognized as such.
Can you post the jdo you get? If you also post your model then I can reproduce it myself. You can
also send me the model directly (mtaal@elver.org).
gr. Martin
david wrote:
> Hi,
>
> So does this mean that no Teneo generated JPOX can be used unless you
> programatically include the ECore package.jdo generation? I did not do
> the library example, but had read the documentation but did not see this
> requirement, which seems a fundamental one. Surely any pacakge.jdo
> produced by Teneo will require use of the ECore classes and therefore
> each time the ECore classes will be require enhancing too?
>
> Thx.
>
> David
>
> Martin Taal wrote:
>> Hi David,
>> The testcases use programmatic creation of the jdo file. Can you try
>> the same using: JpoxHelper.INSTANCE.generateMapping(...).
>>
>> gr. Martin
>>
>> david wrote:
>>> Hi,
>>>
>>> Not sure where you get this jdo mapping? The package.jdo produced by
>>> Teneo does not include the ECore classes, only the classes from my
>>> own XSD. Did I miss something? How do I include the ECore classes in
>>> the package.jdo produced?
>>>
>>> Thx.
>>>
>>> David
>>>
>>> Martin Taal wrote:
>>>> Hi David,
>>>> I am not sure if this is related to the enhancement. How does the
>>>> jdo mapping look like for this field?
>>>>
>>>> To give you an idea, this is a mapping for mixed which I have in one
>>>> of the testcases:
>>>> <field name="mixed" persistence-modifier="persistent">
>>>> <collection
>>>> element-type="org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry "/>
>>>> <join name="letterbodytype_mixed"/>
>>>> <element>
>>>> <embedded>
>>>> <field name="featurePath">
>>>> <column name="FEATUREPATH"/>
>>>> </field>
>>>> <field name="anyValue">
>>>> <column name="ANYVALUE"/>
>>>> </field>
>>>> </embedded>
>>>> </element>
>>>> <order column="LETTERBODYTYPE_MIXED_IDX"/>
>>>> </field>
>>>>
>>>> gr. Martin
>>>>
>>>> david wrote:
>>>>> Hi,
>>>>>
>>>>> Not sure if I missed something in the steps to create my own JPOX
>>>>> persistence using Teneo, but I get this
>>>>>
>>>>> javax.jdo.JDOUserException: Field
>>>>> "org.mddl.mddl._3.impl.CallableTypeImpl.mixed" is declared as a
>>>>> reference type (interface/Object) but no implementation classes of
>>>>> "org.eclipse.emf.ecore.util.FeatureMap" have been found!
>>>>> at
>>>>> org.jpox.metadata.MetaDataUtils.getImplementationNamesForRef erenceField(MetaDataUtils.java:441)
>>>>>
>>>>> at
>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForRef erenceField(ColumnCreator.java:250)
>>>>>
>>>>> at
>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForFie ldUsingReference(ColumnCreator.java:224)
>>>>>
>>>>> at
>>>>> org.jpox.store.mapping.ReferenceMapping.createColumns(Refere nceMapping.java:77)
>>>>>
>>>>> at
>>>>> org.jpox.store.mapping.ReferenceMapping.initialize(Reference Mapping.java:63)
>>>>>
>>>>>
>>>>> .....
>>>>>
>>>>>
>>>>> So clearly the ECore classes are not enhanced. What did I miss?
>>>>>
>>>>> Thx.
>>>>>
>>>>> David
>>>>
>>>>
>>
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Enhancing the ECore classes [message #108822 is a reply to message #108783] |
Mon, 28 January 2008 22:44 |
David Wynter Messages: 4624 Registered: July 2009 |
Senior Member |
|
|
Hi,
Another thing that confused me is the last item on the Troubleshooting
page. It says "Teneo uses the runtime version of the ecore model. The
runtime version is present as java code in the generated EPackage
implementation class." which made me think that that was how the ECore
classes got enhanced. But there is no sign of this EPackage generated file?
Thx.
David
david wrote:
> Hi,
>
> So does this mean that no Teneo generated JPOX can be used unless you
> programatically include the ECore package.jdo generation? I did not do
> the library example, but had read the documentation but did not see this
> requirement, which seems a fundamental one. Surely any pacakge.jdo
> produced by Teneo will require use of the ECore classes and therefore
> each time the ECore classes will be require enhancing too?
>
> Thx.
>
> David
>
> Martin Taal wrote:
>> Hi David,
>> The testcases use programmatic creation of the jdo file. Can you try
>> the same using: JpoxHelper.INSTANCE.generateMapping(...).
>>
>> gr. Martin
>>
>> david wrote:
>>> Hi,
>>>
>>> Not sure where you get this jdo mapping? The package.jdo produced by
>>> Teneo does not include the ECore classes, only the classes from my
>>> own XSD. Did I miss something? How do I include the ECore classes in
>>> the package.jdo produced?
>>>
>>> Thx.
>>>
>>> David
>>>
>>> Martin Taal wrote:
>>>> Hi David,
>>>> I am not sure if this is related to the enhancement. How does the
>>>> jdo mapping look like for this field?
>>>>
>>>> To give you an idea, this is a mapping for mixed which I have in one
>>>> of the testcases:
>>>> <field name="mixed" persistence-modifier="persistent">
>>>> <collection
>>>> element-type="org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry "/>
>>>> <join name="letterbodytype_mixed"/>
>>>> <element>
>>>> <embedded>
>>>> <field name="featurePath">
>>>> <column name="FEATUREPATH"/>
>>>> </field>
>>>> <field name="anyValue">
>>>> <column name="ANYVALUE"/>
>>>> </field>
>>>> </embedded>
>>>> </element>
>>>> <order column="LETTERBODYTYPE_MIXED_IDX"/>
>>>> </field>
>>>>
>>>> gr. Martin
>>>>
>>>> david wrote:
>>>>> Hi,
>>>>>
>>>>> Not sure if I missed something in the steps to create my own JPOX
>>>>> persistence using Teneo, but I get this
>>>>>
>>>>> javax.jdo.JDOUserException: Field
>>>>> "org.mddl.mddl._3.impl.CallableTypeImpl.mixed" is declared as a
>>>>> reference type (interface/Object) but no implementation classes of
>>>>> "org.eclipse.emf.ecore.util.FeatureMap" have been found!
>>>>> at
>>>>> org.jpox.metadata.MetaDataUtils.getImplementationNamesForRef erenceField(MetaDataUtils.java:441)
>>>>>
>>>>> at
>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForRef erenceField(ColumnCreator.java:250)
>>>>>
>>>>> at
>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForFie ldUsingReference(ColumnCreator.java:224)
>>>>>
>>>>> at
>>>>> org.jpox.store.mapping.ReferenceMapping.createColumns(Refere nceMapping.java:77)
>>>>>
>>>>> at
>>>>> org.jpox.store.mapping.ReferenceMapping.initialize(Reference Mapping.java:63)
>>>>>
>>>>>
>>>>> .....
>>>>>
>>>>>
>>>>> So clearly the ECore classes are not enhanced. What did I miss?
>>>>>
>>>>> Thx.
>>>>>
>>>>> David
>>>>
>>>>
>>
>>
|
|
|
Re: [Teneo] Enhancing the ECore classes [message #108835 is a reply to message #108822] |
Mon, 28 January 2008 23:14 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi David,
Maybe the documentation is confusing in this regard.
To give some more background info. References to the Ecore model itself are not persisted as they
are statically present in the generated code. The only exceptions are featuremap (which supports the
mixed type) and anytype. Both of these require additional fields to store a reference to the ecore
model (to an efeature). However the ecore model is not persisted because the reference to the ecore
model is persisted as a string in the db. When the object (featuremap) is read back from the db then
the string is translated to the in-memory efeature. But this is only required for featuremap.
gr. Martin
david wrote:
> Hi,
>
> Another thing that confused me is the last item on the Troubleshooting
> page. It says "Teneo uses the runtime version of the ecore model. The
> runtime version is present as java code in the generated EPackage
> implementation class." which made me think that that was how the ECore
> classes got enhanced. But there is no sign of this EPackage generated file?
>
> Thx.
>
> David
>
> david wrote:
>> Hi,
>>
>> So does this mean that no Teneo generated JPOX can be used unless you
>> programatically include the ECore package.jdo generation? I did not do
>> the library example, but had read the documentation but did not see
>> this requirement, which seems a fundamental one. Surely any
>> pacakge.jdo produced by Teneo will require use of the ECore classes
>> and therefore each time the ECore classes will be require enhancing too?
>>
>> Thx.
>>
>> David
>>
>> Martin Taal wrote:
>>> Hi David,
>>> The testcases use programmatic creation of the jdo file. Can you try
>>> the same using: JpoxHelper.INSTANCE.generateMapping(...).
>>>
>>> gr. Martin
>>>
>>> david wrote:
>>>> Hi,
>>>>
>>>> Not sure where you get this jdo mapping? The package.jdo produced by
>>>> Teneo does not include the ECore classes, only the classes from my
>>>> own XSD. Did I miss something? How do I include the ECore classes in
>>>> the package.jdo produced?
>>>>
>>>> Thx.
>>>>
>>>> David
>>>>
>>>> Martin Taal wrote:
>>>>> Hi David,
>>>>> I am not sure if this is related to the enhancement. How does the
>>>>> jdo mapping look like for this field?
>>>>>
>>>>> To give you an idea, this is a mapping for mixed which I have in
>>>>> one of the testcases:
>>>>> <field name="mixed" persistence-modifier="persistent">
>>>>> <collection
>>>>> element-type="org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry "/>
>>>>> <join name="letterbodytype_mixed"/>
>>>>> <element>
>>>>> <embedded>
>>>>> <field name="featurePath">
>>>>> <column name="FEATUREPATH"/>
>>>>> </field>
>>>>> <field name="anyValue">
>>>>> <column name="ANYVALUE"/>
>>>>> </field>
>>>>> </embedded>
>>>>> </element>
>>>>> <order column="LETTERBODYTYPE_MIXED_IDX"/>
>>>>> </field>
>>>>>
>>>>> gr. Martin
>>>>>
>>>>> david wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Not sure if I missed something in the steps to create my own JPOX
>>>>>> persistence using Teneo, but I get this
>>>>>>
>>>>>> javax.jdo.JDOUserException: Field
>>>>>> "org.mddl.mddl._3.impl.CallableTypeImpl.mixed" is declared as a
>>>>>> reference type (interface/Object) but no implementation classes of
>>>>>> "org.eclipse.emf.ecore.util.FeatureMap" have been found!
>>>>>> at
>>>>>> org.jpox.metadata.MetaDataUtils.getImplementationNamesForRef erenceField(MetaDataUtils.java:441)
>>>>>>
>>>>>> at
>>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForRef erenceField(ColumnCreator.java:250)
>>>>>>
>>>>>> at
>>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForFie ldUsingReference(ColumnCreator.java:224)
>>>>>>
>>>>>> at
>>>>>> org.jpox.store.mapping.ReferenceMapping.createColumns(Refere nceMapping.java:77)
>>>>>>
>>>>>> at
>>>>>> org.jpox.store.mapping.ReferenceMapping.initialize(Reference Mapping.java:63)
>>>>>>
>>>>>>
>>>>>> .....
>>>>>>
>>>>>>
>>>>>> So clearly the ECore classes are not enhanced. What did I miss?
>>>>>>
>>>>>> Thx.
>>>>>>
>>>>>> David
>>>>>
>>>>>
>>>
>>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
| | |
Re: [Teneo] Enhancing the ECore classes [message #614122 is a reply to message #108744] |
Mon, 28 January 2008 19:26 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi David,
The testcases use programmatic creation of the jdo file. Can you try the same using:
JpoxHelper.INSTANCE.generateMapping(...).
gr. Martin
david wrote:
> Hi,
>
> Not sure where you get this jdo mapping? The package.jdo produced by
> Teneo does not include the ECore classes, only the classes from my own
> XSD. Did I miss something? How do I include the ECore classes in the
> package.jdo produced?
>
> Thx.
>
> David
>
> Martin Taal wrote:
>> Hi David,
>> I am not sure if this is related to the enhancement. How does the jdo
>> mapping look like for this field?
>>
>> To give you an idea, this is a mapping for mixed which I have in one
>> of the testcases:
>> <field name="mixed" persistence-modifier="persistent">
>> <collection
>> element-type="org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry "/>
>> <join name="letterbodytype_mixed"/>
>> <element>
>> <embedded>
>> <field name="featurePath">
>> <column name="FEATUREPATH"/>
>> </field>
>> <field name="anyValue">
>> <column name="ANYVALUE"/>
>> </field>
>> </embedded>
>> </element>
>> <order column="LETTERBODYTYPE_MIXED_IDX"/>
>> </field>
>>
>> gr. Martin
>>
>> david wrote:
>>> Hi,
>>>
>>> Not sure if I missed something in the steps to create my own JPOX
>>> persistence using Teneo, but I get this
>>>
>>> javax.jdo.JDOUserException: Field
>>> "org.mddl.mddl._3.impl.CallableTypeImpl.mixed" is declared as a
>>> reference type (interface/Object) but no implementation classes of
>>> "org.eclipse.emf.ecore.util.FeatureMap" have been found!
>>> at
>>> org.jpox.metadata.MetaDataUtils.getImplementationNamesForRef erenceField(MetaDataUtils.java:441)
>>>
>>> at
>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForRef erenceField(ColumnCreator.java:250)
>>>
>>> at
>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForFie ldUsingReference(ColumnCreator.java:224)
>>>
>>> at
>>> org.jpox.store.mapping.ReferenceMapping.createColumns(Refere nceMapping.java:77)
>>>
>>> at
>>> org.jpox.store.mapping.ReferenceMapping.initialize(Reference Mapping.java:63)
>>>
>>>
>>> .....
>>>
>>>
>>> So clearly the ECore classes are not enhanced. What did I miss?
>>>
>>> Thx.
>>>
>>> David
>>
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Enhancing the ECore classes [message #614124 is a reply to message #108758] |
Mon, 28 January 2008 22:23 |
David Wynter Messages: 4624 Registered: July 2009 |
Senior Member |
|
|
Hi,
So does this mean that no Teneo generated JPOX can be used unless you
programatically include the ECore package.jdo generation? I did not do
the library example, but had read the documentation but did not see this
requirement, which seems a fundamental one. Surely any pacakge.jdo
produced by Teneo will require use of the ECore classes and therefore
each time the ECore classes will be require enhancing too?
Thx.
David
Martin Taal wrote:
> Hi David,
> The testcases use programmatic creation of the jdo file. Can you try the
> same using: JpoxHelper.INSTANCE.generateMapping(...).
>
> gr. Martin
>
> david wrote:
>> Hi,
>>
>> Not sure where you get this jdo mapping? The package.jdo produced by
>> Teneo does not include the ECore classes, only the classes from my own
>> XSD. Did I miss something? How do I include the ECore classes in the
>> package.jdo produced?
>>
>> Thx.
>>
>> David
>>
>> Martin Taal wrote:
>>> Hi David,
>>> I am not sure if this is related to the enhancement. How does the jdo
>>> mapping look like for this field?
>>>
>>> To give you an idea, this is a mapping for mixed which I have in one
>>> of the testcases:
>>> <field name="mixed" persistence-modifier="persistent">
>>> <collection
>>> element-type="org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry "/>
>>> <join name="letterbodytype_mixed"/>
>>> <element>
>>> <embedded>
>>> <field name="featurePath">
>>> <column name="FEATUREPATH"/>
>>> </field>
>>> <field name="anyValue">
>>> <column name="ANYVALUE"/>
>>> </field>
>>> </embedded>
>>> </element>
>>> <order column="LETTERBODYTYPE_MIXED_IDX"/>
>>> </field>
>>>
>>> gr. Martin
>>>
>>> david wrote:
>>>> Hi,
>>>>
>>>> Not sure if I missed something in the steps to create my own JPOX
>>>> persistence using Teneo, but I get this
>>>>
>>>> javax.jdo.JDOUserException: Field
>>>> "org.mddl.mddl._3.impl.CallableTypeImpl.mixed" is declared as a
>>>> reference type (interface/Object) but no implementation classes of
>>>> "org.eclipse.emf.ecore.util.FeatureMap" have been found!
>>>> at
>>>> org.jpox.metadata.MetaDataUtils.getImplementationNamesForRef erenceField(MetaDataUtils.java:441)
>>>>
>>>> at
>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForRef erenceField(ColumnCreator.java:250)
>>>>
>>>> at
>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForFie ldUsingReference(ColumnCreator.java:224)
>>>>
>>>> at
>>>> org.jpox.store.mapping.ReferenceMapping.createColumns(Refere nceMapping.java:77)
>>>>
>>>> at
>>>> org.jpox.store.mapping.ReferenceMapping.initialize(Reference Mapping.java:63)
>>>>
>>>>
>>>> .....
>>>>
>>>>
>>>> So clearly the ECore classes are not enhanced. What did I miss?
>>>>
>>>> Thx.
>>>>
>>>> David
>>>
>>>
>
>
|
|
|
Re: [Teneo] Enhancing the ECore classes [message #614126 is a reply to message #108783] |
Mon, 28 January 2008 22:35 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi David,
No it is different. For featuremap (and anytype) Teneo has its own classes (for example
org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry). These are located in a separate jar file
(org.eclipse.emf.teneo.jpox.enhanced.jar) which is in the org.eclipse.emf.teneo.jpox plugin.
The classes in this jar file are already enhanced and the classes are exported by the
org.eclipse.emf.teneo.jpox plugin.
So in a plugin environment using the org.eclipse.emf.teneo.jpox will also make these enhanced
classes available to you. Enhancing the ecore classes is therefore not required.
It seems that during package.jdo generation the featuremap/mixed is not recognized as such.
Can you post the jdo you get? If you also post your model then I can reproduce it myself. You can
also send me the model directly (mtaal@elver.org).
gr. Martin
david wrote:
> Hi,
>
> So does this mean that no Teneo generated JPOX can be used unless you
> programatically include the ECore package.jdo generation? I did not do
> the library example, but had read the documentation but did not see this
> requirement, which seems a fundamental one. Surely any pacakge.jdo
> produced by Teneo will require use of the ECore classes and therefore
> each time the ECore classes will be require enhancing too?
>
> Thx.
>
> David
>
> Martin Taal wrote:
>> Hi David,
>> The testcases use programmatic creation of the jdo file. Can you try
>> the same using: JpoxHelper.INSTANCE.generateMapping(...).
>>
>> gr. Martin
>>
>> david wrote:
>>> Hi,
>>>
>>> Not sure where you get this jdo mapping? The package.jdo produced by
>>> Teneo does not include the ECore classes, only the classes from my
>>> own XSD. Did I miss something? How do I include the ECore classes in
>>> the package.jdo produced?
>>>
>>> Thx.
>>>
>>> David
>>>
>>> Martin Taal wrote:
>>>> Hi David,
>>>> I am not sure if this is related to the enhancement. How does the
>>>> jdo mapping look like for this field?
>>>>
>>>> To give you an idea, this is a mapping for mixed which I have in one
>>>> of the testcases:
>>>> <field name="mixed" persistence-modifier="persistent">
>>>> <collection
>>>> element-type="org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry "/>
>>>> <join name="letterbodytype_mixed"/>
>>>> <element>
>>>> <embedded>
>>>> <field name="featurePath">
>>>> <column name="FEATUREPATH"/>
>>>> </field>
>>>> <field name="anyValue">
>>>> <column name="ANYVALUE"/>
>>>> </field>
>>>> </embedded>
>>>> </element>
>>>> <order column="LETTERBODYTYPE_MIXED_IDX"/>
>>>> </field>
>>>>
>>>> gr. Martin
>>>>
>>>> david wrote:
>>>>> Hi,
>>>>>
>>>>> Not sure if I missed something in the steps to create my own JPOX
>>>>> persistence using Teneo, but I get this
>>>>>
>>>>> javax.jdo.JDOUserException: Field
>>>>> "org.mddl.mddl._3.impl.CallableTypeImpl.mixed" is declared as a
>>>>> reference type (interface/Object) but no implementation classes of
>>>>> "org.eclipse.emf.ecore.util.FeatureMap" have been found!
>>>>> at
>>>>> org.jpox.metadata.MetaDataUtils.getImplementationNamesForRef erenceField(MetaDataUtils.java:441)
>>>>>
>>>>> at
>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForRef erenceField(ColumnCreator.java:250)
>>>>>
>>>>> at
>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForFie ldUsingReference(ColumnCreator.java:224)
>>>>>
>>>>> at
>>>>> org.jpox.store.mapping.ReferenceMapping.createColumns(Refere nceMapping.java:77)
>>>>>
>>>>> at
>>>>> org.jpox.store.mapping.ReferenceMapping.initialize(Reference Mapping.java:63)
>>>>>
>>>>>
>>>>> .....
>>>>>
>>>>>
>>>>> So clearly the ECore classes are not enhanced. What did I miss?
>>>>>
>>>>> Thx.
>>>>>
>>>>> David
>>>>
>>>>
>>
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Enhancing the ECore classes [message #614127 is a reply to message #108783] |
Mon, 28 January 2008 22:44 |
David Wynter Messages: 4624 Registered: July 2009 |
Senior Member |
|
|
Hi,
Another thing that confused me is the last item on the Troubleshooting
page. It says "Teneo uses the runtime version of the ecore model. The
runtime version is present as java code in the generated EPackage
implementation class." which made me think that that was how the ECore
classes got enhanced. But there is no sign of this EPackage generated file?
Thx.
David
david wrote:
> Hi,
>
> So does this mean that no Teneo generated JPOX can be used unless you
> programatically include the ECore package.jdo generation? I did not do
> the library example, but had read the documentation but did not see this
> requirement, which seems a fundamental one. Surely any pacakge.jdo
> produced by Teneo will require use of the ECore classes and therefore
> each time the ECore classes will be require enhancing too?
>
> Thx.
>
> David
>
> Martin Taal wrote:
>> Hi David,
>> The testcases use programmatic creation of the jdo file. Can you try
>> the same using: JpoxHelper.INSTANCE.generateMapping(...).
>>
>> gr. Martin
>>
>> david wrote:
>>> Hi,
>>>
>>> Not sure where you get this jdo mapping? The package.jdo produced by
>>> Teneo does not include the ECore classes, only the classes from my
>>> own XSD. Did I miss something? How do I include the ECore classes in
>>> the package.jdo produced?
>>>
>>> Thx.
>>>
>>> David
>>>
>>> Martin Taal wrote:
>>>> Hi David,
>>>> I am not sure if this is related to the enhancement. How does the
>>>> jdo mapping look like for this field?
>>>>
>>>> To give you an idea, this is a mapping for mixed which I have in one
>>>> of the testcases:
>>>> <field name="mixed" persistence-modifier="persistent">
>>>> <collection
>>>> element-type="org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry "/>
>>>> <join name="letterbodytype_mixed"/>
>>>> <element>
>>>> <embedded>
>>>> <field name="featurePath">
>>>> <column name="FEATUREPATH"/>
>>>> </field>
>>>> <field name="anyValue">
>>>> <column name="ANYVALUE"/>
>>>> </field>
>>>> </embedded>
>>>> </element>
>>>> <order column="LETTERBODYTYPE_MIXED_IDX"/>
>>>> </field>
>>>>
>>>> gr. Martin
>>>>
>>>> david wrote:
>>>>> Hi,
>>>>>
>>>>> Not sure if I missed something in the steps to create my own JPOX
>>>>> persistence using Teneo, but I get this
>>>>>
>>>>> javax.jdo.JDOUserException: Field
>>>>> "org.mddl.mddl._3.impl.CallableTypeImpl.mixed" is declared as a
>>>>> reference type (interface/Object) but no implementation classes of
>>>>> "org.eclipse.emf.ecore.util.FeatureMap" have been found!
>>>>> at
>>>>> org.jpox.metadata.MetaDataUtils.getImplementationNamesForRef erenceField(MetaDataUtils.java:441)
>>>>>
>>>>> at
>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForRef erenceField(ColumnCreator.java:250)
>>>>>
>>>>> at
>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForFie ldUsingReference(ColumnCreator.java:224)
>>>>>
>>>>> at
>>>>> org.jpox.store.mapping.ReferenceMapping.createColumns(Refere nceMapping.java:77)
>>>>>
>>>>> at
>>>>> org.jpox.store.mapping.ReferenceMapping.initialize(Reference Mapping.java:63)
>>>>>
>>>>>
>>>>> .....
>>>>>
>>>>>
>>>>> So clearly the ECore classes are not enhanced. What did I miss?
>>>>>
>>>>> Thx.
>>>>>
>>>>> David
>>>>
>>>>
>>
>>
|
|
|
Re: [Teneo] Enhancing the ECore classes [message #614128 is a reply to message #108822] |
Mon, 28 January 2008 23:14 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi David,
Maybe the documentation is confusing in this regard.
To give some more background info. References to the Ecore model itself are not persisted as they
are statically present in the generated code. The only exceptions are featuremap (which supports the
mixed type) and anytype. Both of these require additional fields to store a reference to the ecore
model (to an efeature). However the ecore model is not persisted because the reference to the ecore
model is persisted as a string in the db. When the object (featuremap) is read back from the db then
the string is translated to the in-memory efeature. But this is only required for featuremap.
gr. Martin
david wrote:
> Hi,
>
> Another thing that confused me is the last item on the Troubleshooting
> page. It says "Teneo uses the runtime version of the ecore model. The
> runtime version is present as java code in the generated EPackage
> implementation class." which made me think that that was how the ECore
> classes got enhanced. But there is no sign of this EPackage generated file?
>
> Thx.
>
> David
>
> david wrote:
>> Hi,
>>
>> So does this mean that no Teneo generated JPOX can be used unless you
>> programatically include the ECore package.jdo generation? I did not do
>> the library example, but had read the documentation but did not see
>> this requirement, which seems a fundamental one. Surely any
>> pacakge.jdo produced by Teneo will require use of the ECore classes
>> and therefore each time the ECore classes will be require enhancing too?
>>
>> Thx.
>>
>> David
>>
>> Martin Taal wrote:
>>> Hi David,
>>> The testcases use programmatic creation of the jdo file. Can you try
>>> the same using: JpoxHelper.INSTANCE.generateMapping(...).
>>>
>>> gr. Martin
>>>
>>> david wrote:
>>>> Hi,
>>>>
>>>> Not sure where you get this jdo mapping? The package.jdo produced by
>>>> Teneo does not include the ECore classes, only the classes from my
>>>> own XSD. Did I miss something? How do I include the ECore classes in
>>>> the package.jdo produced?
>>>>
>>>> Thx.
>>>>
>>>> David
>>>>
>>>> Martin Taal wrote:
>>>>> Hi David,
>>>>> I am not sure if this is related to the enhancement. How does the
>>>>> jdo mapping look like for this field?
>>>>>
>>>>> To give you an idea, this is a mapping for mixed which I have in
>>>>> one of the testcases:
>>>>> <field name="mixed" persistence-modifier="persistent">
>>>>> <collection
>>>>> element-type="org.eclipse.emf.teneo.jpox.elist.AnyFeatureMapEntry "/>
>>>>> <join name="letterbodytype_mixed"/>
>>>>> <element>
>>>>> <embedded>
>>>>> <field name="featurePath">
>>>>> <column name="FEATUREPATH"/>
>>>>> </field>
>>>>> <field name="anyValue">
>>>>> <column name="ANYVALUE"/>
>>>>> </field>
>>>>> </embedded>
>>>>> </element>
>>>>> <order column="LETTERBODYTYPE_MIXED_IDX"/>
>>>>> </field>
>>>>>
>>>>> gr. Martin
>>>>>
>>>>> david wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Not sure if I missed something in the steps to create my own JPOX
>>>>>> persistence using Teneo, but I get this
>>>>>>
>>>>>> javax.jdo.JDOUserException: Field
>>>>>> "org.mddl.mddl._3.impl.CallableTypeImpl.mixed" is declared as a
>>>>>> reference type (interface/Object) but no implementation classes of
>>>>>> "org.eclipse.emf.ecore.util.FeatureMap" have been found!
>>>>>> at
>>>>>> org.jpox.metadata.MetaDataUtils.getImplementationNamesForRef erenceField(MetaDataUtils.java:441)
>>>>>>
>>>>>> at
>>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForRef erenceField(ColumnCreator.java:250)
>>>>>>
>>>>>> at
>>>>>> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForFie ldUsingReference(ColumnCreator.java:224)
>>>>>>
>>>>>> at
>>>>>> org.jpox.store.mapping.ReferenceMapping.createColumns(Refere nceMapping.java:77)
>>>>>>
>>>>>> at
>>>>>> org.jpox.store.mapping.ReferenceMapping.initialize(Reference Mapping.java:63)
>>>>>>
>>>>>>
>>>>>> .....
>>>>>>
>>>>>>
>>>>>> So clearly the ECore classes are not enhanced. What did I miss?
>>>>>>
>>>>>> Thx.
>>>>>>
>>>>>> David
>>>>>
>>>>>
>>>
>>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Goto Forum:
Current Time: Tue Sep 24 07:08:32 GMT 2024
Powered by FUDForum. Page generated in 0.06587 seconds
|