Hi!

we are currently trying to upgrade our webapp from T5.4 to T5.8.3
The migrator did his job, entire applications builds and starts, well, partly.

It looks like our migration is incomplete because we use two external libs "federated-accounts" and "json-bindinding". We made a fork of both, fixed all compile errors against T5.8.3 and we are able to start the Quickstart application linked with these modules.

Unfortunately in our migrated T5.4 application startup fails with:

31-Jul-2023 14:20:15.889 SEVERE [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.filterStart Exception starting filter [Application]     java.lang.IllegalArgumentException: Contribution org.tynamo.security.federatedaccounts.services.FederatedAccountsModule.contributeComponentClassResolver(Configuration) (at FederatedAccountsModule.java:31) is for service 'ComponentClassResolver', which does not exist.         at org.apache.tapestry5.ioc.internal.RegistryImpl.validateContributeDefs(RegistryImpl.java:298)         at org.apache.tapestry5.ioc.internal.RegistryImpl.<init>(RegistryImpl.java:242)

The method causing the error:

public static void contributeComponentClassResolver(Configuration<LibraryMapping> configuration) { configuration.add(new LibraryMapping(PATH_PREFIX, "org.tynamo.security.federatedaccounts")); }

So nothing surprising.

When debugging "RegistryImpl" indeed "ComponentClassResolver" is missing as ServiceId in the map serviceIdToModule...

if (!cd3.isOptional()) { if (cd3.getServiceId() != null) { if (!this.serviceIdToModule.containsKey(serviceId)) { throw new IllegalArgumentException(IOCMessages.contributionForNonexistentService(cd)); } } else if (!this.isContributionForExistentService(module, cd3)) {

...throwing the exception above.


Any idea why the core class "ComponentClassResolver" misses? Maybe an initialization / ordering issue concerning module loading?

I forgot: all sources build with JAVA 11 without any problems.

Thanks in advance


Jens

Reply via email to