org.kie.aries.blueprint.namespace.ExpressionUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kie-aries-blueprint Show documentation
Show all versions of kie-aries-blueprint Show documentation
Drools and jBPM integration for Aries Blueprint
/*
* Copyright 2013 Red Hat, Inc. and/or its affiliates.
*
* Licensed 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.kie.aries.blueprint.namespace;
import org.osgi.service.blueprint.container.ComponentDefinitionException;
import java.io.File;
public class ExpressionUtils {
public static String resolveExpressionInPath(String path){
//#{ systemProperties['java.io.tmpdir'] }
String[] pathComponents = path.split("/");
int i=-1;
for (String pathComponent : pathComponents){
i++;
if ( pathComponent.startsWith("#{")){
String systemProperty = pathComponent.substring(2).trim();
if ( systemProperty.endsWith("}")){
systemProperty = systemProperty.substring(0, systemProperty.length()-1);
systemProperty = systemProperty.trim();
} else {
throw new ComponentDefinitionException("Unable to resolve path ::"+path);
}
if ( systemProperty.startsWith("systemProperties") ){
systemProperty = systemProperty.substring("systemProperties".length());
systemProperty = systemProperty.trim();
if ( systemProperty.startsWith("[") && systemProperty.endsWith("]")) {
systemProperty = systemProperty.substring(1, systemProperty.length()-1);
systemProperty = systemProperty.trim();
if ( systemProperty.startsWith("'") && systemProperty.endsWith("'")) {
systemProperty = systemProperty.substring(1, systemProperty.length()-1);
systemProperty = systemProperty.trim();
String value = System.getProperties().getProperty(systemProperty);
pathComponents[i] = value;
} else {
throw new ComponentDefinitionException("Unable to resolve path ::"+path);
}
} else {
throw new ComponentDefinitionException("Unable to resolve path ::"+path);
}
} else {
throw new ComponentDefinitionException("Unable to resolve path ::"+path);
}
}
}
StringBuilder sb = new StringBuilder();
for (String pathComponent : pathComponents){
sb.append(pathComponent);
sb.append(File.separator);
}
return sb.toString().substring(0, sb.toString().length()-File.separator.length());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy