You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2014/03/06 10:08:25 UTC
[2/3] git commit: [KARAF-2776] Startup bundles are installed our of
order Use felix/karaf Properties instead of the java.util one in Main to keep
the order of bundles
[KARAF-2776] Startup bundles are installed our of order
Use felix/karaf Properties instead of the java.util one in Main to keep the order of bundles
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/9a1909bc
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/9a1909bc
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/9a1909bc
Branch: refs/heads/karaf-3.0.x
Commit: 9a1909bc24ebf0b0f240257fd65ff308f92a0495
Parents: c9d5de0
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Feb 21 18:09:41 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Mar 6 09:55:28 2014 +0100
----------------------------------------------------------------------
.../core/internal/InstanceServiceImpl.java | 20 +--
.../org/apache/karaf/main/ConfigProperties.java | 2 +-
.../org/apache/karaf/main/InstanceHelper.java | 4 +-
.../main/java/org/apache/karaf/main/Main.java | 6 +-
.../org/apache/karaf/main/PropertiesLoader.java | 32 ++---
.../apache/karaf/main/lock/DefaultJDBCLock.java | 2 +-
.../apache/karaf/main/lock/DerbyJDBCLock.java | 2 +-
.../apache/karaf/main/lock/GenericJDBCLock.java | 2 +-
.../org/apache/karaf/main/lock/LockFactory.java | 2 +-
.../apache/karaf/main/lock/MySQLJDBCLock.java | 2 +-
.../apache/karaf/main/lock/OracleJDBCLock.java | 2 +-
.../karaf/main/lock/PostgreSQLJDBCLock.java | 2 +-
.../karaf/main/lock/SQLServerJDBCLock.java | 2 +-
.../apache/karaf/main/lock/SimpleFileLock.java | 2 +-
.../karaf/main/util/BootstrapLogManager.java | 6 +-
.../org/apache/karaf/main/util/SubstHelper.java | 141 -------------------
.../java/org/apache/karaf/main/MockLock.java | 2 +-
.../main/lock/BaseJDBCLockIntegrationTest.java | 2 +-
.../karaf/main/lock/BaseJDBCLockTest.java | 4 +-
.../lock/DefaultJDBCLockIntegrationTest.java | 2 +-
.../karaf/main/lock/DefaultJDBCLockTest.java | 2 +-
.../main/lock/DerbyJDBCLockIntegrationTest.java | 2 +-
.../karaf/main/lock/DerbyJDBCLockTest.java | 2 +-
.../main/lock/MySQLJDBCLockIntegrationTest.java | 2 +-
.../karaf/main/lock/MySQLJDBCLockTest.java | 2 +-
.../lock/OracleJDBCLockIntegrationTest.java | 2 +-
.../karaf/main/lock/OracleJDBCLockTest.java | 2 +-
.../lock/PostgreSQLJDBCLockIntegrationTest.java | 2 +-
.../karaf/main/lock/PostgreSQLJDBCLockTest.java | 2 +-
.../main/util/BootstrapLogManagerTest.java | 2 +-
.../apache/karaf/util/locks/FileLockUtils.java | 2 +-
31 files changed, 58 insertions(+), 203 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/instance/core/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
----------------------------------------------------------------------
diff --git a/instance/core/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java b/instance/core/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
index 1d3e922..32326ba 100644
--- a/instance/core/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
+++ b/instance/core/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
@@ -110,7 +110,7 @@ public class InstanceServiceImpl implements InstanceService {
this.stopTimeout = stopTimeout;
}
- private State loadData(org.apache.felix.utils.properties.Properties storage) {
+ private State loadData(org.apache.karaf.util.properties.Properties storage) {
State state = new State();
int count = getInt(storage, "count", 0);
state.defaultSshPortStart = getInt(storage, "ssh.port", state.defaultSshPortStart);
@@ -142,7 +142,7 @@ public class InstanceServiceImpl implements InstanceService {
return state;
}
- private void saveData(State state, org.apache.felix.utils.properties.Properties storage) {
+ private void saveData(State state, org.apache.karaf.util.properties.Properties storage) {
storage.put("ssh.port", Integer.toString(state.defaultSshPortStart));
storage.put("rmi.registry.port", Integer.toString(state.defaultRmiRegistryPortStart));
storage.put("rmi.server.port", Integer.toString(state.defaultRmiServerPortStart));
@@ -166,7 +166,7 @@ public class InstanceServiceImpl implements InstanceService {
}
}
- private boolean getBool(org.apache.felix.utils.properties.Properties storage, String name, boolean def) {
+ private boolean getBool(org.apache.karaf.util.properties.Properties storage, String name, boolean def) {
Object value = storage.get(name);
if (value != null) {
return Boolean.parseBoolean(value.toString());
@@ -175,7 +175,7 @@ public class InstanceServiceImpl implements InstanceService {
}
}
- private int getInt(org.apache.felix.utils.properties.Properties storage, String name, int def) {
+ private int getInt(org.apache.karaf.util.properties.Properties storage, String name, int def) {
Object value = storage.get(name);
if (value != null) {
return Integer.parseInt(value.toString());
@@ -184,7 +184,7 @@ public class InstanceServiceImpl implements InstanceService {
}
}
- private String getString(org.apache.felix.utils.properties.Properties storage, String name, String def) {
+ private String getString(org.apache.karaf.util.properties.Properties storage, String name, String def) {
Object value = storage.get(name);
return value != null ? value.toString() : def;
}
@@ -209,7 +209,7 @@ public class InstanceServiceImpl implements InstanceService {
}
try {
return FileLockUtils.execute(storageFile, new FileLockUtils.CallableWithProperties<T>() {
- public T call(org.apache.felix.utils.properties.Properties properties) throws IOException {
+ public T call(org.apache.karaf.util.properties.Properties properties) throws IOException {
State state = loadData(properties);
T t = callback.call(state);
saveData(state, properties);
@@ -355,14 +355,14 @@ public class InstanceServiceImpl implements InstanceService {
void addFeaturesFromSettings(File featuresCfg, final InstanceSettings settings) throws IOException {
FileLockUtils.execute(featuresCfg, new FileLockUtils.RunnableWithProperties() {
- public void run(org.apache.felix.utils.properties.Properties properties) throws IOException {
+ public void run(org.apache.karaf.util.properties.Properties properties) throws IOException {
appendToPropList(properties, "featuresBoot", settings.getFeatures());
appendToPropList(properties, "featuresRepositories", settings.getFeatureURLs());
}
});
}
- private void appendToPropList(org.apache.felix.utils.properties.Properties p, String key, List<String> elements) {
+ private void appendToPropList(org.apache.karaf.util.properties.Properties p, String key, List<String> elements) {
if (elements == null) {
return;
}
@@ -708,7 +708,7 @@ public class InstanceServiceImpl implements InstanceService {
File f = new File(instance.loc, path);
try {
return FileLockUtils.execute(f, new FileLockUtils.CallableWithProperties<Integer>() {
- public Integer call(org.apache.felix.utils.properties.Properties properties) throws IOException {
+ public Integer call(org.apache.karaf.util.properties.Properties properties) throws IOException {
return Integer.parseInt(properties.get(key).toString());
}
});
@@ -730,7 +730,7 @@ public class InstanceServiceImpl implements InstanceService {
}
File f = new File(instance.loc, path);
FileLockUtils.execute(f, new FileLockUtils.RunnableWithProperties() {
- public void run(org.apache.felix.utils.properties.Properties properties) throws IOException {
+ public void run(org.apache.karaf.util.properties.Properties properties) throws IOException {
properties.put(key, Integer.toString(port));
}
});
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/ConfigProperties.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/ConfigProperties.java b/main/src/main/java/org/apache/karaf/main/ConfigProperties.java
index 1bec6b1..25f19b6 100644
--- a/main/src/main/java/org/apache/karaf/main/ConfigProperties.java
+++ b/main/src/main/java/org/apache/karaf/main/ConfigProperties.java
@@ -22,7 +22,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.net.URI;
import java.net.URISyntaxException;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import org.apache.karaf.main.lock.SimpleFileLock;
import org.apache.karaf.main.util.Utils;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/InstanceHelper.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/InstanceHelper.java b/main/src/main/java/org/apache/karaf/main/InstanceHelper.java
index 31329e5..01f08c5 100644
--- a/main/src/main/java/org/apache/karaf/main/InstanceHelper.java
+++ b/main/src/main/java/org/apache/karaf/main/InstanceHelper.java
@@ -19,7 +19,6 @@
package org.apache.karaf.main;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
@@ -28,7 +27,6 @@ import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.net.InetAddress;
import java.net.ServerSocket;
-import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -62,7 +60,7 @@ public class InstanceHelper {
}
}
FileLockUtils.execute(propertiesFile, new FileLockUtils.RunnableWithProperties() {
- public void run(org.apache.felix.utils.properties.Properties props) throws IOException {
+ public void run(org.apache.karaf.util.properties.Properties props) throws IOException {
if (props.isEmpty()) {
if (isRoot) {
props.setProperty("count", "1");
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/Main.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/Main.java b/main/src/main/java/org/apache/karaf/main/Main.java
index 296c965..bc3e3d4 100644
--- a/main/src/main/java/org/apache/karaf/main/Main.java
+++ b/main/src/main/java/org/apache/karaf/main/Main.java
@@ -31,7 +31,7 @@ import java.security.Security;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -363,10 +363,8 @@ public class Main {
public List<BundleInfo> readBundlesFromStartupProperties(File startupPropsFile) {
Properties startupProps = PropertiesLoader.loadPropertiesOrFail(startupPropsFile);
- Enumeration<Object> keyIt = startupProps.keys();
List<BundleInfo> bundeList = new ArrayList<BundleInfo>();
- while (keyIt.hasMoreElements()) {
- String key = (String) keyIt.nextElement();
+ for (String key : startupProps.keySet()) {
try {
BundleInfo bi = new BundleInfo();
bi.uri = new URI(key);
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/PropertiesLoader.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/PropertiesLoader.java b/main/src/main/java/org/apache/karaf/main/PropertiesLoader.java
index fc036c9..750241e 100644
--- a/main/src/main/java/org/apache/karaf/main/PropertiesLoader.java
+++ b/main/src/main/java/org/apache/karaf/main/PropertiesLoader.java
@@ -26,12 +26,13 @@ import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import java.util.StringTokenizer;
-import org.apache.karaf.main.util.SubstHelper;
import org.apache.karaf.main.util.Utils;
+import static org.apache.karaf.util.properties.InterpolationHelper.substVars;
+
public class PropertiesLoader {
private static final String INCLUDES_PROPERTY = "${includes}"; // mandatory includes
@@ -71,13 +72,14 @@ public class PropertiesLoader {
Properties configProps = loadPropertiesFile(configPropURL, false);
copySystemProperties(configProps);
+ configProps.substitute();
// Perform variable substitution for system properties.
- for (Enumeration<?> e = configProps.propertyNames(); e.hasMoreElements();) {
- String name = (String) e.nextElement();
- configProps.setProperty(name,
- SubstHelper.substVars(configProps.getProperty(name), name, null, configProps));
- }
+// for (Enumeration<?> e = configProps.propertyNames(); e.hasMoreElements();) {
+// String name = (String) e.nextElement();
+// configProps.setProperty(name,
+// SubstHelper.substVars(configProps.getProperty(name), name, null, configProps));
+// }
return configProps;
}
@@ -100,7 +102,7 @@ public class PropertiesLoader {
* @throws IOException
*/
static void loadSystemProperties(File file) throws IOException {
- Properties props = new Properties();
+ Properties props = new Properties(false);
try {
InputStream is = new FileInputStream(file);
props.load(is);
@@ -114,10 +116,10 @@ public class PropertiesLoader {
if (name.startsWith(OVERRIDE_PREFIX)) {
String overrideName = name.substring(OVERRIDE_PREFIX.length());
String value = props.getProperty(name);
- System.setProperty(overrideName, SubstHelper.substVars(value, name, null, props));
+ System.setProperty(overrideName, substVars(value, name, null, props));
} else {
String value = System.getProperty(name, props.getProperty(name));
- System.setProperty(name, SubstHelper.substVars(value, name, null, props));
+ System.setProperty(name, substVars(value, name, null, props));
}
}
}
@@ -144,7 +146,7 @@ public class PropertiesLoader {
}
private static Properties loadPropertiesFile(URL configPropURL, boolean failIfNotFound) throws Exception {
- Properties configProps = new Properties();
+ Properties configProps = new Properties(null, false);
InputStream is = null;
try {
is = configPropURL.openConnection().getInputStream();
@@ -198,12 +200,8 @@ public class PropertiesLoader {
}
private static void trimValues(Properties configProps) {
- for (Enumeration<?> e = configProps.propertyNames(); e.hasMoreElements();) {
- Object key = e.nextElement();
- if (key instanceof String) {
- String v = configProps.getProperty((String) key);
- configProps.put(key, v.trim());
- }
+ for (String key : configProps.keySet()) {
+ configProps.put(key, configProps.get(key).trim());
}
}
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/lock/DefaultJDBCLock.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/lock/DefaultJDBCLock.java b/main/src/main/java/org/apache/karaf/main/lock/DefaultJDBCLock.java
index 53358d1..1b624a6 100644
--- a/main/src/main/java/org/apache/karaf/main/lock/DefaultJDBCLock.java
+++ b/main/src/main/java/org/apache/karaf/main/lock/DefaultJDBCLock.java
@@ -24,7 +24,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/lock/DerbyJDBCLock.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/lock/DerbyJDBCLock.java b/main/src/main/java/org/apache/karaf/main/lock/DerbyJDBCLock.java
index 722bdce..9b7027d 100644
--- a/main/src/main/java/org/apache/karaf/main/lock/DerbyJDBCLock.java
+++ b/main/src/main/java/org/apache/karaf/main/lock/DerbyJDBCLock.java
@@ -19,7 +19,7 @@
package org.apache.karaf.main.lock;
import java.sql.Connection;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
/**
* Represents an exclusive lock on a database,
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/lock/GenericJDBCLock.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/lock/GenericJDBCLock.java b/main/src/main/java/org/apache/karaf/main/lock/GenericJDBCLock.java
index d989315..a31bd3c 100644
--- a/main/src/main/java/org/apache/karaf/main/lock/GenericJDBCLock.java
+++ b/main/src/main/java/org/apache/karaf/main/lock/GenericJDBCLock.java
@@ -24,7 +24,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/lock/LockFactory.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/lock/LockFactory.java b/main/src/main/java/org/apache/karaf/main/lock/LockFactory.java
index 6507e26..6b11f9d 100644
--- a/main/src/main/java/org/apache/karaf/main/lock/LockFactory.java
+++ b/main/src/main/java/org/apache/karaf/main/lock/LockFactory.java
@@ -18,7 +18,7 @@
*/
package org.apache.karaf.main.lock;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
public class LockFactory {
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/lock/MySQLJDBCLock.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/lock/MySQLJDBCLock.java b/main/src/main/java/org/apache/karaf/main/lock/MySQLJDBCLock.java
index 597491c..6000b85 100644
--- a/main/src/main/java/org/apache/karaf/main/lock/MySQLJDBCLock.java
+++ b/main/src/main/java/org/apache/karaf/main/lock/MySQLJDBCLock.java
@@ -19,7 +19,7 @@
package org.apache.karaf.main.lock;
import java.sql.Connection;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
/**
* Represents an exclusive lock on a database,
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/lock/OracleJDBCLock.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/lock/OracleJDBCLock.java b/main/src/main/java/org/apache/karaf/main/lock/OracleJDBCLock.java
index 6e11127..b2a41c2 100644
--- a/main/src/main/java/org/apache/karaf/main/lock/OracleJDBCLock.java
+++ b/main/src/main/java/org/apache/karaf/main/lock/OracleJDBCLock.java
@@ -20,7 +20,7 @@ package org.apache.karaf.main.lock;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
/**
* Represents an exclusive lock on a database,
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/lock/PostgreSQLJDBCLock.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/lock/PostgreSQLJDBCLock.java b/main/src/main/java/org/apache/karaf/main/lock/PostgreSQLJDBCLock.java
index c3da0b4..c73e568 100644
--- a/main/src/main/java/org/apache/karaf/main/lock/PostgreSQLJDBCLock.java
+++ b/main/src/main/java/org/apache/karaf/main/lock/PostgreSQLJDBCLock.java
@@ -18,7 +18,7 @@
*/
package org.apache.karaf.main.lock;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
/**
* Represents an exclusive lock on a database,
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/lock/SQLServerJDBCLock.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/lock/SQLServerJDBCLock.java b/main/src/main/java/org/apache/karaf/main/lock/SQLServerJDBCLock.java
index e9d388b..d14f9c0 100644
--- a/main/src/main/java/org/apache/karaf/main/lock/SQLServerJDBCLock.java
+++ b/main/src/main/java/org/apache/karaf/main/lock/SQLServerJDBCLock.java
@@ -18,7 +18,7 @@
*/
package org.apache.karaf.main.lock;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
/**
* Represents an exclusive lock on a database,
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java b/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java
index 16dd599..3cb43ab 100644
--- a/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java
+++ b/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java
@@ -22,7 +22,7 @@ import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileLock;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import java.util.logging.Logger;
import org.apache.karaf.main.util.BootstrapLogManager;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/util/BootstrapLogManager.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/util/BootstrapLogManager.java b/main/src/main/java/org/apache/karaf/main/util/BootstrapLogManager.java
index ceb1725..e46b50f 100644
--- a/main/src/main/java/org/apache/karaf/main/util/BootstrapLogManager.java
+++ b/main/src/main/java/org/apache/karaf/main/util/BootstrapLogManager.java
@@ -24,7 +24,9 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
+import org.apache.karaf.util.properties.InterpolationHelper;
+
import java.util.logging.Handler;
import java.util.logging.LogRecord;
import java.util.logging.StreamHandler;
@@ -70,7 +72,7 @@ public class BootstrapLogManager {
}
String filename = getLogFilePath();
- filename = SubstHelper.substVars(filename, LOG4J_APPENDER_FILE, null, configProps);
+ filename = InterpolationHelper.substVars(filename, LOG4J_APPENDER_FILE, null, configProps);
File logFile = new File(filename);
try {
return new SimpleFileHandler(logFile);
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/main/java/org/apache/karaf/main/util/SubstHelper.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/util/SubstHelper.java b/main/src/main/java/org/apache/karaf/main/util/SubstHelper.java
deleted file mode 100644
index c1ae08c..0000000
--- a/main/src/main/java/org/apache/karaf/main/util/SubstHelper.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.karaf.main.util;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-public class SubstHelper {
- private static final String DELIM_START = "${";
- private static final String DELIM_STOP = "}";
-
- /**
- * <p>
- * This method performs property variable substitution on the
- * specified value. If the specified value contains the syntax
- * <tt>${<prop-name>}</tt>, where <tt><prop-name></tt>
- * refers to either a configuration property or a system property,
- * then the corresponding property value is substituted for the variable
- * placeholder. Multiple variable placeholders may exist in the
- * specified value as well as nested variable placeholders, which
- * are substituted from inner most to outer most. Configuration
- * properties override system properties.
- * </p>
- *
- * @param val The string on which to perform property substitution.
- * @param currentKey The key of the property being evaluated used to
- * detect cycles.
- * @param cycleMap Map of variable references used to detect nested cycles.
- * @param configProps Set of configuration properties.
- * @return The value of the specified string after system property substitution.
- * @throws IllegalArgumentException If there was a syntax error in the
- * property placeholder syntax or a recursive variable reference.
- */
- public static String substVars(String val, String currentKey,
- Map<String, String> cycleMap, Properties configProps)
- throws IllegalArgumentException {
- // If there is currently no cycle map, then create
- // one for detecting cycles for this invocation.
- if (cycleMap == null) {
- cycleMap = new HashMap<String, String>();
- }
-
- // Put the current key in the cycle map.
- cycleMap.put(currentKey, currentKey);
-
- // Assume we have a value that is something like:
- // "leading ${foo.${bar}} middle ${baz} trailing"
-
- // Find the first ending '}' variable delimiter, which
- // will correspond to the first deepest nested variable
- // placeholder.
- int stopDelim = val.indexOf(DELIM_STOP);
-
- // Find the matching starting "${" variable delimiter
- // by looping until we find a start delimiter that is
- // greater than the stop delimiter we have found.
- int startDelim = val.indexOf(DELIM_START);
- while (stopDelim >= 0) {
- int idx = val.indexOf(DELIM_START, startDelim + DELIM_START.length());
- if ((idx < 0) || (idx > stopDelim)) {
- break;
- } else if (idx < stopDelim) {
- startDelim = idx;
- }
- }
-
- // If we do not have a start or stop delimiter, then just
- // return the existing value.
- if ((startDelim < 0) && (stopDelim < 0)) {
- return val;
- }
- // At this point, we found a stop delimiter without a start,
- // so throw an exception.
- else if (((startDelim < 0) || (startDelim > stopDelim))
- && (stopDelim >= 0)) {
- throw new IllegalArgumentException(
- "stop delimiter with no start delimiter: "
- + val);
- }
-
- // At this point, we have found a variable placeholder so
- // we must perform a variable substitution on it.
- // Using the start and stop delimiter indices, extract
- // the first, deepest nested variable placeholder.
- String variable =
- val.substring(startDelim + DELIM_START.length(), stopDelim);
-
- // Verify that this is not a recursive variable reference.
- if (cycleMap.get(variable) != null) {
- throw new IllegalArgumentException(
- "recursive variable reference: " + variable);
- }
-
- // Get the value of the deepest nested variable placeholder.
- // Try to configuration properties first.
- String substValue = (configProps != null)
- ? configProps.getProperty(variable, null)
- : null;
- if (substValue == null) {
- // Ignore unknown property values.
- substValue = System.getProperty(variable, "");
- }
-
- // Remove the found variable from the cycle map, since
- // it may appear more than once in the value and we don't
- // want such situations to appear as a recursive reference.
- cycleMap.remove(variable);
-
- // Append the leading characters, the substituted value of
- // the variable, and the trailing characters to get the new
- // value.
- val = val.substring(0, startDelim)
- + substValue
- + val.substring(stopDelim + DELIM_STOP.length(), val.length());
-
- // Now perform substitution again, since there could still
- // be substitutions to make.
- val = substVars(val, currentKey, cycleMap, configProps);
-
- // Return the value.
- return val;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/MockLock.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/MockLock.java b/main/src/test/java/org/apache/karaf/main/MockLock.java
index 4bc9ab3..176d8bb 100644
--- a/main/src/test/java/org/apache/karaf/main/MockLock.java
+++ b/main/src/test/java/org/apache/karaf/main/MockLock.java
@@ -1,6 +1,6 @@
package org.apache.karaf.main;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import java.util.logging.Logger;
import org.apache.karaf.main.lock.Lock;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/BaseJDBCLockIntegrationTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/BaseJDBCLockIntegrationTest.java b/main/src/test/java/org/apache/karaf/main/lock/BaseJDBCLockIntegrationTest.java
index 17fc99f..dc29b70 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/BaseJDBCLockIntegrationTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/BaseJDBCLockIntegrationTest.java
@@ -23,7 +23,7 @@ import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import java.util.logging.Logger;
import org.apache.karaf.main.util.BootstrapLogManager;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/BaseJDBCLockTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/BaseJDBCLockTest.java b/main/src/test/java/org/apache/karaf/main/lock/BaseJDBCLockTest.java
index a45c4a2..0fd32f3 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/BaseJDBCLockTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/BaseJDBCLockTest.java
@@ -28,7 +28,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import org.apache.karaf.main.util.BootstrapLogManager;
import org.easymock.EasyMock;
@@ -81,7 +81,7 @@ public abstract class BaseJDBCLockTest {
props.put("karaf.lock.jdbc.password", password);
props.put("karaf.lock.jdbc.table", tableName);
props.put("karaf.lock.jdbc.clustername", clustername);
- props.put("karaf.lock.jdbc.timeout", timeout);
+ props.put("karaf.lock.jdbc.timeout", Integer.toString(timeout));
}
@Test
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/DefaultJDBCLockIntegrationTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/DefaultJDBCLockIntegrationTest.java b/main/src/test/java/org/apache/karaf/main/lock/DefaultJDBCLockIntegrationTest.java
index eef782a..91c5bc8 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/DefaultJDBCLockIntegrationTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/DefaultJDBCLockIntegrationTest.java
@@ -20,7 +20,7 @@ package org.apache.karaf.main.lock;
import static org.junit.Assert.assertTrue;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import org.apache.karaf.main.lock.DefaultJDBCLock;
import org.junit.Before;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/DefaultJDBCLockTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/DefaultJDBCLockTest.java b/main/src/test/java/org/apache/karaf/main/lock/DefaultJDBCLockTest.java
index eaafe3d..5705033 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/DefaultJDBCLockTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/DefaultJDBCLockTest.java
@@ -21,7 +21,7 @@ package org.apache.karaf.main.lock;
import static org.junit.Assert.assertEquals;
import java.sql.Connection;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import org.apache.karaf.main.lock.DefaultJDBCLock;
import org.junit.Before;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/DerbyJDBCLockIntegrationTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/DerbyJDBCLockIntegrationTest.java b/main/src/test/java/org/apache/karaf/main/lock/DerbyJDBCLockIntegrationTest.java
index d8fb55e..6cbedb9 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/DerbyJDBCLockIntegrationTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/DerbyJDBCLockIntegrationTest.java
@@ -20,7 +20,7 @@ package org.apache.karaf.main.lock;
import static org.junit.Assert.assertTrue;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import org.apache.karaf.main.lock.DefaultJDBCLock;
import org.apache.karaf.main.lock.DerbyJDBCLock;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/DerbyJDBCLockTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/DerbyJDBCLockTest.java b/main/src/test/java/org/apache/karaf/main/lock/DerbyJDBCLockTest.java
index bd6fcec..26cae64 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/DerbyJDBCLockTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/DerbyJDBCLockTest.java
@@ -21,7 +21,7 @@ package org.apache.karaf.main.lock;
import static org.junit.Assert.assertEquals;
import java.sql.Connection;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import org.apache.karaf.main.lock.DerbyJDBCLock;
import org.junit.Before;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/MySQLJDBCLockIntegrationTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/MySQLJDBCLockIntegrationTest.java b/main/src/test/java/org/apache/karaf/main/lock/MySQLJDBCLockIntegrationTest.java
index 4bb126d..e22ef09 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/MySQLJDBCLockIntegrationTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/MySQLJDBCLockIntegrationTest.java
@@ -22,7 +22,7 @@ package org.apache.karaf.main.lock;
import static org.junit.Assert.assertFalse;
import java.sql.Connection;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import org.apache.karaf.main.lock.MySQLJDBCLock;
import org.junit.Before;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/MySQLJDBCLockTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/MySQLJDBCLockTest.java b/main/src/test/java/org/apache/karaf/main/lock/MySQLJDBCLockTest.java
index c49e434..842f4e1 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/MySQLJDBCLockTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/MySQLJDBCLockTest.java
@@ -21,7 +21,7 @@ package org.apache.karaf.main.lock;
import static org.junit.Assert.assertEquals;
import java.sql.Connection;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import org.apache.karaf.main.lock.MySQLJDBCLock;
import org.junit.Before;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/OracleJDBCLockIntegrationTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/OracleJDBCLockIntegrationTest.java b/main/src/test/java/org/apache/karaf/main/lock/OracleJDBCLockIntegrationTest.java
index e2b0ce6..80f105c 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/OracleJDBCLockIntegrationTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/OracleJDBCLockIntegrationTest.java
@@ -22,7 +22,7 @@ package org.apache.karaf.main.lock;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import org.apache.karaf.main.lock.OracleJDBCLock;
import org.junit.Before;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/OracleJDBCLockTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/OracleJDBCLockTest.java b/main/src/test/java/org/apache/karaf/main/lock/OracleJDBCLockTest.java
index a2242a1..20a8198 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/OracleJDBCLockTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/OracleJDBCLockTest.java
@@ -26,7 +26,7 @@ import static org.junit.Assert.*;
import java.sql.Connection;
import java.sql.SQLException;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import org.apache.karaf.main.lock.OracleJDBCLock;
import org.junit.Before;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/PostgreSQLJDBCLockIntegrationTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/PostgreSQLJDBCLockIntegrationTest.java b/main/src/test/java/org/apache/karaf/main/lock/PostgreSQLJDBCLockIntegrationTest.java
index dea5ebb..76a9dbc 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/PostgreSQLJDBCLockIntegrationTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/PostgreSQLJDBCLockIntegrationTest.java
@@ -22,7 +22,7 @@ import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import static org.junit.Assert.assertTrue;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/lock/PostgreSQLJDBCLockTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/lock/PostgreSQLJDBCLockTest.java b/main/src/test/java/org/apache/karaf/main/lock/PostgreSQLJDBCLockTest.java
index 20aba82..818aafe 100644
--- a/main/src/test/java/org/apache/karaf/main/lock/PostgreSQLJDBCLockTest.java
+++ b/main/src/test/java/org/apache/karaf/main/lock/PostgreSQLJDBCLockTest.java
@@ -23,7 +23,7 @@ import org.junit.Test;
import java.sql.Connection;
import java.sql.SQLException;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import static org.easymock.EasyMock.*;
import static org.junit.Assert.assertEquals;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/main/src/test/java/org/apache/karaf/main/util/BootstrapLogManagerTest.java
----------------------------------------------------------------------
diff --git a/main/src/test/java/org/apache/karaf/main/util/BootstrapLogManagerTest.java b/main/src/test/java/org/apache/karaf/main/util/BootstrapLogManagerTest.java
index d9e203c..7eb468a 100644
--- a/main/src/test/java/org/apache/karaf/main/util/BootstrapLogManagerTest.java
+++ b/main/src/test/java/org/apache/karaf/main/util/BootstrapLogManagerTest.java
@@ -19,7 +19,7 @@
package org.apache.karaf.main.util;
import java.io.File;
-import java.util.Properties;
+import org.apache.karaf.util.properties.Properties;
import java.util.logging.Handler;
import junit.framework.Assert;
http://git-wip-us.apache.org/repos/asf/karaf/blob/9a1909bc/util/src/main/java/org/apache/karaf/util/locks/FileLockUtils.java
----------------------------------------------------------------------
diff --git a/util/src/main/java/org/apache/karaf/util/locks/FileLockUtils.java b/util/src/main/java/org/apache/karaf/util/locks/FileLockUtils.java
index b64639b..b3d1c32 100644
--- a/util/src/main/java/org/apache/karaf/util/locks/FileLockUtils.java
+++ b/util/src/main/java/org/apache/karaf/util/locks/FileLockUtils.java
@@ -24,7 +24,7 @@ import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileLock;
-import org.apache.felix.utils.properties.Properties;
+import org.apache.karaf.util.properties.Properties;
public final class FileLockUtils {