i think, because you have not a META-INF/Manifest.mf in your test classpath that contains the Tapestry-Module-Classes entry (http://tapestry.apache.org/tapestry5/tapestry-ioc/module.html#Autoloading%20modules)
2008/2/3, Shing Hing Man <[EMAIL PROTECTED]>: > Thanks for the suggestion! > > After reading > > > http://wiki.apache.org/tapestry/Tapestry5HowToIocAndHibernate > > and tried a few combinations. The following works. > > 1) In AppModule : > define the MyFolderDAO service as before. > > 2) Create AppModuleTest.java which is only available > in unit test. > > public class AppModuleTest > { > public static void bind(ServiceBinder binder) > { > > binder.bind(ClassNameLocator.class, > ClassNameLocatorImpl.class); > } > > > public static void > contributeSymbolSource(OrderedConfiguration<SymbolProvider> > conf){ > //tapestry-hibernate fails without > tapestry.app-name symbol defined > conf.add("AppPackage", new SymbolProvider(){ > public String valueForSymbol(String > symbolName){ > > if(symbolName.equalsIgnoreCase(InternalConstants.TAPESTRY_APP_PACKAGE_PARAM)) > return "net.sf.folder"; > return null; > } > },""); > } > } > > 3) In unit test, create the registry as follow. > > RegistryBuilder builder = new RegistryBuilder(); > > builder.add(HibernateModule.class); > builder.add(AppModule.class); > builder.add(AppModuleTest.class); > > Registry registry = builder.build(); > > registry.performRegistryStartup(); > > > > > It begs the question on how come the service and > configuration in AppModuleTest.java are not created > automatically in unit test and > they are created automatically in web application. > > Shing > > > --- Sven Homburg <[EMAIL PROTECTED]> wrote: > > > dont add the TapestryModule to RegistryBuilder, > > it make only sense, if you testing your DAOs > > inside a page or component. > > > > > > 2008/2/3, Shing Hing Man <[EMAIL PROTECTED]>: > > > I have created a DAO service which has > > > HibernateSessionManager (from the > > tapestry-hibernate > > > module) as a property. > > > In AppModule : > > > > > > public static MyFolderDAO buildMyFolderDAO( > > > > > @InjectService("HibernateSessionManager") > > > HibernateSessionManager sessionManager) > > > { > > > MyFolderDAO dao = new > > > MyFolderDAOHibernate(); > > > dao.setSessionManager(sessionManager); > > > return dao; > > > } > > > > > > > > > The MyFolderDAO service works when it is injected > > into > > > a Tapestry page. > > > I have problem testing the MyFolderDAO service in > > a > > > Junit test. > > > > > > public class MyFolderDAOHibernateTest extends > > TestCase > > > { > > > > > > public void testAddFolder() { > > > > > > RegistryBuilder builder = new > > RegistryBuilder(); > > > builder.add(TapestryModule.class); > > > > > builder.add(HibernateModule.class); > > > builder.add(AppModule.class); > > > > > > Registry registry = > > builder.build(); > > > > > > registry.performRegistryStartup(); > > > > > > MyFolderDAO dao = > > registry.getService("myFolderDAO", > > > MyFolderDAO.class); > > > > > > MyFolder folder = new MyFolder(); > > > folder.setFoldername("Folder A"); > > > dao.addFolder(folder); > > > > > > } > > > > > > } > > > > > > I get the following exception when I run the > > above > > > JUnit test. It looks as though I have not built > > the > > > Registry correctly. > > > It would be very much appreciated if someone can > > show > > > me a way. > > > > > > Shing > > > > > > > > > > > > [ERROR] Alias Construction of service Alias > > failed: > > > Error invoking service builder method > > > > > > org.apache.tapestry.services.TapestryModule.build(Logger, > > > String, AliasManager, Collection) (at > > > TapestryModule.java:130) (for service 'Alias'): > > Symbol > > > 'tapestry.alias-mode' is not defined. > > > java.lang.RuntimeException: Error invoking service > > > builder method > > > > > > org.apache.tapestry.services.TapestryModule.build(Logger, > > > String, AliasManager, Collection) (at > > > TapestryModule.java:130) (for service 'Alias'): > > Symbol > > > 'tapestry.alias-mode' is not defined. > > > at > > > > > > org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:88) > > > at > > > > > > org.apache.tapestry.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29) > > > at > > > > > > org.apache.tapestry.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:54) > > > at > > > > > > org.apache.tapestry.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:51) > > > at > > > > > > org.apache.tapestry.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:61) > > > at > > > > > > org.apache.tapestry.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:66) > > > at > > > > > > $Alias_117e094fd17._delegate($Alias_117e094fd17.java) > > > at > > > > > > $Alias_117e094fd17.getObjectProvider($Alias_117e094fd17.java) > > > at > > > > > > org.apache.tapestry.services.TapestryModule$1.provide(TapestryModule.java:442) > > > at > > > > > > org.apache.tapestry.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:38) > > > at > > > > > > $MasterObjectProvider_117e094fd14.provide($MasterObjectProvider_117e094fd14.java) > > > at > > > > > > org.apache.tapestry.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:621) > > > at > > > > > > org.apache.tapestry.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:675) > > > at > > > > > > org.apache.tapestry.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:50) > > > at > > > > > > org.apache.tapestry.ioc.internal.util.InternalUtils.calculateParameterValue(InternalUtils.java:207) > > > at > > > > > > org.apache.tapestry.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:237) > > > at > > > > > > org.apache.tapestry.ioc.internal.util.InternalUtils.calculateParametersForConstructor(InternalUtils.java:225) > > > at > > > > > > org.apache.tapestry.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:46) > > > at > > > > > > org.apache.tapestry.ioc.internal.ServiceResourcesImpl.autobuild(ServiceResourcesImpl.java:123) > > > at > > > > > > org.apache.tapestry.ioc.services.TapestryIOCModule.contributeServiceLifecycleSource(TapestryIOCModule.java:80) > > > 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 > > > > > > org.apache.tapestry.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:95) > > > at > > > > > > org.apache.tapestry.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:68) > > > at > > > > > > org.apache.tapestry.ioc.internal.RegistryImpl.addToMappedConfiguration(RegistryImpl.java:451) > > > at > > > > > > org.apache.tapestry.ioc.internal.RegistryImpl.getMappedConfiguration(RegistryImpl.java:408) > > > at > > > > > > org.apache.tapestry.ioc.internal.ServiceResourcesImpl.getMappedConfiguration(ServiceResourcesImpl.java:97) > > > at > > > > > > org.apache.tapestry.ioc.internal.AbstractServiceCreator.addMappedConfigurationParameter(AbstractServiceCreator.java:154) > > > at > > > > > > org.apache.tapestry.ioc.internal.AbstractServiceCreator.getParameterDefaultsWithConfiguration(AbstractServiceCreator.java:118) > > > at > > > > > > org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.getParameterDefaultsWithConfigurations(ServiceBuilderMethodInvoker.java:47) > > > at > > > > > > org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:68) > > > at > > > > > > org.apache.tapestry.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29) > > > at > > > > > > org.apache.tapestry.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:54) > > > at > > > > > > org.apache.tapestry.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:61) > > > at > > > > > > org.apache.tapestry.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:66) > > > === message truncated === > > > Home page : http://www.lombok.demon.co.uk/ > > > > __________________________________________________________ > Sent from Yahoo! Mail - a smarter inbox http://uk.mail.yahoo.com > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- with regards Sven Homburg --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]