rework get-edgent-jars.sh, add get-edgent-jars-project

The new approach uses the same maven "distribution"
mechanism that as the source release's "mvn package -Pdistribution".
The commonality of the generated bundles is goodness
and the included DEPENDENCIES (licensing doc) file
is valuable for users.
At this time the original script is retained as
old-get-edgent-jars.sh.
Updated relevant doc.
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 2a85b88..0946410 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -20,7 +20,10 @@
 
 A binary bundle is no longer released.  A release now publishes
 the Edgent SDK jars in the Apache Nexus repository which auto-sync's
-to Maven Central. The names of the jars now conform to standard
+to Maven Central. For cases where a user requires a binary bundle,
+see the new `samples/get-edgent-jars-project`.
+
+The names of the Edgent jars now conform to standard
 practices: "." has been replaced with "-" and the Edgent SDK
 versionId is now included.  
 
@@ -38,13 +41,6 @@
 development and deployment as well as information on building and
 running the samples.
 
-The (`samples/get-edgent-jars.sh`) tool is provided to make it
-easy for a user to retrieve the Edgent SDK jars and their dependencies
-from a maven repository.  The retrieved jars can then be used
-with application development tooling that does not support
-maven repositories and/or they can bundled and conveyed to an 
-edge device in support of application execution.
-
 The samples sources and build tooling are now structured as an
 Edgent Application Developer, Edgent SDK consumer, might structure
 their Edgent applications.  They are no longer part of the SDK and
diff --git a/samples/.gitignore b/samples/.gitignore
index ea30b70..128a2d4 100644
--- a/samples/.gitignore
+++ b/samples/.gitignore
@@ -1,7 +1,4 @@
 
-# get-edgent-jars generated outout
-get-edgent-jars-project
-
 *.class
 
 # Local developers toolchain
diff --git a/samples/APPLICATION_DEVELOPMENT.md b/samples/APPLICATION_DEVELOPMENT.md
index 44e3230..3166931 100644
--- a/samples/APPLICATION_DEVELOPMENT.md
+++ b/samples/APPLICATION_DEVELOPMENT.md
@@ -17,8 +17,6 @@
 
 # Edgent Application Development, Packaging and Execution.
 
-This file is a work-in-progress.
-
 To develop Edgent applications you will utilize the 
 Edgent SDK/runtime jars and package your application
 artifacts for deploying to an edge device for execution.
@@ -78,9 +76,8 @@
 
 If you can't or don't want to use maven-repository-enabled tooling
 you will need to get a local copy of the Edgent jars and their
-dependencies and add them to your compile classpath.
-The Edgent supplied `get-edgent-jars.sh` tool can be used to
-get copies of the jars from a maven repository.
+dependencies and add them to your compile classpath.  This case
+is covered in the following sections.
 
 
 ## Packaging and Execution
@@ -109,7 +106,8 @@
 the application's dependent Edgent classes and their
 transitive dependencies.
 
-The Edgent samples poms contain configuration information
+The Edgent samples template project's pom and
+the Edgent samples poms contain configuration information
 that generates an uber jar in addition to the standard
 application jar.  Eclipse can also export an uber jar.
 
@@ -142,46 +140,8 @@
 and their dependencies.  The binary artifacts
 are only released to maven central.
 
-The Edgent supplied get-edgent-jars.sh tool supports this mode.
-   
-## get-edgent-jars.sh
-
-The `get-edgent-jars.sh` script copies the Edgent runtime jars and their
-dependencies from a local or remote maven repository into a local folder.
-
-The user may then directly use the jars in CLASSPATH specifications
-for Edgent application compilation or execution.
-A `classpath.sh` script is generated to assist with this.
-
-By default the script retrieves the Edgent java8 platform jars for the
-script's default Edgent version.
-
-The script creates and builds a small maven project as
-part of its execution.
-
-``` sh
-get-edgent-jars.sh --version 1.2.0-SNAPSHOT  # retrieve the Edgent 1.2.0-SNAPSHOT java8 jars
-This command downloads the Apache Edgent jars and their transitive external dependencies.
-The external dependencies have their own licensing term that you should review.
-A summary of the external dependencies can be found here <TODO URL>.
-Continue? [y/n] y
-##### Generating maven project get-edgent-jars-project...
-##### Generating dependency decls...
-##### Adding dependency decls to pom...
-##### Retrieving jars into local maven repo...
-...
-##### Copying jars...
-##### Generating classpath.sh...
-##### The Edgent jars are in get-edgent-jars-project/edgent-jars
-##### The external jars are in get-edgent-jars-project/ext-jars
-##### CLASSPATH may be set by copying get-edgent-jars-project/java8/classpath.sh and using it like:
-#####    export CLASSPATH=`classpath.sh path-to-parent-of-edgent-jars-dir`
-```
-
-For more usage information:
-``` sh
-get-edgent-jars.sh -h
-```
+See `samples/get-edgent-jars-project` for a tool 
+to get a copy of the Edgent jars.
 
 ## package-app.sh
 
@@ -198,14 +158,13 @@
 their dependencies are retrieved from a local or remote
 maven repository.
 
-If the application was built using java8, complied against
-the java8 Edgent jars, and the execution environment is
+If the application's execution environment is
 java7 or android, use the appropriate script options
 to retrieve the appropriate Edgent platform jars for
 execution.
 
-The run-app.sh script configures the CLASSPATH and runs
-the application.
+The generated run-app.sh script configures the CLASSPATH
+and runs the application.
 
 E.g.,
 
diff --git a/samples/get-edgent-jars-project/.gitignore b/samples/get-edgent-jars-project/.gitignore
new file mode 100644
index 0000000..574159f
--- /dev/null
+++ b/samples/get-edgent-jars-project/.gitignore
@@ -0,0 +1,6 @@
+
+# generated from pom.xml.template
+pom.xml
+
+# old-get-edgent-jars.sh generated outout
+tmp-get-edgent-jars-project
diff --git a/samples/get-edgent-jars-project/README.md b/samples/get-edgent-jars-project/README.md
new file mode 100644
index 0000000..ad176b9
--- /dev/null
+++ b/samples/get-edgent-jars-project/README.md
@@ -0,0 +1,54 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+The `get-edgent-jars-project` can be used to copy Apache Edgent jars
+and their transitive dependencies from a local or remote maven 
+repository into bundles under `target`.
+
+Use `get-edgent-jars.sh` to create bundles containing the jars.
+The script also creates `target/classpath.sh` for composing a classpath
+to use the Edgent jars.
+
+By default the script retrieves the Edgent java8 platform jars for the
+project's default Edgent version.
+
+``` sh
+cd get-edgent-jars-project
+./get-edgent-jars.sh --version 1.2.0-SNAPSHOT  # retrieve the Edgent 1.2.0-SNAPSHOT java8 jars
+##### Generating dependency decls...
+##### Generating pom.xml...
+...
+##### Generating the bundles...
+...
+##### Generating classpath.sh...
+##### Bundle LICENSING information:
+...
+##### Using a bundle:
+
+    copy a bundle from target and unpack it
+    copy target/classpath.sh and use it to compose a classpath:
+
+        export CLASSPATH=`./classpath.sh --add-slf4j-jdk <path-to-unpacked-bundle>`
+
+    Omit "--add-slf4j-jdk" to omit an slf4j-jdk* implementation jar from the classpath.
+```
+
+
+For more usage information:
+``` sh
+get-edgent-jars.sh -h
+```
diff --git a/samples/get-edgent-jars.sh b/samples/get-edgent-jars-project/get-edgent-jars.sh
similarity index 65%
copy from samples/get-edgent-jars.sh
copy to samples/get-edgent-jars-project/get-edgent-jars.sh
index 46a2bbf..4b4194a 100755
--- a/samples/get-edgent-jars.sh
+++ b/samples/get-edgent-jars-project/get-edgent-jars.sh
@@ -29,21 +29,22 @@
 ##   Lines that begin with '#' are ignored.
 ## --mvn mvn-cmd use mvn-cmd instead of "./mvnw"
 ##
-## Creates the directory get-edgent-jars-project and a maven project in it
+## Creates bundles and classpath.sh in the target dir.
 
 USAGE="usage: [--platform {java8|java7|android}] [--version edgent-version] [--artifacts csv-gav-list] [--file gav-file] [--mvn mvn-cmd]"
 
 set -e
 
