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