import java.util.Hashtable;
import java.util.Properties;
import java.util.TreeMap;
-import java.util.TreeSet;
-import org.argeo.api.cms.CmsLog;
import org.argeo.cms.internal.osgi.CmsActivator;
/** Package utilities */
final static String OSGI_INSTANCE_AREA = "osgi.instance.area";
final static String OSGI_CONFIGURATION_AREA = "osgi.configuration.area";
+ final static String OSGI_FRAMEWORK_UUID = "org.osgi.framework.uuid";
+
static void setJaasConfiguration(URL jaasConfigurationUrl) {
try {
URIParameter uriParameter = new URIParameter(jaasConfigurationUrl.toURI());
return Paths.get(uri);
}
+ public static Path getOsgiConfigurationPath(String relativePath) {
+ URI uri = getOsgiConfigurationUri(relativePath);
+ if (uri == null) // no data area available
+ return null;
+ return Paths.get(uri);
+ }
+
public static URI getOsgiInstanceUri(String relativePath) {
String osgiInstanceBaseUri = getFrameworkProp(OSGI_INSTANCE_AREA);
if (osgiInstanceBaseUri == null) // no data area available
return safeUri(osgiInstanceBaseUri + (relativePath != null ? relativePath : ""));
}
+ public static URI getOsgiConfigurationUri(String relativePath) {
+ String osgiInstanceBaseUri = getFrameworkProp(OSGI_CONFIGURATION_AREA);
+ if (osgiInstanceBaseUri == null) // no data area available
+ return null;
+
+ if (!osgiInstanceBaseUri.endsWith("/"))
+ osgiInstanceBaseUri = osgiInstanceBaseUri + "/";
+ return safeUri(osgiInstanceBaseUri + (relativePath != null ? relativePath : ""));
+ }
+
static String getFrameworkProp(String key, String def) {
String value;
- if (CmsActivator.getBundleContext() != null)
- value = CmsActivator.getBundleContext().getProperty(key);
- else
- value = System.getProperty(key);
+ value = CmsActivator.getFrameworkProperty(key);
+// if (value == null)
+// value = System.getProperty(key);
if (value == null)
return def;
return value;
return getFrameworkProp(key, null);
}
- static void logFrameworkProperties(CmsLog log) {
- for (Object sysProp : new TreeSet<Object>(System.getProperties().keySet())) {
- log.debug(sysProp + "=" + getFrameworkProp(sysProp.toString()));
- }
- }
+// static void logFrameworkProperties(CmsLog log) {
+// for (Object sysProp : new TreeSet<Object>(System.getProperties().keySet())) {
+// log.debug(sysProp + "=" + getFrameworkProp(sysProp.toString()));
+// }
+// }
static void printSystemProperties(PrintStream out) {
TreeMap<String, String> display = new TreeMap<>();
if (uri == null)
throw new IllegalArgumentException("URI cannot be null");
try {
+ // FIXME does not work if URI contains illegal characters (such as spaces, etc.)
return new URI(uri);
} catch (URISyntaxException e) {
throw new IllegalArgumentException("Badly formatted URI " + uri, e);