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 2016/02/01 18:46:36 UTC

[06/50] brooklyn-library git commit: Change ResourceUtils to use static create method and cache in driver classes

Change ResourceUtils to use static create method and cache in driver classes


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-library/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-library/commit/36604f72
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-library/tree/36604f72
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-library/diff/36604f72

Branch: refs/heads/0.6.0
Commit: 36604f72a0bb8cb19542cf1195125acfabd39204
Parents: e613ed8
Author: Andrew Kennedy <an...@cloudsoftcorp.com>
Authored: Mon Oct 14 22:39:03 2013 +0100
Committer: Andrew Kennedy <an...@cloudsoftcorp.com>
Committed: Wed Oct 30 11:19:59 2013 +0000

----------------------------------------------------------------------
 .../brooklyn/demo/CumulusRDFApplication.java    |  2 +-
 .../demo/WebClusterDatabaseExampleApp.java      |  4 +-
 .../entity/database/mysql/MySqlSshDriver.java   |  6 +--
 .../postgresql/PostgreSqlNodeChefImpl.java      |  2 +-
 .../postgresql/PostgreSqlSshDriver.java         |  3 +-
 .../database/rubyrep/RubyRepSshDriver.java      |  5 +--
 .../messaging/activemq/ActiveMQSshDriver.java   |  4 +-
 .../nosql/cassandra/CassandraNodeSshDriver.java |  2 +-
 .../geoscaling/GeoscalingScriptGenerator.java   |  4 +-
 .../entity/proxy/nginx/NginxControllerImpl.java |  4 +-
 .../entity/webapp/jboss/JBoss7SshDriver.java    | 40 ++++++++++----------
 .../GeoscalingScriptGeneratorTest.groovy        |  4 +-
 12 files changed, 39 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/examples/simple-nosql-cluster/src/main/java/brooklyn/demo/CumulusRDFApplication.java
