Author: jbonofre
Date: Mon Dec 17 14:17:44 2012
New Revision: 1422940
URL: http://svn.apache.org/viewvc?rev=1422940&view=rev
Log:
[KARAF-2047] Fix file path handling for Windows platform
Modified:
karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/ConfigCommandSupport.java
Modified:
karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/ConfigCommandSupport.java
URL:
http://svn.apache.org/viewvc/karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/ConfigCommandSupport.java?rev=1422940&r1=1422939&r2=1422940&view=diff
==============================================================================
---
karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/ConfigCommandSupport.java
(original)
+++
karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/ConfigCommandSupport.java
Mon Dec 17 14:17:44 2012
@@ -45,7 +45,6 @@ public abstract class ConfigCommandSuppo
public static final String PROPERTY_CONFIG_PID = "ConfigCommand.PID";
public static final String PROPERTY_CONFIG_PROPS = "ConfigCommand.Props";
private static final String PID_FILTER = "(service.pid=%s*)";
- private static final String FILE_PREFIX = "file:";
private static final String CONFIG_SUFFIX = ".cfg";
private static final String FACTORY_SEPARATOR = "-";
private static final String FILEINSTALL_FILE_NAME =
"felix.fileinstall.filename";
@@ -102,16 +101,21 @@ public abstract class ConfigCommandSuppo
* @return
*/
public Configuration findConfigurationByFileName(ConfigurationAdmin admin,
String fileName) throws IOException, InvalidSyntaxException {
- if (fileName != null && fileName.contains(FACTORY_SEPARATOR)) {
- String factoryPid = fileName.substring(0,
fileName.lastIndexOf(FACTORY_SEPARATOR));
- String absoluteFileName = FILE_PREFIX + storage.getAbsolutePath()
+ File.separator + fileName + CONFIG_SUFFIX;
+ if (fileName != null) {
+ String factoryPid = fileName;
+ if (fileName.contains(FACTORY_SEPARATOR)) {
+ factoryPid = fileName.substring(0,
fileName.lastIndexOf(FACTORY_SEPARATOR));
+ }
Configuration[] configurations =
admin.listConfigurations(String.format(PID_FILTER, factoryPid));
if (configurations != null) {
for (Configuration configuration : configurations) {
Dictionary dictionary = configuration.getProperties();
if (dictionary != null) {
String fileInstallFileName = (String)
dictionary.get(FILEINSTALL_FILE_NAME);
- if (absoluteFileName.equals(fileInstallFileName)) {
+ int indexOfFileNameStart =
fileInstallFileName.lastIndexOf("/");
+ int indexOfFileNameEnd =
fileInstallFileName.lastIndexOf(CONFIG_SUFFIX);
+ String relativeFileName =
fileInstallFileName.substring(indexOfFileNameStart + 1, indexOfFileNameEnd);
+ if (fileName.equals(relativeFileName)) {
return configuration;
}
}