-SAMPLES_DIR=`(cd $(dirname $0); pwd)`
+# project dir is whereever this script resides
+PROJ_DIR=`(cd $(dirname $0); pwd)`
+
+SAMPLES_DIR=`(cd $(dirname $0); pwd)`/..
 MVN_CMD=${SAMPLES_DIR}/mvnw
 
 EDGENT_PLATFORM=java8
-EDGENT_VERSION=1.2.0
+EDGENT_VERSION=
 SLF4J_VERSION=1.7.12
 
-PROJ_DIR=get-edgent-jars-project
-
 if [ "$1" = "--platform" -a $# -gt 1 ]; then
     EDGENT_PLATFORM=$2; shift; shift
 fi
@@ -128,58 +129,24 @@
 }
 
 ###########################
-cat <<EOF
-This command downloads the Apache Edgent jars and their transitive external dependencies.
-The external dependencies have their own licensing term that you should review.
-A summary of the external dependencies can be found here <TODO URL>.
-EOF
-confirm "Continue?" || exit
-
-###########################
-if [ ! -d ${PROJ_DIR} ]; then
-    echo "##### Generating maven project ${PROJ_DIR}..."
-    # ensure a standalone pom (no parent) to avoid unwanted inherited deps
-    TMP_PROJ=${PROJ_DIR}-tmp
-    mkdir ${TMP_PROJ}
-    cd ${TMP_PROJ}
-    ${MVN_CMD} -B archetype:generate \
-        -DarchetypeGroupId=org.apache.maven.archeTypes \
-        -DarchetypeArtifactId=maven-archetype-quickstart \
-        -DgroupId=org.apache.edgent.tools \
-        -DartifactId=${PROJ_DIR} \
-        -Dversion=1.0
-    cd ..
-    mv ${TMP_PROJ}/${PROJ_DIR} ${PROJ_DIR}
-    rmdir ${TMP_PROJ}
-    cp ${PROJ_DIR}/pom.xml ${PROJ_DIR}/pom.xml.orig
-else
-    cp ${PROJ_DIR}/pom.xml.orig ${PROJ_DIR}/pom.xml
-fi    
-
-###########################
-
-cd ${PROJ_DIR}
-
-###########################
-
-###########################
 echo
 echo "##### Generating dependency decls..."
 ARTIFACT_GAVS="${OPT_GAVS:-${DEFAULT_GAVS}}"
-ARTIFACT_GAVS=`echo "${ARTIFACT_GAVS}" | sed -e "s/{EV}/${EDGENT_VERSION}/g"`
 mkdir -p target
 DEP_DECLS_FILE=target/tmp-dep-decls
 rm -f ${DEP_DECLS_FILE}
 for i in ${ARTIFACT_GAVS}; do
-    echo $i | awk -F : '{ type=""; if ($4 != "") type="  <type>" $4 "</type>\n"; printf "<dependency>\n  <groupId>%s</groupId>\n  <artifactId>%s</artifactId>\n  <version>%s</version>\n%s</dependency>\n", $1, $2, $3, type }' >> ${DEP_DECLS_FILE}
+    echo $i | awk -F : '{ type=""; if ($3 == "{EV}") $3="${edgent.core.version}"; if ($4 != "") type="  <type>" $4 "</type>\n"; printf "<dependency>\n  <groupId>%s</groupId>\n  <artifactId>%s</artifactId>\n  <version>%s</version>\n%s</dependency>\n", $1, $2, $3, type }' >> ${DEP_DECLS_FILE}
 done
 DEP_DECLS=`cat ${DEP_DECLS_FILE}`
 
 ###########################
 echo
-echo "##### Adding dependency decls to pom..."
-ed pom.xml <<EOF
-/<dependencies>
+echo "##### Generating pom.xml..."
+cd ${PROJ_DIR}
+cp pom.xml.template pom.xml
+ed -s pom.xml <<EOF
+/INJECT_DEPENDENCIES_HERE
 a
 ${DEP_DECLS}
 .
@@ -188,55 +155,50 @@
 
 ###########################
 echo