----------------------------------------------------------------------
diff --git a/examples/simple-nosql-cluster/src/main/java/brooklyn/demo/CumulusRDFApplication.java b/examples/simple-nosql-cluster/src/main/java/brooklyn/demo/CumulusRDFApplication.java
index 3d63a59..6fb69de 100644
--- a/examples/simple-nosql-cluster/src/main/java/brooklyn/demo/CumulusRDFApplication.java
+++ b/examples/simple-nosql-cluster/src/main/java/brooklyn/demo/CumulusRDFApplication.java
@@ -116,7 +116,7 @@ public class CumulusRDFApplication extends AbstractApplication {
                     // Process the YAML template given in the application config
                     String url = Entities.getRequiredUrlConfig(CumulusRDFApplication.this, CUMULUS_RDF_CONFIG_URL);
                     Map<String, Object> config = MutableMap.<String, Object>of("cassandraHostname", clusterEndpoint.getHostText(), "cassandraThriftPort", clusterEndpoint.getPort());
-                    String contents = TemplateProcessor.processTemplateContents(new ResourceUtils(this).getResourceAsString(url), config);
+                    String contents = TemplateProcessor.processTemplateContents(ResourceUtils.create(this).getResourceAsString(url), config);
 
                     // Copy the file contents to the remote machine
                     DynamicTasks.queue(SshEffectorTasks.put("/tmp/cumulus.yaml").contents(contents));

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/examples/simple-web-cluster/src/main/java/brooklyn/demo/WebClusterDatabaseExampleApp.java
----------------------------------------------------------------------
diff --git a/examples/simple-web-cluster/src/main/java/brooklyn/demo/WebClusterDatabaseExampleApp.java b/examples/simple-web-cluster/src/main/java/brooklyn/demo/WebClusterDatabaseExampleApp.java
index f961634..34180f7 100644
--- a/examples/simple-web-cluster/src/main/java/brooklyn/demo/WebClusterDatabaseExampleApp.java
+++ b/examples/simple-web-cluster/src/main/java/brooklyn/demo/WebClusterDatabaseExampleApp.java
@@ -63,9 +63,9 @@ public class WebClusterDatabaseExampleApp extends AbstractApplication implements
     
     public static final String DEFAULT_LOCATION = "localhost";
 
-    public static final String DEFAULT_WAR_PATH = new ResourceUtils(WebClusterDatabaseExampleApp.class).
+    public static final String DEFAULT_WAR_PATH = ResourceUtils.create(WebClusterDatabaseExampleApp.class)
             // take this war, from the classpath, or via maven if not on the classpath
-            firstAvailableUrl(
+            .firstAvailableUrl(
                     "classpath://hello-world-sql-webapp.war",
                     BrooklynMavenArtifacts.localUrl("example", "brooklyn-example-hello-world-sql-webapp", "war"))
             .or("classpath://hello-world-sql-webapp.war");

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/software/database/src/main/java/brooklyn/entity/database/mysql/MySqlSshDriver.java
----------------------------------------------------------------------
diff --git a/software/database/src/main/java/brooklyn/entity/database/mysql/MySqlSshDriver.java b/software/database/src/main/java/brooklyn/entity/database/mysql/MySqlSshDriver.java
index 606244f..427b3ed 100644
--- a/software/database/src/main/java/brooklyn/entity/database/mysql/MySqlSshDriver.java
+++ b/software/database/src/main/java/brooklyn/entity/database/mysql/MySqlSshDriver.java
@@ -2,6 +2,7 @@ package brooklyn.entity.database.mysql;
 
 import static brooklyn.util.GroovyJavaMethods.elvis;
 import static brooklyn.util.GroovyJavaMethods.truth;
+import static brooklyn.util.ssh.BashCommands.commandsToDownloadUrlsAs;
 import static brooklyn.util.ssh.BashCommands.installPackage;
 import static brooklyn.util.ssh.BashCommands.ok;
 import static java.lang.String.format;
@@ -22,7 +23,6 @@ import brooklyn.entity.drivers.downloads.DownloadResolver;
 import brooklyn.location.OsDetails;
 import brooklyn.location.basic.BasicOsDetails.OsVersions;
 import brooklyn.location.basic.SshMachineLocation;
-import brooklyn.util.ResourceUtils;
 import brooklyn.util.collections.MutableMap;
 import brooklyn.util.ssh.BashCommands;
 import brooklyn.util.text.ComparableVersion;
@@ -101,7 +101,7 @@ public class MySqlSshDriver extends AbstractSoftwareProcessSshDriver implements
         // these deps are needed on some OS versions but others don't need them so ignore failures (ok(...))
         commands.add(ok(installPackage(ImmutableMap.of("yum", "libaio", "apt", "ia32-libs"), null)));
         commands.add("echo finished installing extra packages");
-        commands.addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs));
+        commands.addAll(commandsToDownloadUrlsAs(urls, saveAs));
         commands.add(format("tar xfvz %s", saveAs));
 
         newScript(INSTALLING).
@@ -146,7 +146,7 @@ public class MySqlSshDriver extends AbstractSoftwareProcessSshDriver implements
         Reader creationScript;
         String url = entity.getConfig(MySqlNode.CREATION_SCRIPT_URL);
         if (!Strings.isBlank(url))
-            creationScript = new InputStreamReader(new ResourceUtils(entity).getResourceFromUrl(url));
+            creationScript = new InputStreamReader(resource.getResourceFromUrl(url));
         else creationScript =
                 new StringReader((String) elvis(entity.getConfig(MySqlNode.CREATION_SCRIPT_CONTENTS), ""));
         getMachine().copyTo(creationScript, getRunDir() + "/creation-script.cnf");

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/software/database/src/main/java/brooklyn/entity/database/postgresql/PostgreSqlNodeChefImpl.java
----------------------------------------------------------------------
diff --git a/software/database/src/main/java/brooklyn/entity/database/postgresql/PostgreSqlNodeChefImpl.java b/software/database/src/main/java/brooklyn/entity/database/postgresql/PostgreSqlNodeChefImpl.java
index 32bd06a..1bb8645 100644
--- a/software/database/src/main/java/brooklyn/entity/database/postgresql/PostgreSqlNodeChefImpl.java
+++ b/software/database/src/main/java/brooklyn/entity/database/postgresql/PostgreSqlNodeChefImpl.java
@@ -73,7 +73,7 @@ public class PostgreSqlNodeChefImpl extends EffectorStartableImpl implements Pos
             String creationScript;
             String creationScriptUrl = entity().getConfig(PostgreSqlNode.CREATION_SCRIPT_URL);
             if (creationScriptUrl != null)
