You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/08/05 07:24:51 UTC
[07/10] git commit: JavaSoftwareProcessSshDriver: installing java
JavaSoftwareProcessSshDriver: installing java
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/15a1340e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/15a1340e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/15a1340e
Branch: refs/heads/master
Commit: 15a1340e5177128017e7f89aeb8235a19a51ed55
Parents: f6878b1
Author: Aled Sage <al...@gmail.com>
Authored: Thu Jul 31 06:55:34 2014 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Jul 31 06:55:34 2014 +0100
----------------------------------------------------------------------
.../java/JavaSoftwareProcessSshDriver.java | 23 +++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/15a1340e/software/base/src/main/java/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java b/software/base/src/main/java/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java
index 86359eb..56ddc1f 100644
--- a/software/base/src/main/java/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java
+++ b/software/base/src/main/java/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java
@@ -315,7 +315,7 @@ public abstract class JavaSoftwareProcessSshDriver extends AbstractSoftwareProce
}
}
- private int tryJavaInstall(String version, String command) {
+ protected int tryJavaInstall(String version, String command) {
try {
getLocation().acquireMutex("installing", "installing Java at " + getLocation());
log.debug("Installing Java {} at {}@{}", new Object[]{version, getEntity(), getLocation()});
@@ -355,6 +355,27 @@ public abstract class JavaSoftwareProcessSshDriver extends AbstractSoftwareProce
}
/**
+ * Answers one of "OpenJDK", "Oracle", or other vendor info.
+ */
+ protected Optional<String> getCurrentJavaVendor() {
+ // TODO Also handle IBM jvm
+ log.debug("Checking Java vendor at {}@{}", getEntity(), getLocation());
+ ProcessTaskWrapper<Integer> versionCommand = Entities.submit(getEntity(), SshTasks.newSshExecTaskFactory(
+ getLocation(), "java -version 2>&1 | awk 'NR==2 {print $1}'"));
+ versionCommand.get();
+ String stdOut = versionCommand.getStdout().trim();
+ if (Strings.isBlank(stdOut)) {
+ log.debug("Found no Java installed at {}@{}", getEntity(), getLocation());
+ return Optional.absent();
+ } else if ("Java(TM)".equals(stdOut)) {
+ log.debug("Found Java version at {}@{}: {}", new Object[] {getEntity(), getLocation(), stdOut});
+ return Optional.of("Oracle");
+ } else {
+ return Optional.of(stdOut);
+ }
+ }
+
+ /**
* Checks for Java 6 or 7, installing Java 7 if neither are found. Override this method to
* check for and install specific versions of Java.
* @see #checkForAndInstallJava6()