Ok, I devised a separate service to initiate the in-memory rdf index.
I have my persistent entity store and here is the code I am trying to
run during initialization:
Things are running Ok the first time around (empty entity store). the
next time I run it, I get an exception (below). The code is almost
one-to-one with the code I posted in my previous mail and looks like
this:
class MemoryRepositoryInitializerMixin implements Activatable {
@Service EntityStore entityStore;
@Service private Iterable<EntityStoreListener> listeners;
public void activate() throws Exception
{
List<EntityState> existingStates = new ArrayList<EntityState>();
Iterator<EntityState> temp = entityStore.iterator();
while( temp.hasNext() )
{
EntityState entityState = temp.next();
existingStates.add(entityState);
}
for( EntityStoreListener listener : listeners )
{
listener.notifyChanges( existingStates,
Collections.EMPTY_LIST, Collections.EMPTY_LIST );
}
}
public void passivate() throws Exception
{
}
}
Here is the output:
-----------------------------------------------------------------------
Intializing RdfEntityIndexerMixin.
JDBM store:c:\TEMP\sample\sample.data
Using existing index
Using existing registry
Exception in thread "main"
org.qi4j.api.service.ServiceImporterException:
org.qi4j.spi.entity.EntityStoreException:
org.qi4j.spi.entity.UnknownEntityTypeException:
net.groovysips.persistent.domain.country.impl.CountryEntity
at
org.qi4j.runtime.service.ServiceReferenceInstance.getInstance(ServiceReferenceInstance.java:113)
at
org.qi4j.runtime.service.ServiceReferenceInstance.activate(ServiceReferenceInstance.java:77)
at org.qi4j.spi.service.Activator.activate(Activator.java:51)
at
org.qi4j.runtime.structure.ServicesInstance.activate(ServicesInstance.java:57)
at
org.qi4j.runtime.structure.ModuleInstance.activate(ModuleInstance.java:245)
at org.qi4j.spi.service.Activator.activate(Activator.java:51)
at org.qi4j.spi.service.Activator.activate(Activator.java:35)
at
org.qi4j.runtime.structure.LayerInstance.activate(LayerInstance.java:282)
at org.qi4j.spi.service.Activator.activate(Activator.java:51)
at org.qi4j.spi.service.Activator.activate(Activator.java:35)
at
org.qi4j.runtime.structure.ApplicationInstance.activate(ApplicationInstance.java:102)
at net.groovysips.persistent.Driver.<init>(Driver.java:20)
at net.groovysips.persistent.Driver.main(Driver.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Caused by: org.qi4j.spi.entity.EntityStoreException:
org.qi4j.spi.entity.UnknownEntityTypeException:
net.groovysips.persistent.domain.country.impl.CountryEntity
at
org.qi4j.entitystore.jdbm.JdbmEntityStoreMixin$2.next(JdbmEntityStoreMixin.java:341)
at
org.qi4j.entitystore.jdbm.JdbmEntityStoreMixin$2.next(JdbmEntityStoreMixin.java:307)
at
org.qi4j.library.rdf.repository.MemoryRepositoryInitializer$MemoryRepositoryInitializerMixin.activate(MemoryRepositoryInitializer.java:36)
at
org.qi4j.library.rdf.repository.MemoryRepositoryInitializer.activate(Unknown
Source)
at org.qi4j.spi.service.Activator.activate(Activator.java:51)
at
org.qi4j.runtime.service.ServiceReferenceInstance.getInstance(ServiceReferenceInstance.java:108)
... 17 more
Caused by: org.qi4j.spi.entity.UnknownEntityTypeException:
net.groovysips.persistent.domain.country.impl.CountryEntity
at
org.qi4j.spi.entity.EntityTypeRegistryMixin.getEntityType(EntityTypeRegistryMixin.java:39)
at
org.qi4j.entitystore.jdbm.JdbmEntityStoreMixin$2.next(JdbmEntityStoreMixin.java:329)
... 22 more
Process finished with exit code 1
Why does not JdbmEntityStore know about its content and how would I
explain it to him?
Thanks,
Alex.
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev