Bundles containing configuration files in folder defined by "Liferay-Configuration-Path" in bnd.bnd (*.properties or *.config files), for example REST bundles using REST Extender.
Steps to reproduce
- Deploy sample REST bundle using REST Extender https://github.com/liferay/liferay-blade-samples/tree/7.0/maven/apps/rest
- REST Extender and CXF endpoint configuration registered and visible in Control Panel - Configuration - System Settings - Web API
- REST endpoint accessible on URL defined in configuration
- Configuration not registered and visible in Control panel
- REST enpoint not accessible
After refactoring of ConfigurationExtender done in
LPS-94399, method "_addNamedConfigurations" generates "factoryPid" of configuration based on configuration file's name incorrectly.
causes "factoryPid" to start with slash, which shouldn't be there.
For example: "/com.liferay.portal.remote.rest.extender.configuration.RestExtenderConfiguration"
After that when ConfigurationModelRetrieverImpl::getFactoryConfigurations tries to find configurations of for example "com.liferay.portal.remote.rest.extender.configuration.RestExtenderConfiguration" without the slash, it fails to pick up this configuration.
For most cases it should be possible to set up the configurations in Control Panel manually.
For example set up REST Extender and CXF Endpoint in Control Panel - Configuration - System Settings - Web API manually to make the REST endpoint working.
I am aware that using REST Extender for REST endpoints is no longer the preferred way in Liferay 7.2, but this bug in ConfigurationExtender can also have consequences in other use cases, and it seems it shouldn't be difficult to fix.