-echo "##### Retrieving jars into local maven repo..."
-${MVN_CMD} clean compile
+echo "##### Generating the bundles..."
+EDGENT_VERSION_PROPERTY=
+if [ "${EDGENT_VERSION}" ]; then
+  EDGENT_VERSION_PROPERTY=-Dedgent.core.version=${EDGENT_VERSION}
+fi
+PLATFORM_PROFILE=
+if [ ${EDGENT_PLATFORM} != "java8" ]; then
+  PLATFORM_PROFILE="-Pplatform-${EDGENT_PLATFORM}"
+fi
+${MVN_CMD} clean package ${EDGENT_VERSION_PROPERTY} ${PLATFORM_PROFILE}
 
-###########################
-echo
-echo "##### Copying jars..."
-# if someone screws up j7 or android deps, uncomment the following and
-# it will help identify wrong jars that are getting included / copied
-# (and otherwise overwriting each other).
-#DEBUG_DEPS=-Dmdep.prependGroupId=true
-${MVN_CMD} dependency:copy-dependencies -DincludeScope=runtime ${DEBUG_DEPS}
-
-DEPS_SRC_DIR=target/dependency
-EDGENT_DEPS_DIR=${EDGENT_PLATFORM}/edgent-jars
-EXT_DEPS_DIR=${EDGENT_PLATFORM}/ext-jars
-
-rm -rf "${EDGENT_DEPS_DIR}"; mkdir -p ${EDGENT_DEPS_DIR}
-rm -rf "${EXT_DEPS_DIR}"; mkdir -p ${EXT_DEPS_DIR}
-
-cp ${DEPS_SRC_DIR}/* ${EXT_DEPS_DIR}
-
-for i in `find ${EXT_DEPS_DIR} -name '*edgent-*.*ar'`; do
-  mv $i ${EDGENT_DEPS_DIR}
-done
 
 ###########################
 echo
 echo "##### Generating classpath.sh..."
-cat << 'EOF'  > ${EDGENT_PLATFORM}/classpath.sh
+cat << 'EOF'  > ${PROJ_DIR}/target/classpath.sh
 #!/bin/sh
+USAGE="usage: classpath.sh [--add-slf4j-jdk] <path-to-unpacked-bundle>"
 set -e
-if [ "${1}" = "" -o "${1}" = "-?" -o "${1}" = "-help" ]; then 
-    echo "usage: classpath.sh <path-to-parent-of-edgent-jars-dir>"
+if [ "${1}" == "--add-slf4j-jdk" ]; then
+    ADD_SLF4J_IMPL=slf4j-jdk
+    shift
+fi
+if [ $# != 1 ] || [[ ${1} == -* ]] ; then
+    echo "${USAGE}"
     exit 1
 fi
 BASEDIR=${1}
 cd ${BASEDIR}
 SEP=
 CP=
-if [ "`ls edgent-jars 2>/dev/null`" != "" ]; then
-    for i in edgent-jars/*; do
+if [ "`ls libs 2>/dev/null`" != "" ]; then
+    for i in libs/*; do
         CP="${CP}${SEP}${BASEDIR}/${i}"
         SEP=":"
     done
 fi
-if [ "`ls ext-jars 2>/dev/null`" != "" ]; then
-    for i in ext-jars/*; do
+if [ "`ls ext 2>/dev/null`" != "" ]; then
+    for i in ext/*; do
         if [[ ${i} == */slf4j-* ]] && [[ ${i} != */slf4j-api-* ]] ; then
-            continue
+            # it's an slf4j impl
+            if [[ "${ADD_SLF4J_IMPL}" == "" ]] || [[ ${i} != */${ADD_SLF4J_IMPL}* ]] ; then 
+                continue
+            fi
         fi
         CP="${CP}${SEP}${BASEDIR}/${i}"
         SEP=":"
@@ -244,11 +206,21 @@
 fi
 echo "${CP}"
 EOF
-chmod +x ${EDGENT_PLATFORM}/classpath.sh
+chmod +x target/classpath.sh
 
 ###########################
 echo
