Jump to: navigation, search

Difference between revisions of "SMILA/Documentation/Workspace Handling"

(General review on content and style)
Line 1: Line 1:
Some SMILA bundles need a workspace, i.e. a directory in the local file system where they can store temporary or persistent data to. This space should be separated from the configuration directory to make the cleaning up of the workspace (i.e. resetting the application to its initial state) as well as the managing and updating of the configuration easier. To support this bundle <code>org.eclipse.eilf.utils</code> provides the class <tt>WorkspaceHelper</tt> that manages the creation of workspace directories for other bundles.
+
Some SMILA bundles need a workspace, i.e. a directory in the local file system where they can store temporary or persistent data to. This space should be separated from the configuration directory to make the cleaning up of the workspace (i.e. resetting the application to its initial state) as well as the managing and updating of the configuration easier. To support this bundle <code>org.eclipse.smila.utils</code> provides the class <tt>WorkspaceHelper</tt> that manages the creation of workspace directories for other bundles.
  
The complete class name of this helper is <code>org.eclipse.eilf.utils.workspace.WorkspaceHelper</code>.
+
The complete class name of this helper is <code>org.eclipse.smila.utils.workspace.WorkspaceHelper</code>.
  
 
It has basically two methods:
 
It has basically two methods:
Line 11: Line 11:
  
 
# If for a given bundle there is a system property (or environment variable) <code><bundleName>.workspace</code>, its value describes the working directory for this bundle.
 
# If for a given bundle there is a system property (or environment variable) <code><bundleName>.workspace</code>, its value describes the working directory for this bundle.
# Else, if there is a system property (or environment variable) <code>org.eclipse.eilf.utils.workspace.root</code>, the working directory of a bundle will be <code><org.eclipse.eilf.utils.workspace.root>/<bundleName></code>.
+
# Else, if there is a system property (or environment variable) <code>org.eclipse.smila.utils.workspace.root</code>, the working directory of a bundle will be <code><org.eclipse.smila.utils.workspace.root>/<bundleName></code>.
 
# Else, the working directory will be determined by <code>org.eclipse.core.runtime.Platform.getStateLocation(bundleName)</code>. In a default installation this will be <code><SMILA_HOME>/workspace/.metadata/.plugins/<bundleName></code>.
 
# Else, the working directory will be determined by <code>org.eclipse.core.runtime.Platform.getStateLocation(bundleName)</code>. In a default installation this will be <code><SMILA_HOME>/workspace/.metadata/.plugins/<bundleName></code>.
  

Revision as of 04:37, 16 October 2008

Some SMILA bundles need a workspace, i.e. a directory in the local file system where they can store temporary or persistent data to. This space should be separated from the configuration directory to make the cleaning up of the workspace (i.e. resetting the application to its initial state) as well as the managing and updating of the configuration easier. To support this bundle org.eclipse.smila.utils provides the class WorkspaceHelper that manages the creation of workspace directories for other bundles.

The complete class name of this helper is org.eclipse.smila.utils.workspace.WorkspaceHelper.

It has basically two methods:

  • java.io.File createWorkingDir(String bundleName): This method ensures the existence of the working directory for the given bundle and creates a File object for it.
  • java.io.File createWorkingDir(String bundleName, String dirName): This method ensures the existence of the directory <dirName> inside the working directory of the named bundle and creates a File object for it.

The actual location of the bundle workspace is configurable as follows:

  1. If for a given bundle there is a system property (or environment variable) <bundleName>.workspace, its value describes the working directory for this bundle.
  2. Else, if there is a system property (or environment variable) org.eclipse.smila.utils.workspace.root, the working directory of a bundle will be <org.eclipse.smila.utils.workspace.root>/<bundleName>.
  3. Else, the working directory will be determined by org.eclipse.core.runtime.Platform.getStateLocation(bundleName). In a default installation this will be <SMILA_HOME>/workspace/.metadata/.plugins/<bundleName>.

If both system properties and environment variables are set, the system property takes precedence.

All bundles that need a working directory should use this class, this makes it easier later to change the behavior for all bundles at once if we find a better strategy.