Repository: incubator-edgent Updated Branches: refs/heads/release1.0.0 a0fcd3105 -> 49384a5fe
[Edgent-307] improve supported platform doc Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-edgent/commit/7826eb21 Tree: http://git-wip-us.apache.org/repos/asf/incubator-edgent/tree/7826eb21 Diff: http://git-wip-us.apache.org/repos/asf/incubator-edgent/diff/7826eb21 Branch: refs/heads/release1.0.0 Commit: 7826eb218fae47719bec33b9d86467d5c24a5bf2 Parents: a0fcd31 Author: Dale LaBossiere <dlab...@us.ibm.com> Authored: Tue Nov 8 15:07:25 2016 -0500 Committer: Dale LaBossiere <dlab...@us.ibm.com> Committed: Tue Nov 8 15:07:25 2016 -0500 ---------------------------------------------------------------------- DEVELOPMENT.md | 33 ++++++++++++++++++++++++++++++--- JAVA_SUPPORT.md | 30 +++++++++++------------------- README.md | 3 +++ legal/binary-release-readme | 3 +++ legal/source-release-readme | 6 ++++++ 5 files changed, 53 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/7826eb21/DEVELOPMENT.md ---------------------------------------------------------------------- diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 494580c..f7583aa 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -1,8 +1,10 @@ ## Development of Apache Edgent *Apache Edgent is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.* + +See (README.md) for high level information about Apache Edgent. -This describes development of Apache Edgent itself, not how to develop Edgent applications. +This document describes development of Apache Edgent itself, not how to develop Edgent applications. * See http://edgent.incubator.apache.org/docs/edgent-getting-started for getting started using Edgent The Edgent community welcomes contributions, please *Get Involved*! @@ -32,7 +34,10 @@ reusing their Quarks workspace. Once you have forked the repository and created your local clone you need to download these additional development software tools. -* Java 8 - The development setup assumes Java 8 and Linux. +* Java 8 - The development setup assumes Java 8 and Linux. + +All Edgent runtime development is done using Java 8. Jars for Java 7 and Android +platforms are created as described below. ### Building a Binary Release Bundle @@ -119,6 +124,28 @@ following statement: Closing and reopening a pull request will kick off a new build against the pull request. +### Java 7 and Android +Java 7 and Android target platforms are supported through use of +retrolambda to convert Edgent Java8 jars to Java7 jars. + +Building a release (`./gradlew release`) produces three sets of jars under +* build/distributions/java8 - Java 8 SE +* build/distributions/java7 - Java 7 SE +* build/distributions/android - Android + +See (JAVA_SUPPORT.md) for which Edgent capabilities / jars are supported +for each environment. + +#### Adding Edgent Runtime Jars to Java 7 & Android + +The gradle tooling uses some ant tooling to create the Java 7 and Android platform jars. + +Java 7 Edgent runtime jars are created using `platform/java7/build.xml`. Adding a jar just requires: +* Adding it to target `retro7.edgent` - Copy entry for an existing jar. +* Adding any tests for it to targets `test7.setup` and `test7.run` - Copy entry for an existing jar. + +Any Java 7 jar is automatically included in Android unless it is explictly excluded in `platform/android/build.xml`. + ### Test reports Running the `reports` target produces two reports: @@ -148,7 +175,7 @@ $ ./gradlew test7Run # run the tests with a java7 VM $ ./gradlew test7Reports # generate the junit and coverage tests ``` -#### Publish to Maven Repository +### Publish to Maven Repository Initial support for publishing to a local Maven repository has been added. Use the following to do the publish. http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/7826eb21/JAVA_SUPPORT.md ---------------------------------------------------------------------- diff --git a/JAVA_SUPPORT.md b/JAVA_SUPPORT.md index 438bef1..c7f9e29 100644 --- a/JAVA_SUPPORT.md +++ b/JAVA_SUPPORT.md @@ -1,18 +1,17 @@ # Edgent Java support -As documented in (DEVELOPMENT.md) Edgent development is performed -using Java 8 but Java 7 and Android is supported through use of -retrolambda to build specific jars. +The Edgent runtime is supported on all Java 8 SE, Java 7 SE, and Android +platforms with the exceptions noted below. -Building a release `ant release` produces three sets of Jars under -* target/java8 - Java 8 SE -* target/java7 - Java 7 SE -* target/android - Android +An Edgent binary release bundle has a directory for each of the target platforms. +Each target platform directory contains a set of jars for that platform +* java8 - Java 8 SE +* java7 - Java 7 SE +* android - Android -[WIP] Building a release `./gradlew release` produces three sets of Jars under -* build/distributions/java8 - Java 8 SE -* build/distributions/java7 - Java 7 SE -* build/distributions/android - Android +When building an Edgent release (`./gradlew release`) the above platform +directories are in `build/distributions`. See (DEVELOPMENT.md) for more +information. This page documents which jars are expected to work in each environment. @@ -21,7 +20,7 @@ and no investigation has taken place to see if it can be supported. ## Core -| Jar | Java 8 | Java 7 SE | Android | Notes | +| Jar | Java 8 SE | Java 7 SE | Android | Notes | |---|---|---|---|---| |edgent.api.execution.jar| yes | yes | yes | |edgent.api.function.jar| yes | yes | yes | @@ -93,13 +92,6 @@ and no investigation has taken place to see if it can be supported. |edgent.android.topology.jar | no | no | yes | | |edgent.android.hardware.jar | no | no | yes | | -## Adding Jars to Java 7 & Android - -Java 7 jars are created using `platform/java7/build.xml`. Adding a Java just requires: -* Adding it to target `retro7.edgent` - Copy entry for an existing jar. -* Adding any tests for it to targets `test7.setup` and `test7.run` - Copy entry for an existing jar. - -Any Java 7 jar is automatically included in Android unless it is explictly excluded in `platform/android/build.xml`. ## Java API Usage http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/7826eb21/README.md ---------------------------------------------------------------------- diff --git a/README.md b/README.md index ae05f8e..15d7ef7 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,9 @@ Your back-end systems can also use analytics to interact with and control edge d * A traffic alert system can send an alert to vehicles that are heading towards an area where an accident occurred * A vehicle monitoring system can reduce the maximum engine revs to reduce the chance of failure before the next scheduled service if it detects patterns that indicate a potential problem +## Runtime environments +Edgent has a language binding for Java. See [JAVA SUPPORT](JAVA_SUPPORT.md) for information about the supported Java environments. + See [Edgent](http://edgent.incubator.apache.org/) for more information on all aspects of Edgent including Getting Started. http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/7826eb21/legal/binary-release-readme ---------------------------------------------------------------------- diff --git a/legal/binary-release-readme b/legal/binary-release-readme index 850fe1b..dbaa993 100644 --- a/legal/binary-release-readme +++ b/legal/binary-release-readme @@ -7,4 +7,7 @@ successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. +Apache Edgent is supported on several Java target platforms. +For more information see JAVA_SUPPORT.md + See Getting Started https://edgent.apache.org/docs/edgent-getting-started http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/7826eb21/legal/source-release-readme ---------------------------------------------------------------------- diff --git a/legal/source-release-readme b/legal/source-release-readme index 615b5e8..c45c10a 100644 --- a/legal/source-release-readme +++ b/legal/source-release-readme @@ -8,6 +8,11 @@ successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. +Apache Edgent is supported on several Java target platforms. +For more information see JAVA_SUPPORT.md in the source tree +or in the ASF git repository https://git-wip-us.apache.org/repos/asf/incubator-edgent.git +or in the repository mirror at github https://github.com/apache/incubator-edgent. + Pre-requisites: - Java 8 is required to build an Edgent binary distribution @@ -17,6 +22,7 @@ $ ./gradlew release # .\gradlew.bat on Windows The build reports the location of the binary distribution bundle that can then be unpacked and used in building applications. + See Getting Started https://edgent.apache.org/docs/edgent-getting-started For more information about the Edgent sources, testing, and