You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2012/12/17 15:17:45 UTC
svn commit: r1422940 -
/karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/ConfigCommandSupport.java
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;
}
}