-echo "##### The Edgent jars are in ${PROJ_DIR}/${EDGENT_DEPS_DIR}"
-echo "##### The external jars are in ${PROJ_DIR}/${EXT_DEPS_DIR}"
-echo "##### CLASSPATH may be set by copying ${PROJ_DIR}/${EDGENT_PLATFORM}/classpath.sh and using it like:"
-echo '#####    export CLASSPATH=`classpath.sh path-to-parent-of-edgent-jars-dir`'
+echo "##### Bundle LICENSING information:"
+echo
+cat ${PROJ_DIR}/src/main/resources/README
+echo
+cat <<'EOF'
+##### Using a bundle:
+
+    copy a bundle from target and unpack it
+    copy target/classpath.sh and use it to compose a classpath:
+
+        export CLASSPATH=`./classpath.sh --add-slf4j-jdk <path-to-unpacked-bundle>`
+
+    Omit "--add-slf4j-jdk" to omit an slf4j-jdk* implementation jar from the classpath.
+EOF
diff --git a/samples/get-edgent-jars.sh b/samples/get-edgent-jars-project/old-get-edgent-jars.sh
similarity index 99%
rename from samples/get-edgent-jars.sh
rename to samples/get-edgent-jars-project/old-get-edgent-jars.sh
index 46a2bbf..fffb747 100755
--- a/samples/get-edgent-jars.sh
+++ b/samples/get-edgent-jars-project/old-get-edgent-jars.sh
@@ -42,7 +42,7 @@
 EDGENT_VERSION=1.2.0
 SLF4J_VERSION=1.7.12
 
