Github user keith-turner commented on a diff in the pull request:
https://github.com/apache/accumulo/pull/230#discussion_r104800443
--- Diff: assemble/bin/accumulo ---
@@ -59,43 +59,22 @@ function main() {
export ACCUMULO_CONF_DIR="$conf"
# Verify setting in accumulo-env.sh
-
: "${JAVA_OPTS:?"variable is not set in accumulo-env.sh"}"
: "${ACCUMULO_LOG_DIR:?"variable is not set in accumulo-env.sh"}"
mkdir -p "${ACCUMULO_LOG_DIR}" 2>/dev/null
- verify_env_dir "ACCUMULO_LOG_DIR" "${ACCUMULO_LOG_DIR}"
verify_env_dir "HADOOP_PREFIX" "${HADOOP_PREFIX}"
verify_env_dir "HADOOP_CONF_DIR" "${HADOOP_CONF_DIR}"
verify_env_dir "ZOOKEEPER_HOME" "${ZOOKEEPER_HOME}"
: "${MALLOC_ARENA_MAX:?"variable is not set in accumulo-env.sh"}"
- # ACCUMULO_XTRAJARS is where all of the commandline -add items go into
for reading by accumulo.
- # It also holds the JAR run with the jar command and, if possible, any
items in the JAR manifest's Class-Path.
+
CLASSPATH="${lib}/accumulo-start.jar:${conf}:${lib}/slf4j-api.jar:${lib}/slf4j-log4j12.jar:${lib}/log4j.jar:${CLASSPATH}"
+
if [[ "$cmd" = "-add" ]]; then
- export ACCUMULO_XTRAJARS="$2"
+ CLASSPATH="${2}:${CLASSPATH}"
shift 2
- else
- export ACCUMULO_XTRAJARS=""
fi
if [[ "$cmd" = "jar" && -f "$2" ]]; then
- if [[ $2 =~ ^/ ]]; then
- jardir="$(dirname "$2")"
- jarfile="$2"
- else
- jardir="$(pwd)"
- jarfile="${jardir}/${2}"
- fi
- if jar tf "$jarfile" | grep -q META-INF/MANIFEST.MF ; then
- cp="$(unzip -p "$jarfile" META-INF/MANIFEST.MF | grep ^Class-Path: |
sed 's/^Class-Path: *//')"
--- End diff --
I took a quick look at ACCUMULO-1494 and I think one intention of that
change was to allow running a main class specified in a jar.
> @mikewalch has previously suggested that we should easily expose a
classpath which a user can use to launch their own processes.
I like that approach. If we make it easy to construct a classpath, then a
user can use `java -jar` to run a main class from a manifest file? So it seems
like the same functionality can be achieved in a more standard way? I think
this would all work, but not completely sure.
---
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 [email protected] or file a JIRA ticket
with INFRA.
---