Hello Paul, thank you for your answer !
"Could you please follow my advices above to cleanup your assembly a bit and report if it still fail?" Sure - will follow your advices and reply as soon I have some results. Cheers, Jiri 2012/10/26 eskatos [via Qi4j-dev] <[email protected]>: > Hi Jiri, > > I can see several issues in your assembly. > > First, there are three MemoryEntityStore assembled in your > infrastructure layer: > - in your config module, with module visibility > - in your indexing module, with application visibility > - in your entitystore module, with application visibility > > You should remove the one from your indexing module. > See the "Defining an Entity Store" section in > http://qi4j.org/core-bootstrap-assembly.html > Take special attention to the Configuration state storage. > > EntityStores notify each visible indexing of entities state changes. > ConfigurationComposites are entities. You must ensure the EntityStore > you use to store configuration cannot see the indexing service. > Having too much EntityStores assembled is not a good idea. > > > Second, you can remove the two objects declaration at the beggining > (EntityStateSerializer & EntityTypeSerializer) as they were used by > indexing-rdf and are not needed when using indexing-sql. > > > Third, the endless loop seems to come from the DataSourceConfiguration > loading and to take place in EntityStore.newUnitOfWork(..) but at first > sight and without a complete test case I can't see why it goes crazy > like that. > > > Could you please follow my advices above to cleanup your assembly a bit > and report if it still fail? > > Cheers > > /Paul > > > > jj a écrit : > >> Hello, >> >> I wrote a simple application using In-Memory EntityStore and RdfIndexing. >> Now I want to >> switch over to SQL Index/Store but receive the following exception : >> >> java.lang.IllegalStateException: java.lang.StackOverflowError >> at >> >> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:103) >> at >> >> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56) >> at >> >> org.qi4j.runtime.service.ServicesInstance.activate(ServicesInstance.java:57) >> at >> >> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:78) >> at >> >> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56) >> at >> >> org.qi4j.runtime.structure.ModuleInstance.activate(ModuleInstance.java:281) >> at >> >> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:78) >> at >> >> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56) >> at >> org.qi4j.runtime.structure.LayerInstance.activate(LayerInstance.java:175) >> at >> >> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:78) >> at >> >> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56) >> at >> >> org.qi4j.runtime.structure.ApplicationInstance.activate(ApplicationInstance.java:121) >> at >> >> com.somepackage.qi4j.application.abc.bootstrap.AbcApplication.createApplication(AbcApplication.java:63) >> at com.somepackage.qi4j.application.abc.Main.setUp(Main.java:15) >> at com.somepackage.qi4j.application.abc.Main.main(Main.java:47) >> Caused by: java.lang.StackOverflowError >> at java.lang.Long.valueOf(Long.java:554) >> at $Proxy36.newUnitOfWork(Unknown Source) >> at >> >> org.qi4j.spi.entitystore.ConcurrentModificationCheckConcern.newUnitOfWork(ConcurrentModificationCheckConcern.java:49) >> at >> org.qi4j.entitystore.memory.MemoryEntityStoreService.newUnitOfWork(Unknown >> Source) >> at >> >> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.getConfiguration(AbstractDataSourceServiceImporterMixin.java:130) >> at >> >> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:77) >> at >> >> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:1) >> at >> >> org.qi4j.library.sql.dbcp.DBCPDataSourceServiceImporter.importService(Unknown >> Source) >> at >> >> org.qi4j.api.service.importer.ServiceInstanceImporter.importService(ServiceInstanceImporter.java:48) >> at $Proxy22.notifyChanges(Unknown Source) >> at >> >> org.qi4j.spi.entitystore.StateChangeNotificationConcern$1.commit(StateChangeNotificationConcern.java:42) >> at >> >> org.qi4j.spi.entitystore.ConcurrentModificationCheckConcern$ConcurrentCheckingEntityStoreUnitOfWork$1.commit(ConcurrentModificationCheckConcern.java:103) >> at >> >> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.getConfiguration(AbstractDataSourceServiceImporterMixin.java:154) >> at >> >> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:77) >> at >> >> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:1) >> at >> >> org.qi4j.library.sql.dbcp.DBCPDataSourceServiceImporter.importService(Unknown >> Source) >> at >> >> org.qi4j.api.service.importer.ServiceInstanceImporter.importService(ServiceInstanceImporter.java:48) >> at $Proxy22.notifyChanges(Unknown Source) >> >> Looks like as a endless loop, but I;m not able to figure out the reason. >> Here also the assembly code >> that produce the above exception. >> >> private void assembleInfrastructureLayer( LayerAssembly >> infrastructureLayer ) >> throws AssemblyException >> { >> >> // 1.) SQL Indexing >> ModuleAssembly indexingModule = infrastructureLayer.module( >> "INFRASTRUCTURE-Indexing" ); >> indexingModule >> .objects( >> EntityStateSerializer.class, >> EntityTypeSerializer.class ); >> >> >> ModuleAssembly config = indexingModule.layer().module( >> "config" >> ); >> config.services( MemoryEntityStoreService.class ).visibleIn( >> Visibility.module ); >> >> // EntityStore >> indexingModule.services( MemoryEntityStoreService.class, >> UuidIdentityGeneratorService.class ).visibleIn( Visibility.application ); >> >> // DataSourceService + Index/Query's DataSource >> new DBCPDataSourceServiceAssembler( >> "datasource-service-postgres", >> Visibility.module, >> config, >> Visibility.layer >> ).assemble( >> indexingModule ); >> DataSourceAssembler dsAssembler = new DataSourceAssembler( >> "datasource-service-postgres", >> >> "datasource-postgres", >> >> Visibility.module, >> >> DataSources.newDataSourceCircuitBreaker() ); >> >> // Index/Query >> new PostgreSQLAssembler( Visibility.application, dsAssembler >> ).assemble( indexingModule ); >> config.entities( SQLConfiguration.class ).visibleIn( >> Visibility.layer ); >> >> // Always re-index because of possible different app >> structure >> of multiple tests. >> indexingModule.services( >> ReindexingStrategy.ReindexingStrategyService.class ).withMixins( >> ReindexingStrategy.AlwaysNeed.class ).identifiedBy( "reindexer" ); >> config.entities( ReindexerConfiguration.class ).visibleIn( >> Visibility.layer ); >> >> // 2.) In-memory Entity Store >> ModuleAssembly entityStoreModule = >> infrastructureLayer.module( >> "INFRASTRUCTURE-EntityStore" ); >> entityStoreModule >> .services( >> MemoryEntityStoreService.class, >> UuidIdentityGeneratorService.class ) >> .instantiateOnStartup() >> .visibleIn( application ); >> >> } >> >> >> I try already many combinations - without success. Would be great if one >> of >> you guys >> can give me an idea what is wrong with my code. >> >> Thanks, >> >> Cheers, >> Jiri >> >> >> >> >> -- >> View this message in context: >> http://qi4j-dev.23929.n6.nabble.com/SQL-Indexing-SQL-EntityStore-tp7140.html >> Sent from the Qi4j-dev mailing list archive at Nabble.com. >> >> _______________________________________________ >> qi4j-dev mailing list >> [hidden email] >> http://lists.ops4j.org/mailman/listinfo/qi4j-dev > _______________________________________________ > qi4j-dev mailing list > [hidden email] > http://lists.ops4j.org/mailman/listinfo/qi4j-dev > > > ________________________________ > If you reply to this email, your message will be added to the discussion > below: > http://qi4j-dev.23929.n6.nabble.com/SQL-Indexing-SQL-EntityStore-tp7140p7141.html > To unsubscribe from SQL Indexing + SQL EntityStore, click here. > NAML -- View this message in context: http://qi4j-dev.23929.n6.nabble.com/SQL-Indexing-SQL-EntityStore-tp7140p7142.html Sent from the Qi4j-dev mailing list archive at Nabble.com. _______________________________________________ qi4j-dev mailing list [email protected] http://lists.ops4j.org/mailman/listinfo/qi4j-dev

