Description of problem: When I want to use a default kbase with ksessions defined by me then these will not be present in the resulting jar create in the build process. Steps to reproduce: 1) create a project 2) switch to "knowledge base settings" 3) add a ksession (e.g. session1) 4) build the project 5) explore the kmodule.xml in the jar. it should contain a defaultKieSession and defaultStatelessKieSession. Build DR6 (Beta5)
Step 5 here might be wrong. It is possible to have a default KBase without any default KSessions. So asking if step 5 is based on documentation or if there is any other reason to expect these two ksessions to be there?
the steps need to first create a kbase, before creating the ksession. What happens is the UI insists you make atleast one kbase default. This is not actually necessary in the, system will work. The getKieBase() simply returns null, if there is no default. However enforcement actually can cause problems, if you have multiple jars on the class path, each publishing a default. This causes a conflict and the system will not load. The correct way is to remove the kbase default enforcement, and leave it up to the user to select this. This will also add symmetry between the kbase and ksession.
Ok, default kbase is no longer forced.
Commits master: https://github.com/droolsjbpm/kie-wb-common/commit/3276d0482a108e57fa5d920e5ee1696ddd6646e3 6.0.x: https://github.com/droolsjbpm/kie-wb-common/commit/3537e1ea829b2190a46de39567a5807f4266e72a
Verified on ER7. All combinations now show up in the jar as expected.