GitHub user dlaboss opened a pull request: https://github.com/apache/incubator-edgent/pull/184
Quarks-240 [gradle] release task: manifest classpath, external deps, java7, android - add building of edgent jar's manifest classpath - add staging of projects' external dependencies (from maven cache) to target-dir - add building/staging of java7 and android targets - fixed a bug where java7 included the http connector but wasn't capturing the connector's external dependencies - updated JAVA_SUPPORT.md and DEVELOPMENT.md java8 samples now run from release-dir/tgz. java7and android target dirs have the appropriate content There are some staging/tgz differences vs ant script generated tgz: - Staging of external jars is now flattened in "ext" dirs. With ant we had somewhat inconsistent and arbitrary intermediate dirs due to the way we happened to add ext jars to our git repo. e.g., ext/gson-2.2.4.jar vs ext/google-gson-2.2.4/gson-2.2.4.jar - Some different ext jars are staged. With gradle we stage a declared external dependency's transitive dependencies as known to an external maven repository. With ant we only staged whatever we had manually added to our git repo. Observed differences in: - connectors/http - slight version diff - connectors/iotp - a worrysome difference is our dependency on watson-iot.jar ends up including a paho-mqtt-SNAPSHOT jar whereas our repo had a non-SNAPSHOT version - connectors/javax.websocket-server - lots of extra things. the tgz shouldn't be including this project - connectors/kafka - now has several extra jars - gradle (correctly I think) doesn't stage ./console/servlets/lib/edgent.console.servlets.jar. Everything is in the console.war. Running a 'development provider' sample from a gradle generated tgz works fine wrt running a Console against the job. - gradle (correctly I think) doesn't include connectors/javax.websocket-server in the tgz (fyi, that project includes lots of additional transitive ext jars vs ant) TODOs (post-merge) - task that runs all edgent tests against the jars (as ant build's "test" does) - testing of java7,android targets - building of android/{hardware,topology} - figure out what's needed for notice/license info for external jars copied into tgz - the paho-mqtt-SNAPSHOT thing You can merge this pull request into a Git repository by running: $ git pull https://github.com/dlaboss/incubator-edgent manifestClasspath Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-edgent/pull/184.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #184 ---- commit 5ad892666965376283e8675bfdd8319e0e214f37 Author: Dale LaBossiere <dlab...@us.ibm.com> Date: 2016-08-30T14:54:52Z [WIP] Quarks-240 [gradle] manifest classpath and ext deps - set manifest classpath (sans project's external deps) - TODO stage core external dependency jars - TODO stage project's external dependency jars commit 76c1972c3dca40f21113f601495d473dd2332807 Author: Dale LaBossiere <dlab...@us.ibm.com> Date: 2016-08-30T21:00:32Z handle external dependency staging and manifest-classpath - rename copyJar => updateTargetDir - rename ext_classpath => core_ext_dependencies - add definitions of sample and test common external dependencies - stage core external dependencies - note, no longer in subdirs under ext - stage sample common external dependencies - stage each project's external dependencies - add project's ext dependant jars to its manifest-classpath - running samples from build/distributions/java8/... works - running "./gradlew clean test reports" still works (though still doesn't test target-dir jars) - staging more project external dependency jars than ant scripts due to very selective/specific nature or ant scripts vs gradle/maven transistive dependencies - staging of project's external dependencies (in <proj>/ext/...) is now flat vs ant script due to how those external dependency jars were located in the repository - staging of common external jars (in targetDir/ext) is now flat vs and script due to how those external dependency jars were located in the repository - TODO best practice of keeping version name in jars (edgent jars) - TODO notice/license issue for external jars in the targetDir/tgz (none present now) - TODO connectors/iotp/ext is getting paho mqtt SNAPSHOT jar - connectors/javax.websocket-server/ext has quite a bit more jars - connectors/kafka/ext has quite a bit more jars - TODO still getting undesired jar rebuilds due to DSTAMP/TSTAMP - TODO run of mqtt, kafka, websocket tests commit be8c935a1fc14dbae94196d3599b77d3d14acd6a Author: Dale LaBossiere <dlab...@us.ibm.com> Date: 2016-08-30T22:18:33Z add support for selective (e.g., "manual") test execution commit 9924192006a2cb64f254546bf9c5d90a3208a4d4 Author: Dale LaBossiere <dlab...@us.ibm.com> Date: 2016-08-31T14:14:41Z support use of --tests for specific test class/method selection commit 7b85f486d38051a222403b26d47ee0118905ed25 Author: Dale LaBossiere <dlab...@us.ibm.com> Date: 2016-08-31T19:16:15Z initial hackery to build java7 and android - make platform/java7/build.xml sufficiently overridable - add clean to platform/android/build.xml; explicitly omit console things - add missing components to JAVA_SUPPORT.md - fix java7 to include connector/http/ext (needed because java7 includes edgent.connectors.http.jar and is doc'd as supporting it) - add java7,android task to build.gradle With this commit, "./gradlew release" does seemingly correctly assemble java7 and android in the gradle targetDir. TODO java7,android test TODO building of android/{hardware,topology commit 434687002604f8f3e4d2c829e64499f7b3d826c3 Author: Dale LaBossiere <dlab...@us.ibm.com> Date: 2016-09-01T16:00:44Z build java7 and android targets - make platform/java7/build.xml sufficiently overridable - add clean to platform/android/build.xml; explicitly omit console things - add missing components to JAVA_SUPPORT.md - fix java7 to include connector/http/ext (needed because java7 includes edgent.connectors.http.jar and is doc'd as supporting it) - add build.gradle to platform/{android,java7} - add dependencies for java7,android to build.gradle With this commit, "./gradlew release" seems to correctly assemble java7 and android in the gradle targetDir. TODO java7,android test TODO building of android/{hardware,topology} commit 6fd19bbcef9bb973d997685a827e127bec5e22a6 Author: Dale LaBossiere <dlab...@us.ibm.com> Date: 2016-09-01T16:24:21Z remove some commentary noise commit 3118af66956c55b5d3b54477751372fe6398a46d Author: Dale LaBossiere <dlab...@us.ibm.com> Date: 2016-09-01T17:41:56Z exclude some artifacts from tgz - test/svt - connectors/javax.websocket-server ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---