Bugfix
tl:XMain based tools do not start anymore since the Maven conversion.
Analysis
tl:XMain tries to read the required projects from the .classpath file of Eclipse. However, since the Maven transition, the required projects are there in the Maven dependencies. Therefore they are not found. Finally the start fails.
Stacktrace
ZooKeeper example:
Mar 23, 2022 3:27:45 PM com.top_logic.basic.core.log.JavaLoggingLog info INFORMATION: Analyzing 'C:\Users\jst.BOS\Desktop\eclipse\workspaces\tl_trunk_7\com.top_logic.kafka.server'. 2022-03-23 15:31:00,670 ERROR : top_logic.basic.config.ApplicationConfig - Configuration descriptor 'com.top_logic.basic.module.ManagedClass$ServiceConfiguration' has no property 'static-bundles', valid properties are: [class, configuration-interface, dependencies] at file:///WEB-INF/conf/topLogicKafkaServerConf.config.xml%20(C:/Users/jst.BOS/Desktop/eclipse/workspaces/tl_trunk_7/com.top_logic.kafka.server/src/main/webapp/WEB-INF/conf/topLogicKafkaServerConf.config.xml) line 16 column 21 at file:///WEB-INF/conf/topLogicKafkaServerConf.config.xml%20(C:/Users/jst.BOS/Desktop/eclipse/workspaces/tl_trunk_7/com.top_logic.kafka.server/src/main/webapp/WEB-INF/conf/topLogicKafkaServerConf.config.xml) line 16 column 21. com.top_logic.basic.thread.StackTrace: Configuration descriptor 'com.top_logic.basic.module.ManagedClass$ServiceConfiguration' has no property 'static-bundles', valid properties are: [class, configuration-interface, dependencies] at file:///WEB-INF/conf/topLogicKafkaServerConf.config.xml%20(C:/Users/jst.BOS/Desktop/eclipse/workspaces/tl_trunk_7/com.top_logic.kafka.server/src/main/webapp/WEB-INF/conf/topLogicKafkaServerConf.config.xml) line 16 column 21 at file:///WEB-INF/conf/topLogicKafkaServerConf.config.xml%20(C:/Users/jst.BOS/Desktop/eclipse/workspaces/tl_trunk_7/com.top_logic.kafka.server/src/main/webapp/WEB-INF/conf/topLogicKafkaServerConf.config.xml) line 16 column 21. at com.top_logic.basic.AbstractProtocol.makeStackTrace(AbstractProtocol.java:67) at com.top_logic.basic.AbstractProtocol.localError(AbstractProtocol.java:73) at com.top_logic.basic.AbstractProtocol.localError(AbstractProtocol.java:52) at com.top_logic.basic.ProtocolChain.error(ProtocolChain.java:92) at com.top_logic.basic.LogAdaptor.error(LogAdaptor.java:16) at com.top_logic.basic.config.InstantiationContextImpl.error(InstantiationContextImpl.java:59) at com.top_logic.basic.LogAdaptor.error(LogAdaptor.java:16) at com.top_logic.basic.MessageEnhancingLog.error(MessageEnhancingLog.java:17) at com.top_logic.basic.LogAdaptor.error(LogAdaptor.java:16) at com.top_logic.basic.config.InstantiationContextImpl.error(InstantiationContextImpl.java:59) at com.top_logic.basic.config.InstantiationContextAdaptor.error(InstantiationContextAdaptor.java:80) at com.top_logic.basic.config.ConfigurationReader$Handler.errorNoSuchProperty(ConfigurationReader.java:561) at com.top_logic.basic.config.ConfigurationReader$Handler.readContents(ConfigurationReader.java:516) at com.top_logic.basic.config.ConfigurationReader$Handler.readNextElement(ConfigurationReader.java:205) at com.top_logic.basic.config.ConfigurationReader$Handler.readConfigurationItem(ConfigurationReader.java:1317) at com.top_logic.basic.config.ConfigurationReader$Handler.readItemConfig(ConfigurationReader.java:1086) at com.top_logic.basic.config.ConfigurationReader$Handler.readItemConfig(ConfigurationReader.java:752) at com.top_logic.basic.config.ConfigurationReader$Handler.readElementValue(ConfigurationReader.java:654) at com.top_logic.basic.config.ConfigurationReader$Handler.readContents(ConfigurationReader.java:522) at com.top_logic.basic.config.ConfigurationReader$Handler.readNextElement(ConfigurationReader.java:205) at com.top_logic.basic.config.ConfigurationReader$Handler.readConfigurationItem(ConfigurationReader.java:1317) at com.top_logic.basic.config.ConfigurationReader$Handler.handleMapAdd(ConfigurationReader.java:1156) at com.top_logic.basic.config.ConfigurationReader$Handler.readMapEntry(ConfigurationReader.java:802) at com.top_logic.basic.config.ConfigurationReader$Handler.readElementValue(ConfigurationReader.java:673) at com.top_logic.basic.config.ConfigurationReader$Handler.readContents(ConfigurationReader.java:522) at com.top_logic.basic.config.ConfigurationReader$Handler.readNextElement(ConfigurationReader.java:205) at com.top_logic.basic.config.ConfigurationReader$Handler.readConfigurationItem(ConfigurationReader.java:1317) at com.top_logic.basic.config.ConfigurationReader$Handler.parseContents(ConfigurationReader.java:167) at com.top_logic.basic.config.ConfigurationReader$Handler.parse(ConfigurationReader.java:112) at com.top_logic.basic.config.ConfigurationReader.parseAndClose(ConfigurationReader.java:2097) at com.top_logic.basic.config.ConfigurationReader.readInternal(ConfigurationReader.java:2077) at com.top_logic.basic.config.ConfigurationReader.readInternal(ConfigurationReader.java:2060) at com.top_logic.basic.config.ConfigurationReader.read(ConfigurationReader.java:2043) at com.top_logic.basic.config.ConfigurationReader.read(ConfigurationReader.java:2005) at com.top_logic.basic.config.ApplicationConfig$Module.loadConfig(ApplicationConfig.java:497) at com.top_logic.basic.config.ApplicationConfig$Module.newImplementationInstance(ApplicationConfig.java:458) at com.top_logic.basic.config.ApplicationConfig$Module.newImplementationInstance(ApplicationConfig.java:1) at com.top_logic.basic.module.BasicRuntimeModule.startUp(BasicRuntimeModule.java:98) at com.top_logic.basic.module.ModuleUtil.start(ModuleUtil.java:261) at com.top_logic.basic.module.ModuleUtil.startModuleAndAdd(ModuleUtil.java:751) at com.top_logic.basic.module.ModuleUtil.startModulesAndAdd(ModuleUtil.java:705) at com.top_logic.basic.module.ModuleUtil.startUp(ModuleUtil.java:241) at com.top_logic.basic.module.ModuleUtil.startXMLProperties(ModuleUtil.java:1044) at com.top_logic.basic.XMLProperties.internalStart(XMLProperties.java:1145) at com.top_logic.basic.XMLProperties.restartXMLProperties(XMLProperties.java:1130) at com.top_logic.basic.XMain.startupXMLProperties(XMain.java:211) at com.top_logic.basic.XMain.initXMLProperties(XMain.java:146) at com.top_logic.basic.XMain.beforeActualPerformance(XMain.java:597) at com.top_logic.basic.Main.runMain(Main.java:257) at com.top_logic.kafka.server.main.ZooKeeperStarterMain.main(ZooKeeperStarterMain.java:36)
Solution
The tl:WrapperGenerator works and can be used as a template for a solution.
Test
Test without additional deploy folders: Start ZooKeeper.
Test with additional deploy folders:
- In com.top_logic and com.top_logic.kafka.server create a folder xxx in the deploy folder. Create the webapp folder in each of these folders.
- Make a breakpoint in MultiFileManager.paths().
- In the Launch Configuration "Start ZooKeeper" add --aspect xxx as arguments for the application.
- Execute the Launch Configuration.
- In the breakpoint check if the two webapp folders appear in _paths.