X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fruntime%2FKernelUtils.java;h=6e47873b35557f772ac7d702433652bdb342a3fa;hb=27a964084a298e6423b9a19b88a665360fb0b567;hp=2ada3c7269e2625e25bd78e6f28507c1889c11d5;hpb=dca2b13e0e3ca3e7a9469e089b980c48c880ad1a;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/runtime/KernelUtils.java b/org.argeo.cms/src/org/argeo/cms/internal/runtime/KernelUtils.java index 2ada3c726..6e47873b3 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/runtime/KernelUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/runtime/KernelUtils.java @@ -1,6 +1,5 @@ package org.argeo.cms.internal.runtime; -import java.io.File; import java.io.IOException; import java.io.PrintStream; import java.net.URI; @@ -52,42 +51,28 @@ class KernelUtils implements KernelConstants { return asDictionary(props); } - static File getExecutionDir(String relativePath) { - File executionDir = new File(getFrameworkProp("user.dir")); + static Path getExecutionDir(String relativePath) { + Path executionDir = Paths.get(getFrameworkProp("user.dir")); if (relativePath == null) return executionDir; - try { - return new File(executionDir, relativePath).getCanonicalFile(); - } catch (IOException e) { - throw new IllegalArgumentException("Cannot get canonical file", e); - } + return executionDir.resolve(relativePath); } -// static File getOsgiInstanceDir() { -// return new File(CmsActivator.getBundleContext().getProperty(OSGI_INSTANCE_AREA).substring("file:".length())) -// .getAbsoluteFile(); -// } - public static Path getOsgiInstancePath(String relativePath) { - return Paths.get(getOsgiInstanceUri(relativePath)); + URI uri = getOsgiInstanceUri(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) - return safeUri(osgiInstanceBaseUri + (relativePath != null ? relativePath : "")); - else - return Paths.get(System.getProperty("user.dir"), (relativePath != null ? relativePath : "")).toUri(); - } + if (osgiInstanceBaseUri == null) // no data area available + return null; - static File getOsgiConfigurationFile(String relativePath) { - try { - return new File( - new URI(CmsActivator.getBundleContext().getProperty(OSGI_CONFIGURATION_AREA) + relativePath)) - .getCanonicalFile(); - } catch (Exception e) { - throw new IllegalArgumentException("Cannot get configuration file for " + relativePath, e); - } + if (!osgiInstanceBaseUri.endsWith("/")) + osgiInstanceBaseUri = osgiInstanceBaseUri + "/"; + return safeUri(osgiInstanceBaseUri + (relativePath != null ? relativePath : "")); } static String getFrameworkProp(String key, String def) { @@ -105,32 +90,10 @@ class KernelUtils implements KernelConstants { return getFrameworkProp(key, null); } - // Security - // static Subject anonymousLogin() { - // Subject subject = new Subject(); - // LoginContext lc; - // try { - // lc = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, subject); - // lc.login(); - // return subject; - // } catch (LoginException e) { - // throw new CmsException("Cannot login as anonymous", e); - // } - // } - static void logFrameworkProperties(CmsLog log) { for (Object sysProp : new TreeSet(System.getProperties().keySet())) { log.debug(sysProp + "=" + getFrameworkProp(sysProp.toString())); } - // String[] keys = { Constants.FRAMEWORK_STORAGE, - // Constants.FRAMEWORK_OS_NAME, Constants.FRAMEWORK_OS_VERSION, - // Constants.FRAMEWORK_PROCESSOR, Constants.FRAMEWORK_SECURITY, - // Constants.FRAMEWORK_TRUST_REPOSITORIES, - // Constants.FRAMEWORK_WINDOWSYSTEM, Constants.FRAMEWORK_VENDOR, - // Constants.FRAMEWORK_VERSION, Constants.FRAMEWORK_STORAGE_CLEAN, - // Constants.FRAMEWORK_LANGUAGE, Constants.FRAMEWORK_UUID }; - // for (String key : keys) - // log.debug(key + "=" + bc.getProperty(key)); } static void printSystemProperties(PrintStream out) { @@ -141,84 +104,6 @@ class KernelUtils implements KernelConstants { out.println(key + "=" + display.get(key)); } -// static Session openAdminSession(Repository repository) { -// return openAdminSession(repository, null); -// } -// -// static Session openAdminSession(final Repository repository, final String workspaceName) { -// LoginContext loginContext = loginAsDataAdmin(); -// return Subject.doAs(loginContext.getSubject(), new PrivilegedAction() { -// -// @Override -// public Session run() { -// try { -// return repository.login(workspaceName); -// } catch (RepositoryException e) { -// throw new IllegalStateException("Cannot open admin session", e); -// } finally { -// try { -// loginContext.logout(); -// } catch (LoginException e) { -// throw new IllegalStateException(e); -// } -// } -// } -// -// }); -// } -// -// static LoginContext loginAsDataAdmin() { -// ClassLoader currentCl = Thread.currentThread().getContextClassLoader(); -// Thread.currentThread().setContextClassLoader(KernelUtils.class.getClassLoader()); -// LoginContext loginContext; -// try { -// loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_DATA_ADMIN); -// loginContext.login(); -// } catch (LoginException e1) { -// throw new IllegalStateException("Could not login as data admin", e1); -// } finally { -// Thread.currentThread().setContextClassLoader(currentCl); -// } -// return loginContext; -// } - -// static void doAsDataAdmin(Runnable action) { -// LoginContext loginContext = loginAsDataAdmin(); -// Subject.doAs(loginContext.getSubject(), new PrivilegedAction() { -// -// @Override -// public Void run() { -// try { -// action.run(); -// return null; -// } finally { -// try { -// loginContext.logout(); -// } catch (LoginException e) { -// throw new IllegalStateException(e); -// } -// } -// } -// -// }); -// } - -// public static void asyncOpen(ServiceTracker st) { -// Runnable run = new Runnable() { -// -// @Override -// public void run() { -// st.open(); -// } -// }; -// Activator.getInternalExecutorService().execute(run); -//// new Thread(run, "Open service tracker " + st).start(); -// } - -// static BundleContext getBundleContext() { -// return Activator.getBundleContext(); -// } - static boolean asBoolean(String value) { if (value == null) return false;