This looks like a change to a central processor. To me it looks correct, what it's doing i.e. it is just using whatever information the moduleSpecification is providing it for transitive dependencies. Ignoring that doesn't look right to me. Perhaps the moduleSpecification itself needs to take care of setting the right value for requires transitive dependencies. Having said that, I haven't yet fully understand the logging dependency issue that's prompted this change. I'll read that discussion to understand a bit more. But in the meantime, if someone else feels these changes are valid, feel free to merge this.