The JARStructure either recoginizes a jar or it does not. It should not go searching subdirectories for that. If you want that either uses an explicit structure declaration, or add an option to the FileStructure to traverse into directories similar to what we have in the URLDeploymentScanner.RecursiveSearch behavior.
Now, when lib/ is processed, the JARStructure deployer determines it is neither a "archive" nor a top level directory, so it does not process lib's children.
How could it know that lib/ is a subdeployment whereas com/ or org/
that just contain classes are not?
You need to provide extra information if you want a subdirectory deployed
and that subdirectory doesn't have a recognisable suffix.
I guess we could make an exception for the special case "lib'
and then hope nobody has a class called
NOTE: The other way to do it is to add an empty META-INF subdirectory to the lib/
folder. The JARStructureDeployer should then recognise it as a jar.