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]

Reply via email to