]
Magnus Larsson updated DROOLS-5434:
-----------------------------------
Attachment: image-2020-09-03-09-20-10-089.png
Incorrect warning about file declaring wrong package
----------------------------------------------------
Key: DROOLS-5434
URL:
https://issues.redhat.com/browse/DROOLS-5434
Project: Drools
Issue Type: Bug
Components: core engine
Reporter: Magnus Larsson
Assignee: Mario Fusco
Priority: Major
Attachments: image-2020-09-03-09-20-10-089.png
I am running Drools in a Spring-Boot jar and get the following warning statement _File
'BOOT-INF/classes/com/example/test/TEST.drl' is in folder
'BOOT-INF/classes/com/example/test' but declares package
'com.example.test'. It is advised to have a correspondance between package and
folder names_. The package name in the drl file is correct, the problem is just that
_BOOT-INF.classes._ isn't considered when evaluating if printing the warning or not.
I have tracked it down to *KieBuilderImpl.java*, method *isFileInKieBase*. The last 2
lines in that method calls:
{code:java}
// packageNameForFile prints warning if package in .drl file is not same as flatted
directory structure
// Does not care about SUPPORTED_RESOURCES_ROOTS, thus prints the warning
String pkgNameForFile = packageNameForFile( fileName, folderNameForFile, !useFolders,
file );
// Does care about SUPPORTED_RESOURCES_ROOTS, so the drl file is loaded
return isPackageInKieBase( kieBase, pkgNameForFile );
{code}
As it is implemented right now, the warning might either be a false-positive (and still
get loaded), or the package is wrong (and the file is not loaded).
Voting to include the SUPPORTED_RESOURCES_ROOTS as valid prefixes when checking if the
warning should be printed.