Issue Details (XML | Word | Printable)

Key: NUCCORE-501
Type: New Feature New Feature
Status: Closed Closed
Resolution: Fixed
Priority: Minor Minor
Assignee: Andy Jefferson
Reporter: Marco Schulze
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
DataNucleus Core

Support interfaces without implementation

Created: 01/Apr/10 12:35 PM   Updated: 26/Apr/10 03:37 PM   Resolved: 21/Apr/10 09:16 AM
Component/s: Configuration, Java Types, Persistence
Affects Version/s: 1.1.3, 2.1.0.m1
Fix Version/s: 2.1.0.m2


 Description  « Hide
DataNucleus supports dynamic schema extension (i.e. new persistent classes being added to an existing schema later). Thus it is a prime choice for highly modular applications with some plug-ins providing (abstract) frameworks and others providing implementations. Unfortunately, though, DataNucleus expects at least one implementation being known when an interface is used as field type in a persistent class. Hence, a framework which makes use of interfaces in 1-n- or 1-1-relations currently *must* provide at least one implementation.

It would be a good feature, if DataNucleus did not have this requirement anymore and accepted situations in which no interface implementation is known (yet).

Marco Schulze made changes - 01/Apr/10 12:36 PM
Field Original Value New Value
Description DataNucleus supports dynamic schema extension (i.e. new persistent classes being added to an existing schema later). Thus it is a prime choice for highly modular applications with some plug-ins providing (abstract) frameworks and others providing implementations. Unfortunately, though, DataNucleus expects at least one implementation being known when an interface is used as field type in a persistent class. Hence, a framework which makes use of interfaces in 1-n- or 1-1-relations currently *must* provide at least one implementation.

It would be a good feature, if DataNucleus did have this requirement anymore and accepted situations in which no interface implementation is known (yet).
DataNucleus supports dynamic schema extension (i.e. new persistent classes being added to an existing schema later). Thus it is a prime choice for highly modular applications with some plug-ins providing (abstract) frameworks and others providing implementations. Unfortunately, though, DataNucleus expects at least one implementation being known when an interface is used as field type in a persistent class. Hence, a framework which makes use of interfaces in 1-n- or 1-1-relations currently *must* provide at least one implementation.

It would be a good feature, if DataNucleus did not have this requirement anymore and accepted situations in which no interface implementation is known (yet).
Andy Jefferson added a comment - 14/Apr/10 07:57 PM
Use SVN trunk with persistence property
datanucleus.permitReferencesWithNoImplementations=true

Works for me with (very) limited testing (i.e SchemaTool) on a 1-1 relation. Will ultimately remove the persistence property when it has been thoroughly tested

Andy Jefferson made changes - 19/Apr/10 09:57 AM
Assignee Andy Jefferson [ andy ]
Fix Version/s 2.1.0.release [ 10836 ]
Component/s Configuration [ 10151 ]
Component/s Java Types [ 10149 ]
Component/s Persistence [ 10200 ]
Andy Jefferson added a comment - 21/Apr/10 09:16 AM
Marking as fixed. Renamed the persistence property to
datanucleus.store.allowReferencesWithNoImplementations
and added to docs.

Andy Jefferson made changes - 21/Apr/10 09:16 AM
Status Open [ 1 ] Resolved [ 5 ]
Fix Version/s 2.1.0.m2 [ 10901 ]
Fix Version/s 2.1.0.release [ 10836 ]
Resolution Fixed [ 1 ]
Andy Jefferson made changes - 26/Apr/10 03:37 PM
Status Resolved [ 5 ] Closed [ 6 ]