diff options
author | Ingo Bauersachs <ingo@jitsi.org> | 2012-09-30 01:31:59 +0000 |
---|---|---|
committer | Ingo Bauersachs <ingo@jitsi.org> | 2012-09-30 01:31:59 +0000 |
commit | b75a83f406c9eafec0f81a43cb5bda6a87bb9d58 (patch) | |
tree | bb1de78127e8a6ace616b62066fdbfeed5a067d9 /src/net/java/sip/communicator | |
parent | eb02507351f81bc39982f8fe4be8f2113256c3af (diff) | |
download | jitsi-b75a83f406c9eafec0f81a43cb5bda6a87bb9d58.zip jitsi-b75a83f406c9eafec0f81a43cb5bda6a87bb9d58.tar.gz jitsi-b75a83f406c9eafec0f81a43cb5bda6a87bb9d58.tar.bz2 |
Allow access to system environment variables and java properties in provisioning #JITSI-1037, initial patch by Vieri di Paola
Diffstat (limited to 'src/net/java/sip/communicator')
-rw-r--r-- | src/net/java/sip/communicator/plugin/provisioning/ProvisioningServiceImpl.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/net/java/sip/communicator/plugin/provisioning/ProvisioningServiceImpl.java b/src/net/java/sip/communicator/plugin/provisioning/ProvisioningServiceImpl.java index a351985..a3c26ab 100644 --- a/src/net/java/sip/communicator/plugin/provisioning/ProvisioningServiceImpl.java +++ b/src/net/java/sip/communicator/plugin/provisioning/ProvisioningServiceImpl.java @@ -5,6 +5,7 @@ import java.io.*; import java.net.*; import java.util.*; import java.util.List; +import java.util.regex.*; import javax.swing.*; @@ -268,6 +269,50 @@ public class ProvisioningServiceImpl ProvisioningActivator.getNetworkAddressManagerService(). getLocalHost(InetAddress.getByName(u.getHost())); + // Get any system environment identified by ${env.xyz} + Pattern p = Pattern.compile("\\$\\{env\\.([^\\}]*)\\}"); + Matcher m = p.matcher(url); + StringBuffer sb = new StringBuffer(); + while(m.find()) + { + String value = System.getenv(m.group(1)); + if(value != null) + { + m.appendReplacement(sb, Matcher.quoteReplacement(value)); + } + } + m.appendTail(sb); + url = sb.toString(); + + // Get any system property variable identified by ${system.xyz} + p = Pattern.compile("\\$\\{system\\.([^\\}]*)\\}"); + m = p.matcher(url); + sb = new StringBuffer(); + while(m.find()) + { + String value = System.getProperty(m.group(1)); + if(value != null) + { + m.appendReplacement(sb, Matcher.quoteReplacement(value)); + } + } + m.appendTail(sb); + url = sb.toString(); + + if(url.indexOf("${home.location}") != -1) + { + url = url.replace("${home.location}", + ProvisioningActivator.getConfigurationService() + .getScHomeDirLocation()); + } + + if(url.indexOf("${home.name}") != -1) + { + url = url.replace("${home.name}", + ProvisioningActivator.getConfigurationService() + .getScHomeDirName()); + } + if(url.indexOf("${uuid}") != -1) { url = url.replace("${uuid}", |