I guess you did forget to change the "tapestry.app-package" context parameter or/and change the module classes in MANIFEST.MF.
Chris Nicolas Barrera wrote: > > Hi all, > > I wanted to share my strange use case and the errors I 'm facing in my way > to accomplish it, either way if none can help me this serves as a kind of > therapy don't you think? > > The problem appears only after obfuscating the webapp do you think this > can > araise problems with tapestry IoC? (I 'm just obfuscating my own > libraries... not third parties) > > well, this is the case: > > We 've already coded all the app when some guy says "it must not contain > the company's name in the whole deliverable" (he does some grep to control > this), > so we opted to obfuscate the code using Proguard, certainly we 're not > obfuscating all the code we 're just obfuscating to remove the trhee first > major packages (which contains the company name), methods and class names > and subpackages like pages & components are kept unchanged! > > That done, we move on to test the web application after being obfuscated > and here I post the stactrace when I init the app in Tomcat 5.5.20 or > Jetty > standalone 7.0.0: > > It seems to be a problem while loading a Module named CustomSecurityModule > (we 're using tapestry spring security) and use this custom module to > contribute provider manager with an ldap provider. > > INIT org.eclipse.jetty.servlet.ServletHolder$Config@65394b >> 16/11/2011 14:58:37.275 [INFO ] [RegistryBuilder] - Adding module >> definition for class org.apache.tapestry5.ioc.services.TapestryIOCModule >> 16/11/2011 14:58:37.368 [INFO ] [RegistryBuilder] - Adding module >> definition for class >> nu.localhost.tapestry5.springsecurity.services.SecurityModule >> 16/11/2011 14:58:37.401 [INFO ] [RegistryBuilder] - Adding module >> definition for class org.apache.tapestry5.spring.SpringModule >> 16/11/2011 14:58:37.520 [INFO ] [RegistryBuilder] - Adding module >> definition for class org.apache.tapestry5.upload.services.UploadModule >> 16/11/2011 14:58:37.547 [INFO ] [RegistryBuilder] - Adding module >> definition for class org.apache.tapestry5.services.TapestryModule >> 16/11/2011 14:58:37.626 [INFO ] [RegistryBuilder] - Adding module >> definition for class >> org.apache.tapestry5.internal.services.InternalModule >> 16/11/2011 14:58:37.650 [INFO ] [RegistryBuilder] - Adding module >> definition for class a.cemiWebapp.services.AppModule >> 16/11/2011 14:58:37.951 [ERROR] [OperationTrackerImpl] - Construction of >> service 'Alias' has failed due to recursion: the service depends on >> itself >> in some way. Please check >> org.apache.tapestry5.services.TapestryModule.buildAlias(Logger, >> String, AliasManager, Collection) (at TapestryModule.java:325) for >> references to another service that is itself dependent on service >> 'Alias'. >> 16/11/2011 14:58:37.952 [ERROR] [OperationTrackerImpl] - Operations >> trace: >> 16/11/2011 14:58:37.954 [ERROR] [OperationTrackerImpl] - [ 1] Realizing >> service ServletApplicationInitializer >> 16/11/2011 14:58:37.955 [ERROR] [OperationTrackerImpl] - [ 2] Invoking >> org.apache.tapestry5.services.TapestryModule.buildServletApplicationInitializer(Logger, >> List, ApplicationInitializer) (at TapestryModule.java:1247) >> 16/11/2011 14:58:37.956 [ERROR] [OperationTrackerImpl] - [ 3] >> Constructing >> module class org.apache.tapestry5.services.TapestryModule >> 16/11/2011 14:58:37.957 [ERROR] [OperationTrackerImpl] - [ 4] Determining >> injection value for parameter #1 >> (org.apache.tapestry5.ioc.services.PipelineBuilder) >> 16/11/2011 14:58:37.958 [ERROR] [OperationTrackerImpl] - [ 5] Resolving >> object of type org.apache.tapestry5.ioc.services.PipelineBuilder using >> MasterObjectProvider >> 16/11/2011 14:58:37.959 [ERROR] [OperationTrackerImpl] - [ 6] Realizing >> service Alias >> 16/11/2011 14:58:37.960 [ERROR] [OperationTrackerImpl] - [ 7] Invoking >> org.apache.tapestry5.services.TapestryModule.buildAlias(Logger, String, >> AliasManager, Collection) (at TapestryModule.java:325) >> 16/11/2011 14:58:37.961 [ERROR] [OperationTrackerImpl] - [ 8] Determining >> injection value for parameter #4 (java.util.Collection) >> 16/11/2011 14:58:37.962 [ERROR] [OperationTrackerImpl] - [ 9] Collecting >> unordered configuration for service Alias >> 16/11/2011 14:58:37.963 [ERROR] [OperationTrackerImpl] - [10] Invoking >> method >> a.cemiWebapp.services.AppModule.contributeAlias(AuthenticationProcessingFilter, >> Configuration) (at null:-1). >> 16/11/2011 14:58:37.964 [ERROR] [OperationTrackerImpl] - [11] Determining >> injection value for parameter #1 >> (org.springframework.security.ui.webapp.AuthenticationProcessingFilter) >> 16/11/2011 14:58:37.965 [ERROR] [OperationTrackerImpl] - [12] Resolving >> object of type >> org.springframework.security.ui.webapp.AuthenticationProcessingFilter >> using >> MasterObjectProvider >> 16/11/2011 14:58:37.966 [ERROR] [OperationTrackerImpl] - [13] Realizing >> service Alias >> 16/11/2011 14:58:37.972 [ERROR] [RecursiveServiceCreationCheckWrapper] - >> Construction of service Alias failed: Error invoking service builder >> method >> org.apache.tapestry5.services.TapestryModule.buildAlias(Logger, String, >> AliasManager, Co >> llection) (at TapestryModule.java:325) (for service 'Alias'): Error >> invoking service contribution method >> a.cemiWebapp.services.AppModule.contributeAlias(AuthenticationProcessingFilter, >> Configuration): Exception constructing service 'Alia >> s': Construction of service 'Alias' has failed due to recursion: the >> service depends on itself in some way. Please check >> org.apache.tapestry5.services.TapestryModule.buildAlias(Logger, String, >> AliasManager, Collection) (at TapestryModule >> .java:325) for references to another service that is itself dependent on >> service 'Alias'. >> java.lang.RuntimeException: Error invoking service builder method >> org.apache.tapestry5.services.TapestryModule.buildAlias(Logger, String, >> AliasManager, Collection) (at TapestryModule.java:325) (for service >> 'Alias'): Error invoking servic >> e contribution method >> a.cemiWebapp.services.AppModule.contributeAlias(AuthenticationProcessingFilter, >> Configuration): Exception constructing service 'Alias': Construction of >> service 'Alias' has failed due to recursion: the service depend >> s on itself in some way. Please check >> org.apache.tapestry5.services.TapestryModule.buildAlias(Logger, String, >> AliasManager, Collection) (at TapestryModule.java:325) for references to >> another service that is itself dependent on service 'A >> lias'. >> > > the trace continues saying something like the last line. > > > When I run the same application *without* obfuscation on maven's jetty I > get everything working fine: > > 011-11-16 13:54:15.128:INFO::jetty-7.0.0.RC6 >> 2011-11-16 13:54:19.344:INFO::No Transaction manager found - if your >> webapp requires one, please configure one. >> [INFO] ioc.RegistryBuilder Adding module definition for class >> org.apache.tapestry5.ioc.services.TapestryIOCModule >> [INFO] ioc.RegistryBuilder Adding module definition for class >> org.apache.tapestry5.spring.SpringModule >> [INFO] ioc.RegistryBuilder Adding module definition for class >> nu.localhost.tapestry5.springsecurity.services.SecurityModule >> [INFO] ioc.RegistryBuilder Adding module definition for class >> org.apache.tapestry5.upload.services.UploadModule >> [INFO] ioc.RegistryBuilder Adding module definition for class >> org.apache.tapestry5.services.TapestryModule >> [INFO] ioc.RegistryBuilder Adding module definition for class >> org.apache.tapestry5.internal.services.InternalModule >> [INFO] ioc.RegistryBuilder Adding module definition for class >> ar.com.company.cemiWebapp.services.AppModule >> [INFO] ioc.RegistryBuilder Adding module definition for class >> ar.com.company.cemiWebapp.services.CustomSecurityModule >> [INFO] SpringModuleDef.ApplicationContext Starting Spring (version 2.5.6) >> 2011-11-16 13:54:20.648:INFO:/cemiWebapp:Initializing Spring root >> WebApplicationContext[INFO] context.ContextLoader Root >> WebApplicationContext: initialization started >> > > > take a look, after adding module AppModule here it's adding also > CustomSecurityModule while when the error ocurrs..., this > CustomSecurityModule is not called. > > > sorry that I keep adding snippets but i 'd like to post the > CustomSecurityModule code: > > package ar.com.company.cemiWebapp.services; >> >> import org.apache.tapestry5.ioc.OrderedConfiguration; >> import org.apache.tapestry5.ioc.annotations.Inject; >> import org.springframework.security.providers.AuthenticationProvider; >> >> import ar.com.company.lib.security.authentication.LdapCemiProvider; >> >> public class CustomSecurityModule { >> >> public static void >> contributeProviderManager(OrderedConfiguration<AuthenticationProvider> >> configuration, >> @Inject LdapCemiProvider ldapImecProvider ) { >> configuration.add("ldapCemiProvider", ldapCemiProvider); >> } >> >> } >> > > > this is the AppModule code: > > > package ar.com.company.cemiWebapp.services; >> >> import java.io.IOException; >> >> import >> nu.localhost.tapestry5.springsecurity.services.SpringSecurityServices; >> >> import org.apache.tapestry5.SymbolConstants; >> import org.apache.tapestry5.ioc.Configuration; >> import org.apache.tapestry5.ioc.MappedConfiguration; >> import org.apache.tapestry5.ioc.OrderedConfiguration; >> import org.apache.tapestry5.ioc.ServiceBinder; >> import org.apache.tapestry5.ioc.annotations.Local; >> import org.apache.tapestry5.ioc.annotations.SubModule; >> import org.apache.tapestry5.services.AliasContribution; >> import org.apache.tapestry5.services.Request; >> import org.apache.tapestry5.services.RequestFilter; >> import org.apache.tapestry5.services.RequestHandler; >> import org.apache.tapestry5.services.Response; >> import org.slf4j.Logger; >> import >> org.springframework.security.ui.webapp.AuthenticationProcessingFilter; >> >> /** >> * This module is automatically included as part of the Tapestry IoC >> Registry, it's a good place to >> * configure and extend Tapestry, or to place your own service >> definitions. >> */ >> >> @SubModule(value = { CustomSecurityModule.class }) >> public class AppModule >> { >> >> public static void contributeApplicationDefaults( >> MappedConfiguration<String, String> configuration) >> { >> configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en,es"); >> configuration.add(SymbolConstants.PRODUCTION_MODE, "true"); >> configuration.add(SymbolConstants.APPLICATION_VERSION, >> "1.0.0.0-SNAPSHOT"); >> // SPRING SECURITY >> configuration.add("tapestry.default-cookie-max-age", "31536000"); >> configuration.add("spring-security.loginform.url", >> "/login/login"); >> configuration.add("spring-security.failure.url", >> "/login/login/failed"); >> configuration.add("spring-security.accessDenied.url", >> "/error/forbidden"); >> configuration.add("spring-security.check.url", >> "/j_spring_security_check"); >> configuration.add("spring-security.target.url", "/start"); >> configuration.add("spring-security.rememberme.key", >> "REMEMBERMEKEY"); >> configuration.add("spring-security.force.ssl.login", "false"); >> configuration.add("spring-security.anonymous.key", >> "acegi_anonymous"); >> configuration.add("spring-security.anonymous.attribute", >> "anonymous,ROLE_ANONYMOUS"); >> configuration.add("spring-security.password.salt", "DEADBEEF"); >> } >> >> public static void contributeAlias( >> @SpringSecurityServices >> AuthenticationProcessingFilter >> authenticationProcessingFilter, >> Configuration<AliasContribution<?>> configuration) { >> >> // Hace qeu isempre pase por start, asi siempre se sabe si es >> usuario o admin >> >> authenticationProcessingFilter.setAlwaysUseDefaultTargetUrl(true); >> >> >> configuration.add(AliasContribution.create(AuthenticationProcessingFilter.class, >> authenticationProcessingFilter)); >> } >> } >> > > I 've tried this last class commenting out the contributeAlias method but, > everything kept the same way... > > hope someone out there got some invoice for me :) > > cheers and thanks in advance! > > Nicolás.- > -- View this message in context: http://tapestry.1045711.n5.nabble.com/Tapestry-Obfuscation-Service-Alias-recursion-tp4998477p4998572.html Sent from the Tapestry - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org