It doesn't look like you are including TapestryModule in your registry. Since you're building the registry you're in charge kit adding all the modules.
Optionally you could add @SubModule(TapestryModule.class) to your AppModule to make the dependency explicit. On Jan 5, 2011 4:25 AM, "abangkis" <abang...@gmail.com> wrote: > Hello, i have a tapestry app that consist of 1-2 pages, and lots of > services. The apps is used to crawl another website. The apps uses hibernate > module, quartz and some other contribution. Because of the nature of my > apps, i want to test the services class using TestNG. I've created a simple > test that build the tapestry registry for my services and run it. But i > received an error that the ComponentRequestHandler doesn't exist. Here's the > contribution in the appmodule, test file and the stack trace. I wonder what > I've missed ? > > > Cheers, > Abangkis > > public class AppModule { > .... > > public void > contributeComponentRequestHandler(OrderedConfiguration<ComponentRequestFilter> > configuration) { > configuration.addInstance("PageProtectionFilter", > PageProtectionFilter.class); > } > public void contributeRequestHandler(OrderedConfiguration<RequestFilter> > configuration, > PageRenderLinkSource pageRenderLinkSource) { > final HashSet<String> ASSETS_WHITE_LIST = new > HashSet<String>(Arrays.asList("jpg", "jpeg", "png", "gif", "js", > "css", "ico", "html", "json")); > configuration.add("AssetProtectionFilter", new > AssetProtectionFilter(ASSETS_WHITE_LIST, pageRenderLinkSource), > "before:*"); > } > .... > } > > public class MyTest { > private Registry registry; > > @Test > public void f() { > String pageName = "DummyPage"; > MovieManager movieManager = registry.getService(MovieManager.class); > String result = movieManager.getMovieTitle(pageName); > assertEquals("Gullivers Island", result); > } > > @BeforeClass > public void beforeClass() { > // registry = IOCUtilities.buildDefaultRegistry(); > initRegistry(); > } > > private void initRegistry() { > RegistryBuilder builder = new RegistryBuilder(); > builder.add(ChenilleKitQuartzModule.class); > builder.add(AppModule.class); > registry = builder.build(); > registry.performRegistryStartup(); > } > > @AfterClass > public void afterClass() { > registry.shutdown(); > } > > } > > FAILED CONFIGURATION: @BeforeClass beforeClass > java.lang.IllegalArgumentException: Contribution > net.mreunion.cinematorserver.services.AppModule.contributeComponentRequestHandler(OrderedConfiguration) > (at AppModule.java:145) is for service 'ComponentRequestHandler', which does > not exist. > at > org.apache.tapestry5.ioc.internal.RegistryImpl.validateContributeDefs(RegistryImpl.java:253) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.<init>(RegistryImpl.java:229) > at org.apache.tapestry5.ioc.RegistryBuilder.build(RegistryBuilder.java:170) > at > net.mreunion.cinematorserver.TestEscapedCharacter.initRegistry(MyTest .java:45) > at > net.mreunion.cinematorserver.TestEscapedCharacter.beforeClass(MyTest .java:33) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:74) > at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:525) > at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:202) > at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:130) > at > org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:173) > at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105) > at org.testng.TestRunner.runWorkers(TestRunner.java:1125) > at org.testng.TestRunner.privateRun(TestRunner.java:749) > at org.testng.TestRunner.run(TestRunner.java:600) > at org.testng.SuiteRunner.runTest(SuiteRunner.java:317) > at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:312) > at org.testng.SuiteRunner.privateRun(SuiteRunner.java:274) > at org.testng.SuiteRunner.run(SuiteRunner.java:223) > at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) > at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) > at org.testng.TestNG.runSuitesSequentially(TestNG.java:995) > at org.testng.TestNG.runSuitesLocally(TestNG.java:920) > at org.testng.TestNG.run(TestNG.java:856) > at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:110) > at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:205) > at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:174) > > > -- > http://www.mreunion-labs.net/ > twitter : @mreunionlabs > blog : mreunion.wordpress.com > Follow our android survey at : > http://www.mreunion-labs.net/downloads:dlapk/MySurvey.apk