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

Reply via email to