Properties
- In this article:
Introduction
In ImCMS we have convenient service for working with *.properties files - imcode.util.PropertyManager. This class
has own cache of properties files for quick access.
Server properties
While starting application, ImCMS automatically read its root path and goes to WEB-INF/conf/server.properties to
read server properties. Only after this moment we can read server properties from cache. If you get
FileNotFoundException or NullPointerException from PropertyManager, there are two explanations:
You point wrong path to properties file.
You want to read some properties from any file (and server too) before ImCMS read its root path.
So you have to check arguments (first of all). If not helps, there are two solutions:
Wait when ImCMS reads it’s root path automatically (recommended).
Set root path manually if ImCMS do not do that yet.
ImCMS sets path from system root to target folder. Try to find root path from something like:
ServletContext servletContext = filterConfig.getServletContext();
String rootPath = servletContext.getRealPath("/");
And then set root by next method:
PropertyManager.setRoot(String rootPath);
or if you find path by another way in File type:
PropertyManager.setRoot(File rootPath);
! Be sure that root path is set by you or ImCMS before read any properties !
If root path is set, properties from server.properties can be accessed by next methods:
read the value of
propertyfrom server properties: .. code-block:: javaPropertyManager.getServerProperty(String property);
returns server properties in
Propertiestype for next use: .. code-block:: javaPropertyManager.getServerProperties();
Properties in other files
! Be sure that root path is set by you or ImCMS before read any properties !
If you need to read some properties from another files, you may use next methods:
read the value of
propertyfrom properties file by specified path: .. code-block:: javaPropertyManager.getPropertyFrom(String path, String property);
returns properties which lies by specified path in
Propertiestype for next use: .. code-block:: javaPropertyManager.getPropertiesFrom(String path);