You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2015/05/29 19:22:02 UTC
[09/27] incubator-brooklyn git commit: Avoids unnecessary
Arrays.copyOf in WinRmMachineLocation.copyTo
Avoids unnecessary Arrays.copyOf in WinRmMachineLocation.copyTo
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/f5664860
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/f5664860
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/f5664860
Branch: refs/heads/master
Commit: f5664860d7249a0caea95dad071c6935946a54c2
Parents: 2b07bed
Author: Martin Harris <gi...@nakomis.com>
Authored: Mon Apr 13 13:14:47 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Thu May 28 17:27:34 2015 +0100
----------------------------------------------------------------------
.../location/basic/WinRmMachineLocation.java | 18 +++++++++++-------
.../basic/AbstractSoftwareProcessDriver.java | 6 +-----
2 files changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f5664860/core/src/main/java/brooklyn/location/basic/WinRmMachineLocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/basic/WinRmMachineLocation.java b/core/src/main/java/brooklyn/location/basic/WinRmMachineLocation.java
index 186fc4f..6f8ef04 100644
--- a/core/src/main/java/brooklyn/location/basic/WinRmMachineLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/WinRmMachineLocation.java
@@ -122,14 +122,18 @@ public class WinRmMachineLocation extends AbstractLocation implements MachineLoc
public int copyTo(InputStream source, File destination) {
executePsScript(ImmutableList.of("rm -ErrorAction SilentlyContinue " + destination.getPath()));
try {
- byte[] inputData = new byte[getConfig(COPY_FILE_CHUNK_SIZE_BYTES)];
- int bytesRead = source.read(inputData);
- while (bytesRead > 0) {
- byte[] chunk = Arrays.copyOf(inputData, bytesRead);
- String encoded = new String(Base64.encodeBase64(chunk));
+ int chunkSize = getConfig(COPY_FILE_CHUNK_SIZE_BYTES);
+ byte[] inputData = new byte[chunkSize];
+ int bytesRead;
+ while ((bytesRead = source.read(inputData)) > 0) {
+ byte[] chunk;
+ if (bytesRead == chunkSize) {
+ chunk = inputData;
+ } else {
+ chunk = Arrays.copyOf(inputData, bytesRead);
+ }
executePsScript(ImmutableList.of("Add-Content -Encoding Byte -path " + destination.getPath() +
- " -value ([System.Convert]::FromBase64String(\"" + encoded + "\"))"));
- bytesRead = source.read(inputData);
+ " -value ([System.Convert]::FromBase64String(\"" + new String(Base64.encodeBase64(chunk)) + "\"))"));
}
return 0;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f5664860/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java
index 9762c4f..061cd12 100644
--- a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java
+++ b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java
@@ -314,11 +314,7 @@ public abstract class AbstractSoftwareProcessDriver implements SoftwareProcessDr
*/
public void copyRuntimeResources() {
try {
- // Ensure environment variables are not looked up here, otherwise sub-classes might
- // lookup port numbers and fail with ugly error if port is not set. It could also
- // cause us to block for attribute ready earlier than we need.
- DynamicTasks.queue(SshEffectorTasks.ssh("mkdir -p " + getRunDir()).summary("create run directory")
- .requiringExitCodeZero()).get();
+ createDirectory(getRunDir(), "create run directory");
Map<String, String> runtimeFiles = entity.getConfig(SoftwareProcess.RUNTIME_FILES);
if (runtimeFiles != null && runtimeFiles.size() > 0) {