aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator
diff options
context:
space:
mode:
authorIngo Bauersachs <ingo@jitsi.org>2012-09-30 01:31:59 +0000
committerIngo Bauersachs <ingo@jitsi.org>2012-09-30 01:31:59 +0000
commitb75a83f406c9eafec0f81a43cb5bda6a87bb9d58 (patch)
treebb1de78127e8a6ace616b62066fdbfeed5a067d9 /src/net/java/sip/communicator
parenteb02507351f81bc39982f8fe4be8f2113256c3af (diff)
downloadjitsi-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.java45
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}",