-                creationScript = new ResourceUtils(entity()).getResourceAsString(creationScriptUrl);
+                creationScript = ResourceUtils.create(entity()).getResourceAsString(creationScriptUrl);
             else creationScript = entity().getConfig(PostgreSqlNode.CREATION_SCRIPT_CONTENTS);
             entity().invoke(PostgreSqlNodeChefImpl.EXECUTE_SCRIPT, 
                     ConfigBag.newInstance().configure(ExecuteScriptEffectorBody.SCRIPT, creationScript).getAllConfig()).getUnchecked();

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/software/database/src/main/java/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java
----------------------------------------------------------------------
diff --git a/software/database/src/main/java/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java b/software/database/src/main/java/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java
index 617e177..8dda553 100644
--- a/software/database/src/main/java/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java
+++ b/software/database/src/main/java/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java
@@ -13,7 +13,6 @@ import org.slf4j.LoggerFactory;
 
 import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver;
 import brooklyn.location.basic.SshMachineLocation;
-import brooklyn.util.ResourceUtils;
 import brooklyn.util.collections.MutableList;
 import brooklyn.util.collections.MutableMap;
 import brooklyn.util.net.Urls;
@@ -129,7 +128,7 @@ public class PostgreSqlSshDriver extends AbstractSoftwareProcessSshDriver
         String creationScriptUrl = entity.getConfig(PostgreSqlNode.CREATION_SCRIPT_URL);
         Reader creationScript;
         if (creationScriptUrl != null)
-            creationScript = new InputStreamReader(new ResourceUtils(entity).getResourceFromUrl(creationScriptUrl));
+            creationScript = new InputStreamReader(resource.getResourceFromUrl(creationScriptUrl));
         else creationScript = new StringReader(entity.getConfig(PostgreSqlNode.CREATION_SCRIPT_CONTENTS));
 
         getMachine().copyTo(creationScript, getRunDir() + "/creation-script.sql");

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/software/database/src/main/java/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java
----------------------------------------------------------------------
diff --git a/software/database/src/main/java/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java b/software/database/src/main/java/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java
index 44c1b9e..a732263 100644
--- a/software/database/src/main/java/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java
+++ b/software/database/src/main/java/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java
@@ -1,6 +1,6 @@
 package brooklyn.entity.database.rubyrep;
 
-import static java.lang.String.format;
+import static java.lang.String.*;
 
 import java.io.InputStreamReader;
 import java.io.Reader;
@@ -18,7 +18,6 @@ import brooklyn.entity.basic.EntityLocal;
 import brooklyn.entity.database.mysql.MySqlSshDriver;
 import brooklyn.entity.java.JavaSoftwareProcessSshDriver;
 import brooklyn.location.basic.SshMachineLocation;
-import brooklyn.util.ResourceUtils;
 import brooklyn.util.collections.MutableMap;
 import brooklyn.util.ssh.BashCommands;
 
