Affects Version/s: 5.0.14
Fix Version/s: 5.0.14
ClassNameLocatorImpl is only able to resolve resources from URLs that use a protocol which is native to the Java class library (file, jar, http, etc). In OSGi environment all the URLs use the protocol "bundleresource" or "bundleentry". Here is an example:
A very simple solution is to create your own ClassNameLocator and contribute it to AliasOverrides. Well, this solution is bad because it requires a copy of the ClassNameLocatorImpl.
A better solution would be to make ClassNameLocatorImpl use a service called URLConverter or similar.
public interface URLConverter
URL convert(URL url);
Tapestry would provide a default implementation of the interface:
public class URLConverterImpl implements URLConverter
public URL convert(URL url)
In an OSGi environment (in my case Equinox) one could override this service by using e.g Eclipse Core API. This approach is much easier then overriding of the ClassNameLocator.