Edgent-240 [gradle] [WIP] Overhaul dependency specification and handling

The upshot is to do like the ant-based scripts and specify
inter-project, core-ext, and project-private-ext
dependencies against jars in the target dir.
The original conversion specified on inter-project dependencies on
"projects" (hence their artifacts not in the target-dir) and that caused
a host of issues.

With the changes things like manifest-classpath generation are
simplified and overall the gradle build now adhears to the policies:
- Edgent projects depend on other project's jars in the target-dir, not
their classes
- Edgent project jars have a manifest-classpath that handles the
project's "private" inter-project dependencies as well as the project's
"private" external component dependencies.
- We build a target dir that includes the project's jar as well as the
project's external dependency jars
- The tests compile and run against the project jars in the target dir
(as external/integration test code would).  Well bit more to do there.
- The samples compile and run against the project jars in the target dir
(as user code would).

All seems fine including when building and testing with
ANDROID_SDK_PLATFORM and DERBY_HOME set:
- all tests pass (sans manual run of kafka tests)
- sample scripts seem to run appropriately
- console comes up

TODOs
- look into javadoc task warnings
- test's classpath is still including its project's build/main/classes
- edgent.android.{topology,hardware}.jar manifest classpath and the
"android.jar" - compared to ant-build?


More details of the changes...

- define addTargetDirProjectJarDependency(),
addTargetDirExtJarDependency(), addTargetDirCoreExtDependency(),
addTargetDirCoreExtDependencies(), addProjectExtDependency()
- change all build.gradle to use them
- configure common sample dependencies in root build.gradle
- adapt manifest classpath generation in light of above
- rework how common_ext_dependencies files get added to target-dir/ext

Other cleanup,etc
- generate project jar/war directly into targetdir with the correct name
(remove "copy/rename" of jar created by default far task)
- fix ant -> gradle conversion of api/function project
- add previously (benign) absent api/function dependency from
api/topology
- remove updateTargetDir task -- just add processing as "doLast" to the
assemble task
- other root build.gradle refactoring for hygiene
- fix issues caused by kafka's transitive dependencies
- update connectors:iotp to watson-iot:0.1.5 - initial motivation was to
cleanup the fact that 0.1.1 had dependency on a mqttv3 SNAPSHOT version
6 files changed
tree: 36ca7443198fd164fad77eeb7e3b33fc1dec60b5
  1. apps/
  2. connectors/
  3. console/
  4. scenarios/
  5. topology/
  6. utils/
  7. .classpath
  8. .gitignore
  9. .project
  10. README.md
README.md

Samples for the embedded streams API.