modules/common/filetemplate-bundle/src/test/java/org/rhq/bundle/filetemplate/recipe/RecipeParserTest.java
| 42 +++++++---
modules/core/native-system/src/main/java/org/rhq/core/system/SystemInfoFactory.java
| 10 ++
modules/core/util/src/main/java/org/rhq/core/template/TemplateEngine.java
| 6 -
3 files changed, 41 insertions(+), 17 deletions(-)
New commits:
commit ab83afe6697b693ecf22ce16e3c05ed3f6ac694f
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Mar 23 12:17:17 2010 -0400
explicitly support some standard java sysprops
diff --git
a/modules/common/filetemplate-bundle/src/test/java/org/rhq/bundle/filetemplate/recipe/RecipeParserTest.java
b/modules/common/filetemplate-bundle/src/test/java/org/rhq/bundle/filetemplate/recipe/RecipeParserTest.java
index c997d57..6ec0dd9 100644
---
a/modules/common/filetemplate-bundle/src/test/java/org/rhq/bundle/filetemplate/recipe/RecipeParserTest.java
+++
b/modules/common/filetemplate-bundle/src/test/java/org/rhq/bundle/filetemplate/recipe/RecipeParserTest.java
@@ -129,29 +129,51 @@ public class RecipeParserTest {
}
public void testSimpleRecipeReplaceJavaSystemPropertyReplacementVariables() throws
Exception {
- addRecipeCommand("deploy -f jboss1.tar -d <%java.io.tmpdir%>");
- addRecipeCommand("deploy -f jboss2.tar -d <%custom.sysprop%>");
+ /*
+ java.util.Properties sysprops = System.getProperties();
+ for (Map.Entry<Object, Object> sysprop : sysprops.entrySet()) {
+ if (sysprop.getValue().toString().length() < 60) {
+ System.out.println("==>" + sysprop.getKey() + "="
+ sysprop.getValue());
+ }
+ }
+ */
+
+ addRecipeCommand("deploy -f jboss1.tar -d
<%rhq.system.sysprop.java.io.tmpdir%>");
+ addRecipeCommand("deploy -f jboss2.tar -d
<%rhq.system.sysprop.file.separator%>");
+ //addRecipeCommand("deploy -f jboss3.tar -d
<%rhq.system.sysprop.line.separator%>"); // can't test this here
+ addRecipeCommand("deploy -f jboss4.tar -d
<%rhq.system.sysprop.path.separator%>");
+ addRecipeCommand("deploy -f jboss5.tar -d
<%rhq.system.sysprop.java.home%>");
+ addRecipeCommand("deploy -f jboss6.tar -d
<%rhq.system.sysprop.java.version%>");
+ //addRecipeCommand("deploy -f jboss7.tar -d
<%rhq.system.sysprop.user.timezone%>"); // sometimes this is empty
+ //addRecipeCommand("deploy -f jboss8.tar -d
<%rhq.system.sysprop.user.region%>"); // sometimes this doesn't exist
+ addRecipeCommand("deploy -f jboss9.tar -d
<%rhq.system.sysprop.user.country%>");
+ addRecipeCommand("deploy -f jboss10.tar -d
<%rhq.system.sysprop.user.language%>");
+ addRecipeCommand("deploy -f jboss11.tar -d
<%rhq.system.sysprop.custom.sysprop%>"); // non-standard sysprop
RecipeParser parser = new RecipeParser();
parser.setReplaceReplacementVariables(true);
RecipeContext context = new RecipeContext(getRecipe());
parser.parseRecipe(context);
Map<String, String> files = context.getDeployFiles();
- assert files.containsKey("jboss1.tar") : files;
assert
files.get("jboss1.tar").equals(System.getProperty("java.io.tmpdir")) :
files;
- assert files.containsKey("jboss2.tar") : files;
- assert
files.get("jboss2.tar").equals("<%custom.sysprop%>") : files;
+ assert
files.get("jboss2.tar").equals(System.getProperty("file.separator")) :
files;
+ //assert
files.get("jboss3.tar").equals(System.getProperty("line.separator")) :
files;
+ assert
files.get("jboss4.tar").equals(System.getProperty("path.separator")) :
files;
+ assert
files.get("jboss5.tar").equals(System.getProperty("java.home")) :
files;
+ assert
files.get("jboss6.tar").equals(System.getProperty("java.version")) :
files;
+ //assert
files.get("jboss7.tar").equals(System.getProperty("user.timezone")) :
files;
+ //assert
files.get("jboss8.tar").equals(System.getProperty("user.region")) :
files;
+ assert
files.get("jboss9.tar").equals(System.getProperty("user.country")) :
files;
+ assert
files.get("jboss10.tar").equals(System.getProperty("user.language")) :
files;
+ assert
files.get("jboss11.tar").equals("<%rhq.system.sysprop.custom.sysprop%>")
: files;
- // now set our custom system property and see that it gets replaced properly
+ // now set a custom system property and see that it does NOT get replaced - we
ignore custom sysprops!
System.setProperty("custom.sysprop",
"MY/CUSTOM/PROPERTY/HERE");
parser = new RecipeParser();
parser.setReplaceReplacementVariables(true);
context = new RecipeContext(getRecipe());
parser.parseRecipe(context);
files = context.getDeployFiles();
- assert files.containsKey("jboss1.tar") : files;
- assert
files.get("jboss1.tar").equals(System.getProperty("java.io.tmpdir")) :
files;
- assert files.containsKey("jboss2.tar") : files;
- assert
files.get("jboss2.tar").equals("MY/CUSTOM/PROPERTY/HERE") : files;
+ assert
files.get("jboss11.tar").equals("<%rhq.system.sysprop.custom.sysprop%>")
: files;
}
public void testSimpleRecipe() throws Exception {
diff --git
a/modules/core/native-system/src/main/java/org/rhq/core/system/SystemInfoFactory.java
b/modules/core/native-system/src/main/java/org/rhq/core/system/SystemInfoFactory.java
index 3783495..8d9e05d 100644
--- a/modules/core/native-system/src/main/java/org/rhq/core/system/SystemInfoFactory.java
+++ b/modules/core/native-system/src/main/java/org/rhq/core/system/SystemInfoFactory.java
@@ -365,8 +365,16 @@ public class SystemInfoFactory {
SystemInfo systemInfo = createSystemInfo();
Map<String, String> tokens = new HashMap<String, String>();
- tokens.put(TOKEN_PREFIX + "hostname", systemInfo.getHostname());
+ // support several standard Java system properties
+ String[] syspropsToSupport = new String[] { "java.io.tmpdir",
"file.separator", "line.separator",
+ "path.separator", "java.home",
"java.version", "user.timezone", "user.region",
"user.country",
+ "user.language" };
+ for (String sysprop : syspropsToSupport) {
+ tokens.put(TOKEN_PREFIX + "sysprop." + sysprop,
System.getProperty(sysprop, sysprop)); // default is the name itself, just to show it
wasn't there
+ }
+
+ tokens.put(TOKEN_PREFIX + "hostname", systemInfo.getHostname());
tokens.put(TOKEN_PREFIX + "os.name",
systemInfo.getOperatingSystemName());
tokens.put(TOKEN_PREFIX + "os.version",
systemInfo.getOperatingSystemVersion());
tokens.put(TOKEN_PREFIX + "os.type",
systemInfo.getOperatingSystemType().toString());
commit 35b93622b191bbc8a8014f35f83aea6e47df60d7
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Mar 23 12:16:45 2010 -0400
never mind, don't support sysprop fallback
diff --git a/modules/core/util/src/main/java/org/rhq/core/template/TemplateEngine.java
b/modules/core/util/src/main/java/org/rhq/core/template/TemplateEngine.java
index 6f2a3e0..d748463 100644
--- a/modules/core/util/src/main/java/org/rhq/core/template/TemplateEngine.java
+++ b/modules/core/util/src/main/java/org/rhq/core/template/TemplateEngine.java
@@ -48,12 +48,6 @@ public class TemplateEngine implements Serializable {
String value = tokens.get(key);
if (value != null) {
next = value;
- } else {
- // fallback is to see if the replacement key represents a Java system
prop
- value = System.getProperty(key);
- if (value != null) {
- next = value;
- }
}
}
//If we didn't find a replacement for the key
Show replies by date