-PROJ_DIR=get-edgent-jars-project
+PROJ_DIR=tmp-get-edgent-jars-project
 
 if [ "$1" = "--platform" -a $# -gt 1 ]; then
     EDGENT_PLATFORM=$2; shift; shift
diff --git a/samples/get-edgent-jars-project/pom.xml.template b/samples/get-edgent-jars-project/pom.xml.template
new file mode 100644
index 0000000..bae3613
--- /dev/null
+++ b/samples/get-edgent-jars-project/pom.xml.template
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <!-- standalone project -->
+  <!--parent>
+    <groupId>org.apache.edgent</groupId>
+    <artifactId>edgent-parent</artifactId>
+    <version>1.2.0-SNAPSHOT</version>
+  </parent-->
+
+  <groupId>org.apache.edgent.get-edgent-jars</groupId>
+  <artifactId>get-edgent-jars</artifactId>
+  <version>1.2.0-SNAPSHOT</version>
+
+  <name>Apache Edgent get-edgent-jars ${samples.projname.platform}</name>
+
+  <properties>
+    <samples.projname.platform> (Java 8)</samples.projname.platform>  <!--  tweaked by -Pplatform-* -->
+    <edgent.platform>java8</edgent.platform> <!-- tweaked by -Pplatform-* -->    
+    <edgent.groupId.platform/> <!-- tweaked by -Pplatform-* -->    
+    <edgent.base.groupId>org.apache.edgent${edgent.groupId.platform}</edgent.base.groupId>
+    <!--  at least for now, the samples version is lockstep with the core
+          so default to using the same core as the this project.
+          get-edgent-jars.sh overrides via -Dedgent.core.version=...
+    -->
+    <edgent.core.version>${project.version}</edgent.core.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-assembly-plugin</artifactId>
+          <version>2.5.3</version>
+          <configuration>
+            <finalName>edgent-${edgent.platform}-jars-${edgent.core.version}</finalName>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+
+    <plugins>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <version>1.5</version><!--$NO-MVN-MAN-VER$-->
+        <executions>
+          <execution>
+            <id>process-resource-bundles</id>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <resourceBundles>
+                <!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} -->
+                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
+                <!-- Will generate META-INF/DISCLAIMER (incubator version) -->
+                <resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle>
+              </resourceBundles>
+              <!-- Content in this directory will be appended to generated resources -->
+              <appendedResourcesDirectory>${remote-resources-maven-plugin.remote-resources.dir}</appendedResourcesDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptor>src/assembly/distribution.xml</descriptor>
+        </configuration>
+        <executions>
+          <execution>
+            <id>create-archive</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <!-- We don't need any jars as output in this module -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>default-jar</id>
+            <phase>none</phase>
+          </execution>
+          <execution>
+            <id>default</id>
+            <phase>none</phase>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>platform-java7</id>
+      <properties>
+        <edgent.platform>java7</edgent.platform>
+        <edgent.groupId.platform>.${edgent.platform}</edgent.groupId.platform>
+        <platform.java7>true</platform.java7>
+        <samples.projname.platform> (Java 7)</samples.projname.platform>
+      </properties>
+    </profile>
+    <profile>
+      <id>platform-android</id>
+      <properties>
+        <edgent.platform>android</edgent.platform>
+        <edgent.groupId.platform>.${edgent.platform}</edgent.groupId.platform>
+        <platform.android>true</platform.android>
+        <samples.projname.platform> (Android)</samples.projname.platform>
+      </properties>
+    </profile>
+  </profiles>
+
+  <dependencies>
+<!-- INJECT_DEPENDENCIES_HERE -->
+  </dependencies>
+
+</project>
diff --git a/samples/get-edgent-jars-project/src/assembly/distribution.xml b/samples/get-edgent-jars-project/src/assembly/distribution.xml
new file mode 100644
index 0000000..843bbf5
--- /dev/null
+++ b/samples/get-edgent-jars-project/src/assembly/distribution.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+
+  <!--
+    NOTE: each platform (platforms/java7 and platforms/android) have their
+    own distribution project and a copy of this configuration file that
+    must be manually kept in sync. 
+   -->
+   
+  <id>bin</id>
+
+  <formats>
+    <format>tar.gz</format>
+    <format>tar.bz2</format>
+    <format>zip</format>
+  </formats>
+
+  <fileSets>
+    <fileSet>
+      <directory>${project.build.outputDirectory}/META-INF</directory>
+      <includes>
+        <include>DISCLAIMER</include>
+        <include>DEPENDENCIES</include>
+      </includes>
+      <outputDirectory/>
+    </fileSet>
+
+    <fileSet>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>README</include>
+      </includes>
+      <outputDirectory/>
+    </fileSet>
+
+  </fileSets>
+
+  <dependencySets>
+    <!-- Any edgent libs -->
+    <dependencySet>
+      <outputDirectory>libs</outputDirectory>
+      <scope>runtime</scope>
+      <includes>
+        <include>org.apache.edgent*</include>
+      </includes>
+      <excludes>
+        <exclude>org.apache.edgent.get-edgent-jars*</exclude>
+      </excludes>
+    </dependencySet>
+
+    <!-- All other libs are treated as external libs -->
+    <dependencySet>
+      <outputDirectory>ext</outputDirectory>
+      <scope>runtime</scope>
+      <excludes>
+        <exclude>org.apache.edgent*</exclude>
+      </excludes>
+    </dependencySet>
+  </dependencySets>
+
+</assembly>
diff --git a/samples/get-edgent-jars-project/src/main/resources/README b/samples/get-edgent-jars-project/src/main/resources/README
new file mode 100644
index 0000000..d91c7ff
--- /dev/null
+++ b/samples/get-edgent-jars-project/src/main/resources/README
@@ -0,0 +1,12 @@
+This bundle includes a number of artifacts with separate
+copyright notices and license terms.  Your use of an artifact
+is subject to that artifact’s licensing terms and conditions.
+
+The Apache Edgent artifacts (everything in lib) all have the
+license “Apache License Version 2.0”.
+
+Edgent’s dependent artifacts in “ext” have all been evaluated
+to be compatible with Edgent’s license.
+
+A bundled artifact's advertised license information may be
+found in the DEPENDENCIES file in this bundle.
diff --git a/samples/template/README.md b/samples/template/README.md
index 2c7d300..a0763fd 100644
--- a/samples/template/README.md
+++ b/samples/template/README.md
@@ -36,3 +36,10 @@
 PLATFORM=  # add "--platform java7"  or  "--platform android" as appropriate
 ../package-app.sh $PLATFORM --mainClass com.mycompany.app.TemplateApp --appjar target/my-app-1.0-SNAPSHOT.jar
 ```
+
+# Using get-edgent-jars-project
+
+If you don't want to use the generated uber jar or `package-app.sh`
+approaches, you can copy the application's standard jar and a
+`get-edgent-jars-project` generated jar bundle to the edge device.
+See `samples/get-edgent-jars-project`.