@@ -68,7 +67,7 @@ public class RubyRepSshDriver extends JavaSoftwareProcessSshDriver implements Ru
         Reader configContents;
         if (configScriptUrl != null) {
             // If set accept as-is
-            configContents = new InputStreamReader(new ResourceUtils(entity).getResourceFromUrl(configScriptUrl));
+            configContents = new InputStreamReader(resource.getResourceFromUrl(configScriptUrl));
         } else {
             String configScriptContents = processTemplate(entity.getAttribute(RubyRepNode.TEMPLATE_CONFIGURATION_URL));
             configContents = new StringReader(configScriptContents);

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java
index 90d9739..7079b5a 100644
--- a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java
+++ b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java
@@ -1,6 +1,6 @@
 package brooklyn.entity.messaging.activemq;
 
-import static java.lang.String.format;
+import static java.lang.String.*;
 
 import java.io.ByteArrayInputStream;
 import java.util.LinkedList;
@@ -9,9 +9,7 @@ import java.util.Map;
 
 import brooklyn.entity.drivers.downloads.DownloadResolver;
 import brooklyn.entity.java.JavaSoftwareProcessSshDriver;
-import brooklyn.entity.java.JmxSupport;
 import brooklyn.location.basic.SshMachineLocation;
-import brooklyn.util.ResourceUtils;
 import brooklyn.util.collections.MutableMap;
 import brooklyn.util.net.Networking;
 import brooklyn.util.ssh.BashCommands;

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java
index 25b25e7..1d54fad 100644
--- a/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java
@@ -167,7 +167,7 @@ public class CassandraNodeSshDriver extends JavaSoftwareProcessSshDriver impleme
             int lastSlashIndex = customSnitchJarUrl.lastIndexOf("/");
             String customSnitchJarName = (lastSlashIndex > 0) ? customSnitchJarUrl.substring(lastSlashIndex+1) : "customBrooklynSnitch.jar";
             String jarDestinationFile = String.format("%s/lib/%s", getRunDir(), customSnitchJarName);
-            InputStream customSnitchJarStream = checkNotNull(new ResourceUtils(entity).getResourceFromUrl(customSnitchJarUrl), "%s could not be loaded", customSnitchJarUrl);
+            InputStream customSnitchJarStream = checkNotNull(resource.getResourceFromUrl(customSnitchJarUrl), "%s could not be loaded", customSnitchJarUrl);
             try {
                 getMachine().copyTo(customSnitchJarStream, jarDestinationFile);
             } finally {

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/software/webapp/src/main/java/brooklyn/entity/dns/geoscaling/GeoscalingScriptGenerator.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/brooklyn/entity/dns/geoscaling/GeoscalingScriptGenerator.java b/software/webapp/src/main/java/brooklyn/entity/dns/geoscaling/GeoscalingScriptGenerator.java
index 518c885..b3b6bcb 100644
--- a/software/webapp/src/main/java/brooklyn/entity/dns/geoscaling/GeoscalingScriptGenerator.java
+++ b/software/webapp/src/main/java/brooklyn/entity/dns/geoscaling/GeoscalingScriptGenerator.java
@@ -11,7 +11,7 @@ import brooklyn.util.ResourceUtils;
 import brooklyn.util.javalang.JavaClassNames;
 import brooklyn.util.text.Strings;
 
-class GeoscalingScriptGenerator {
+public class GeoscalingScriptGenerator {
     
     private static final String PHP_SCRIPT_TEMPLATE_RESOURCE = JavaClassNames.resolveClasspathUrl(GeoscalingScriptGenerator.class, "template.php");
     private static final String HOSTS_DECLARATIONS_MARKER = "/* HOST DECLARATIONS TO BE SUBSTITUTED HERE */";
@@ -23,7 +23,7 @@ class GeoscalingScriptGenerator {
     }
     
     public static String generateScriptString(Date generationTime, Collection<HostGeoInfo> hosts) {
-        String template = new ResourceUtils(GeoscalingScriptGenerator.class).getResourceAsString(PHP_SCRIPT_TEMPLATE_RESOURCE);
+        String template = ResourceUtils.create(GeoscalingScriptGenerator.class).getResourceAsString(PHP_SCRIPT_TEMPLATE_RESOURCE);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss 'UTC'");
         sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
         String datestamp = sdf.format(generationTime);

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxControllerImpl.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxControllerImpl.java b/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxControllerImpl.java
index d30b95f..8f730de 100644
--- a/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxControllerImpl.java
+++ b/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxControllerImpl.java
@@ -208,14 +208,14 @@ public class NginxControllerImpl extends AbstractControllerImpl implements Nginx
         if (!Strings.isEmpty(ssl.getCertificateSourceUrl())) {
             String certificateDestination = Strings.isEmpty(ssl.getCertificateDestination()) ? driver.getRunDir() + "/conf/" + id + ".crt" : ssl.getCertificateDestination();
             driver.getMachine().copyTo(ImmutableMap.of("permissions", "0400"),
-                    new ResourceUtils(this).getResourceFromUrl(ssl.getCertificateSourceUrl()),
+                    ResourceUtils.create(this).getResourceFromUrl(ssl.getCertificateSourceUrl()),
                     certificateDestination);
         }
 
         if (!Strings.isEmpty(ssl.getKeySourceUrl())) {
             String keyDestination = Strings.isEmpty(ssl.getKeyDestination()) ? driver.getRunDir() + "/conf/" + id + ".key" : ssl.getKeyDestination();
             driver.getMachine().copyTo(ImmutableMap.of("permissions", "0400"),
-                    new ResourceUtils(this).getResourceFromUrl(ssl.getKeySourceUrl()),
+                    ResourceUtils.create(this).getResourceFromUrl(ssl.getKeySourceUrl()),
                     keyDestination);
         }
 

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java b/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java
index 62c9803..540fd4d 100644
--- a/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java
+++ b/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java
@@ -1,39 +1,41 @@
 package brooklyn.entity.webapp.jboss;
 
+import static java.lang.String.*;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import brooklyn.entity.basic.Entities;
 import brooklyn.entity.basic.SoftwareProcess;
 import brooklyn.entity.drivers.downloads.DownloadResolver;
 import brooklyn.entity.webapp.JavaWebAppSshDriver;
 import brooklyn.location.basic.SshMachineLocation;
-import brooklyn.util.ResourceUtils;
 import brooklyn.util.collections.MutableMap;
 import brooklyn.util.net.Networking;
 import brooklyn.util.ssh.BashCommands;
+
 import com.google.common.base.Charsets;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.common.hash.Hashing;
 import com.google.common.io.BaseEncoding;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import static java.lang.String.format;
 
 public class JBoss7SshDriver extends JavaWebAppSshDriver implements JBoss7Driver {
 
     public static final Logger LOG = LoggerFactory.getLogger(JBoss7SshDriver.class);
 
     /*
-      * TODO
-      * - expose log file location, or even support accessing them dynamically
-      * - more configurability of config files, java memory, etc
-      */
+     * TODO
+     * - expose log file location, or even support accessing them dynamically
+     * - more configurability of config files, java memory, etc
+     */
 
     public static final String SERVER_TYPE = "standalone";
     private static final String CONFIG_FILE = "standalone-brooklyn.xml";
@@ -110,13 +112,13 @@ public class JBoss7SshDriver extends JavaWebAppSshDriver implements JBoss7Driver
     }
     
     public void install() {
-        DownloadResolver resolver = entity.getManagementContext().getEntityDownloadsManager().newDownloader(this);
+        DownloadResolver resolver = Entities.newDownloader(this);
         List<String> urls = resolver.getTargets();
         String saveAs = resolver.getFilename();
         expandedInstallDir = getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("jboss-as-%s", getVersion()));
         
         List<String> commands = new LinkedList<String>();
-        commands.addAll(BashCommands.downloadUrlAs(urls, saveAs));
+        commands.addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs));
         commands.add(BashCommands.INSTALL_TAR);
         commands.add("tar xzfv " + saveAs);
 
@@ -186,7 +188,7 @@ public class JBoss7SshDriver extends JavaWebAppSshDriver implements JBoss7Driver
                 throw new NullPointerException("keystore URL must be specified if using HTTPS for "+entity);
             }
             String destinationSslKeystoreFile = getSslKeystoreFile();
-            InputStream keystoreStream = new ResourceUtils(this).getResourceFromUrl(keystoreUrl);
+            InputStream keystoreStream = resource.getResourceFromUrl(keystoreUrl);
             getMachine().copyTo(keystoreStream, destinationSslKeystoreFile);
         }
 

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/36604f72/software/webapp/src/test/java/brooklyn/entity/dns/geoscaling/GeoscalingScriptGeneratorTest.groovy
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/brooklyn/entity/dns/geoscaling/GeoscalingScriptGeneratorTest.groovy b/software/webapp/src/test/java/brooklyn/entity/dns/geoscaling/GeoscalingScriptGeneratorTest.groovy
index 16e925c..d296ce8 100644
--- a/software/webapp/src/test/java/brooklyn/entity/dns/geoscaling/GeoscalingScriptGeneratorTest.groovy
+++ b/software/webapp/src/test/java/brooklyn/entity/dns/geoscaling/GeoscalingScriptGeneratorTest.groovy
@@ -28,10 +28,10 @@ class GeoscalingScriptGeneratorTest {
         Date generationTime = new Date(0);
         String generatedScript = GeoscalingScriptGenerator.generateScriptString(generationTime, HOSTS);
         assertTrue(generatedScript.contains("1.2.3"));
-        String expectedScript = new ResourceUtils(this).getResourceAsString("brooklyn/entity/dns/geoscaling/expectedScript.php");
+        String expectedScript = ResourceUtils.create(this).getResourceAsString("brooklyn/entity/dns/geoscaling/expectedScript.php");
         assertEquals(expectedScript, generatedScript);
         //also make sure leading slash is allowed
-        String expectedScript2 = new ResourceUtils(this).getResourceAsString("/brooklyn/entity/dns/geoscaling/expectedScript.php");
+        String expectedScript2 = ResourceUtils.create(this).getResourceAsString("/brooklyn/entity/dns/geoscaling/expectedScript.php");
         assertEquals(expectedScript, generatedScript);
     }