[jboss-cvs] JBossAS SVN: r90944 - projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jul 8 14:28:59 EDT 2009
Author: jesper.pedersen
Date: 2009-07-08 14:28:58 -0400 (Wed, 08 Jul 2009)
New Revision: 90944
Modified:
projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java
Log:
[JBJCA-107] Add support for a default value in system properties
Modified: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java 2009-07-08 18:18:19 UTC (rev 90943)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java 2009-07-08 18:28:58 UTC (rev 90944)
@@ -403,67 +403,43 @@
{
if (parameterClass.equals(String.class))
{
- String s = (String)element;
-
- if (s.indexOf("${") != -1)
- {
- int from = s.indexOf("${");
- int to = s.indexOf("}");
-
- String systemProperty = SecurityActions.getSystemProperty(s.substring(from + 2, to));
- String prefix = "";
- String postfix = "";
-
- if (from != 0)
- {
- prefix = s.substring(0, from);
- }
-
- if (to + 1 < s.length() - 1)
- {
- postfix = s.substring(to + 1);
- }
-
- s = prefix + systemProperty + postfix;
- }
-
- parameterValue = s;
+ parameterValue = getSubstitutionValue((String)element);
}
else if (parameterClass.equals(byte.class) || parameterClass.equals(Byte.class))
{
- parameterValue = Byte.valueOf((String)element);
+ parameterValue = Byte.valueOf(getSubstitutionValue((String)element));
}
else if (parameterClass.equals(short.class) || parameterClass.equals(Short.class))
{
- parameterValue = Short.valueOf((String)element);
+ parameterValue = Short.valueOf(getSubstitutionValue((String)element));
}
else if (parameterClass.equals(int.class) || parameterClass.equals(Integer.class))
{
- parameterValue = Integer.valueOf((String)element);
+ parameterValue = Integer.valueOf(getSubstitutionValue((String)element));
}
else if (parameterClass.equals(long.class) || parameterClass.equals(Long.class))
{
- parameterValue = Long.valueOf((String)element);
+ parameterValue = Long.valueOf(getSubstitutionValue((String)element));
}
else if (parameterClass.equals(float.class) || parameterClass.equals(Float.class))
{
- parameterValue = Float.valueOf((String)element);
+ parameterValue = Float.valueOf(getSubstitutionValue((String)element));
}
else if (parameterClass.equals(double.class) || parameterClass.equals(Double.class))
{
- parameterValue = Double.valueOf((String)element);
+ parameterValue = Double.valueOf(getSubstitutionValue((String)element));
}
else if (parameterClass.equals(boolean.class) || parameterClass.equals(Boolean.class))
{
- parameterValue = Boolean.valueOf((String)element);
+ parameterValue = Boolean.valueOf(getSubstitutionValue((String)element));
}
else if (parameterClass.equals(char.class) || parameterClass.equals(Character.class))
{
- parameterValue = Character.valueOf(((String)element).charAt(0));
+ parameterValue = Character.valueOf((getSubstitutionValue((String)element)).charAt(0));
}
else if (parameterClass.equals(InetAddress.class))
{
- parameterValue = InetAddress.getByName((String)element);
+ parameterValue = InetAddress.getByName(getSubstitutionValue((String)element));
}
}
@@ -475,6 +451,58 @@
}
/**
+ * System property substitution
+ * @param input The input string
+ * @return The output
+ */
+ private static String getSubstitutionValue(String input)
+ {
+ if (input == null || input.trim().equals(""))
+ return input;
+
+ if (input.indexOf("${") != -1)
+ {
+ int from = input.indexOf("${");
+ int to = input.indexOf("}");
+ int dv = input.indexOf(":");
+
+ String systemProperty = "";
+ String defaultValue = "";
+ if (dv == -1)
+ {
+ systemProperty = SecurityActions.getSystemProperty(input.substring(from + 2, to));
+ }
+ else
+ {
+ systemProperty = SecurityActions.getSystemProperty(input.substring(from + 2, dv));
+ defaultValue = input.substring(dv + 1, to);
+ }
+ String prefix = "";
+ String postfix = "";
+
+ if (from != 0)
+ {
+ prefix = input.substring(0, from);
+ }
+
+ if (to + 1 < input.length() - 1)
+ {
+ postfix = input.substring(to + 1);
+ }
+
+ if (systemProperty != null && !systemProperty.trim().equals(""))
+ {
+ return prefix + systemProperty + postfix;
+ }
+ else if (defaultValue != null && !defaultValue.trim().equals(""))
+ {
+ return prefix + defaultValue + postfix;
+ }
+ }
+ return input;
+ }
+
+ /**
* Init logging
* @param cl The classloader to load from
*/
More information about the jboss-cvs-commits
mailing list