Many choices inherit rationale from upstream libraries. Become familiar with these, in order to deeply understand choices:
Brave and zipkin reporter support a floor version of Java 1.6. There are a few modules here that were lower than Java 1.8 when we moved the floor up to 1.8.
- brave-instrumentation-aws-java-sdk-core - 1.7 (defined by aws-java-sdk-core)
- brave-propagation-aws - 1.6 (defined by us)
All the other modules directly or indirectly required minimum Java 1.8. We decided to move the floor version up to 1.8 for convenience of the maintainers, and a bet that aws-java-sdk-core users are not reliant on JRE 1.7 or old versions of Android.
1.8 is more convenient as we can re-use tests with a different source level without resorting to Maven invoker to execute them. Notably, IDEA-85478 causes this problem, so interested parties should upvote or otherwise encourage that change.
If users rely on Java 1.7 bytecode for aws-java-sdk-core
instrumentation, they will tell us.
We have accidentally broken compile versions or modularity before, and people have reported, and we
promptly fixed. We can justify the effort of making brave-instrumentation-aws-java-sdk-core
work
in Java 1.7 again on demand (likely via use of invoker tests to isolate class versions).