Cool blog post, I really like your proposed test pyramid. It comes really close to my own mental model of different test classes (although I use the classic terms Unit-, Integration- and Acceptance-Tests).
I switched from package-by-layer style to package-by-feature some years ago. My problem is mostly, that I don't get my dependencies straight and this might lead to some awkward cyclic dependencies between packages.
What do you think about sub-packaging the outside layers inside the feature/component layers? I was thinking about trying something like
useCaseA: contains my business classes
useCaseA.web: contains the web layer for useCaseA
useCaseA.persistence: contains the persistence layer for useCaseA
It's a shame there is no sub-package concept in Java, I think it would allow for some interesting packaging approaches.
E-mail addresses are not publicly displayed, so please only leave your e-mail address if you would like to be notified when new comments are added to this blog entry (you can opt-out later).