More user guide changes for the 'make new plugin resolution mechanism public' story
Spec updates for component-model work
- Created stories for a couple of open issues
- Moved “Configure the source sets of a component” from the native to general spec
Introduced JarBinary type to JVM component model
Need to use an assert in ConcurrentTestUtil.poll's closure.
Relaxed the type of input parameter for configuration.setExtendsFrom: Set -> Iterable. It's a small change, makes the API slightly better and it's backwards compatible.
Some tidy-up, removed a TODO (using notation parser gives standard error reporting, is consistent, etc.).
GRADLE-3124 Detect typos in map notation when configuring exclude rules on configurations.
Mentioned in the breaking changes section a validation of dependency exclude rules (configuration-level).
API for cancellation in toolingApi.
Pass cancellation token to ConsumerConnection in ToolingAPI.
Tooling API operations are not executed when cancelled before start.
Tooling API issues warning when provider does not support build cancellation.
Moved source directory conventions out of ‘cpp’ project into ‘languageBase’

- Still using a ProjectConfigurationAction instead of ModelRule
- Added more integration tests for building components from Java sources
  - Test configuration of source locations
  - Build mixed native/jvm project with real sources
Made LanguageRegistry internal: we don’t want to ever expose it this way
Fixed bug in PreprocessingReader that introduced null characters to the beginning of stream.
Reduce scope of story by moving some open issues and simplifying behaviour
Test that empty jar is built when no sources or resources are supplied
Fix test by using correct exe name on windows
Test for failing compilation with ‘java-lang’ plugin
Added test for incremental build using new java-lang plugin