You can call getServiceIds( Class serviceInterface ) on the registry to get all service ids which implement that interface.
-----Original Message----- From: Jean-Yves Sironneau [mailto:[EMAIL PROTECTED] Sent: Tuesday, August 16, 2005 7:11 PM To: [email protected] Subject: Re: Several services implementations Hello, I added again hivemind-lib to my classpath and i know get the following error, i guess it's normal as i don't have spring jars in my classpath. Do you know a way to get a list of services implementing a given interface or an interface extending it (i think a factory like the tapestry validators one is quite complicated for what i need) ? Thank you. Jean-Yves org.apache.hivemind.ApplicationRuntimeException: Unable to find interface org.springframework.beans.factory.BeanFactory (for service hivemind.lib.DefaultSpringBeanFactory). [jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/hivemind-lib-1.1-be ta-2.jar!/META-INF/hivemodule.xml, line 121, column 106] at org.apache.hivemind.impl.ServicePointImpl.lookupDeclaredInterface(ServicePoi ntImpl.java:132) at org.apache.hivemind.impl.ServicePointImpl.getDeclaredInterface(ServicePointI mpl.java:110) at org.apache.hivemind.impl.ServicePointImpl.lookupServiceInterface(ServicePoin tImpl.java:142) at org.apache.hivemind.impl.ServicePointImpl.getServiceInterface(ServicePointIm pl.java:102) at org.apache.hivemind.impl.RegistryInfrastructureImpl.getServiceIds(RegistryIn frastructureImpl.java:591) at org.apache.hivemind.impl.RegistryImpl.getServiceIds(RegistryImpl.java:107) at org.jys.jphotowiki.content.ProcessorFactory.getMetaDataExtractor(ProcessorFa ctory.java:20) at org.jys.jphotowiki.testing.tests.TestContentProcessing.testExifPreserved(Tes tContentProcessing.java:55) 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:585) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu nner.java:478) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner. java:344) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner .java:196) Caused by: org.apache.hivemind.ApplicationRuntimeException: Unable to convert type 'org.springframework.beans.factory.BeanFactory' to a Java class, either as is, or in package org.apache.hivemind.lib. at org.apache.hivemind.impl.ModuleImpl.resolveType(ModuleImpl.java:197) at org.apache.hivemind.impl.ServicePointImpl.lookupDeclaredInterface(ServicePoi ntImpl.java:128) ... 24 more [EMAIL PROTECTED] wrote: >Yes you're right i was getting an error related to module definitions in >hivemind-lib that's why i tried without it but then i forgot, i have to post >the actual error. > >Selon Achim Huegen <[EMAIL PROTECTED]>: > > > >>Sounds like the hivemind-lib.jar is not in your classpath. >>Can you check that? >> >>Achim >> >>Jean-Yves Sironneau wrote: >> >> >>>Hello, >>> >>>I'am getting into an issue and i guess it's a design problem, but i >>>can't see why : >>> >>>I have an interface that services should implement : >>> >>>public interface IContentProcessor { >>> public boolean isDocumentClassSupported(Class<? extends IDocument> >>>documentClass); >>> >>> public boolean isContentClassSupported(Class<? extends IDocument> >>>contentClass); >>> public void process(IDocument document); >>>} >>> >>>And i have several implementations of this interface, so basically my >>>module definition looks like : >>> >>> <service-point id="ThumbnailCreator" >>>interface="org.jys.jphotowiki.content.IContentProcessor"> >>> <invoke-factory> >>> <construct class="org.jys.jphotowiki.content.ThumbnailProcessor"> >>> <set property="thumbnailSize" value="50"/> >>> </construct> >>> </invoke-factory> >>> </service-point> >>> >>> <service-point id="MetaDataExtractor" >>>interface="org.jys.jphotowiki.content.IContentProcessor"> >>> <invoke-factory> >>> <construct class="org.jys.jphotowiki.content.MetaDataExtractor"/> >>> </invoke-factory> >>> </service-point> >>> >>> <service-point id="RotateLeftProcessor" >>>interface="org.jys.jphotowiki.content.IContentProcessor"> >>> <invoke-factory> >>> <construct class="org.jys.jphotowiki.content.RotateProcessor"> >>> <set property="clockwise" value="false"/> >>> </construct> >>> </invoke-factory> >>> </service-point> >>> >>> <service-point id="RotateRightProcessor" >>>interface="org.jys.jphotowiki.content.IContentProcessor"> >>> <create-instance >>>class="org.jys.jphotowiki.content.RotateProcessor,clockwise"/> >>> </service-point> >>> >>> >>>So i would like to dynamically get all of the services that implements >>>the interface, so i tried to call >>>getRegistry().getServiceIds(IContentProcessor.class) and i'am getting a >>>lots of errors : >>> >>>#2005-08-11 02:03:20,138 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/hivemodule.xml, > > >>>line 23, column 57: Required module hivemind.lib does not exist. >>>#2005-08-11 02:03:20,353 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.props.xml, > > >>>line 24, column 94: Unable to resolve reference to schema >>>'hivemind.lib.ChainContribution'. >>>#2005-08-11 02:03:20,356 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.props.xml, > > >>>line 105, column 99: Unable to resolve reference to schema >>>'hivemind.lib.ChainContribution'. >>>#2005-08-11 02:03:20,357 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.enhance.xml, > > >>>line 58, column 91: Unable to resolve reference to schema >>>'hivemind.lib.ChainContribution'. >>>#2005-08-11 02:03:20,359 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.listener.xml, > > >>>line 36, column 79: Unable to resolve reference to schema >>>'hivemind.lib.Pipeline'. >>>#2005-08-11 02:03:20,361 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.asset.xml, > > >>>line 83, column 95: Unable to resolve reference to schema >>>'hivemind.lib.StrategyRegistry'. >>>#2005-08-11 02:03:20,363 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.form.translator.xml, > > >>>line 23, column 90: Unable to resolve reference to schema >>>'hivemind.lib.BeanFactoryContribution'. >>>#2005-08-11 02:03:20,376 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.init.xml, > > >>>line 32, column 96: Unable to resolve reference to schema >>>'hivemind.lib.ChainContribution'. >>>#2005-08-11 02:03:20,378 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.request.xml, > > >>>line 91, column 94: Unable to resolve reference to schema >>>'hivemind.lib.Pipeline'. >>>#2005-08-11 02:03:20,379 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.request.xml, > > >>>line 122, column 90: Unable to resolve reference to schema >>>'hivemind.lib.Pipeline'. >>>#2005-08-11 02:03:20,381 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.valid.xml, > > >>>line 23, column 90: Unable to resolve reference to schema >>>'hivemind.lib.BeanFactoryContribution'. >>>#2005-08-11 02:03:20,382 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.describe.xml, > > >>>line 22, column 92: Unable to resolve reference to schema >>>'hivemind.lib.StrategyRegistry'. >>>#2005-08-11 02:03:20,384 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.describe.xml, > > >>>line 73, column 87: Unable to resolve reference to schema >>>'hivemind.lib.StrategyRegistry'. >>>#2005-08-11 02:03:20,388 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.page.xml, > > >>>line 139, column 95: Unable to resolve reference to schema >>>'hivemind.lib.ChainContribution'. >>>#2005-08-11 02:03:20,394 ERROR >>> >>> >>> >org.apache.hivemind.impl.DefaultErrorHandler.error(DefaultErrorHandler.java :37) > > >>>- Error at >>> >>> >>> >jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta-3 .jar!/META-INF/tapestry.page.xml, > > >>>line 188, column 100: Unable to resolve reference to schema >>>'hivemind.lib.ChainContribution'. >>>org.apache.hivemind.ApplicationRuntimeException: Unable to find >>>interface org.apache.hivemind.lib.BeanFactory (for service >>>tapestry.valid.ValidatorBeanFactory). >>> >>> >>> >[jar:file:/home/jys/work/JPhotoWiki/src/java/lib/compile/tapestry-4.0-beta- 3.jar!/META-INF/tapestry.valid.xml, > > >>>line 33, column 92] >>> >>>So i think there are some issues regarding the tapestry hivemind >>>modules, and as every module is processed i think i'am trying to do >>>something that do not make sense at all. >>> >>>What do you think ? Doesn't an interface can be implemented by several >>>services ? >>> >>>Thanks >>> >>>Jean-Yves >>> >>>--------------------------------------------------------------------- >>>To unsubscribe, e-mail: [EMAIL PROTECTED] >>>For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >>> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [EMAIL PROTECTED] >>For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >> > > >-- >Jean-Yves Sironneau >[EMAIL PROTECTED] >06.16.18.71.63 > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
