Package org.eclipse.core.resources

## Class ResourcesPlugin

- java.lang.Object
- - org.eclipse.core.runtime.Plugin
  - - org.eclipse.core.resources.ResourcesPlugin

All Implemented Interfaces:
  `BundleActivator`

    public final class ResourcesPlugin
    extends Plugin

The plug-in runtime class for the Resources plug-in. This is the starting point for all workspace and resource manipulation. A typical sequence of events would be for a dependent plug-in to track the `org.eclipse.core.resources.IWorkspace` service. Doing so would cause this plug-in to be activated and the workspace (if any) to be loaded from disk and initialized.

Restriction:
  This class is not intended to be instantiated by clients.

### Field Summary

Fields
`static boolean` `DEFAULT_PREF_SEPARATE_DERIVED_ENCODINGS` Default setting for "separateDerivedEncodings".
`static Object` `FAMILY_AUTO_BUILD` Constant identifying the job family identifier for the background autobuild job.
`static Object` `FAMILY_AUTO_REFRESH` Constant identifying the job family identifier for the background auto-refresh job.
`static Object` `FAMILY_MANUAL_BUILD` Constant identifying the job family identifier for a background build job.
`static Object` `FAMILY_MANUAL_REFRESH` Constant identifying the job family identifier for a background refresh job.
`static String` `PI_RESOURCES` Unique identifier constant (value `"org.eclipse.core.resources"`) for the standard Resources plug-in.
`static String` `PREF_APPLY_FILE_STATE_POLICY` Name of a preference for configuring whether to apply the specified history size policy.
`static String` `PREF_AUTO_BUILDING` Name of a preference for configuring whether the workspace performs auto- builds.
`static String` `PREF_AUTO_REFRESH` Name of a preference for configuring whether the workspace performs auto- refresh.
`static String` `PREF_BUILD_ORDER` Name of a preference for configuring the order projects in the workspace are built.
`static String` `PREF_DEFAULT_BUILD_ORDER` Name of a preference for configuring whether to use the workspace's default order for building projects.
`static String` `PREF_DISABLE_LINKING` Name of a preference for turning off support for linked resources.
`static String` `PREF_ENCODING` Name of a preference indicating the encoding to use when reading text files in the workspace.
`static String` `PREF_FILE_STATE_LONGEVITY` Name of a preference for configuring the maximum number of milliseconds a file state should be kept in the local history
`static String` `PREF_KEEP_DERIVED_STATE` Name of a preference for configuring whether derived files should be stored in the local history.
`static String` `PREF_LIGHTWEIGHT_AUTO_REFRESH` Name of a preference for configuring whether out-of-sync resources are automatically asynchronously refreshed, when discovered to be out-of-sync by the workspace.
`static String` `PREF_MAX_BUILD_ITERATIONS` Name of a preference for configuring the maximum number of times that the workspace should rebuild when builders affect projects that have already been built.
`static String` `PREF_MAX_CONCURRENT_BUILDS` Name of the preference to set max number of concurrent jobs running the workspace build.
`static String` `PREF_MAX_FILE_STATE_SIZE` Name of a preference for configuring the maximum permitted size of a file to be stored in the local history
`static String` `PREF_MAX_FILE_STATES` Name of a preference for configuring the maximum number of states per file that can be stored in the local history.
`static String` `PREF_MAX_NOTIFICATION_DELAY` Deprecated. Do not use.
`static String` `PREF_MISSING_NATURE_MARKER_SEVERITY` Name of a preference for configuring the marker severity in case project description references an unknown nature.
`static String` `PREF_SEPARATE_DERIVED_ENCODINGS` Name of a preference for configuring whether encodings for derived resources within the project should be stored in a separate derived preference file.
`static String` `PREF_SNAPSHOT_INTERVAL` Name of a preference for configuring the amount of time in milliseconds between automatic workspace snapshots
`static String` `PT_BUILDERS` Simple identifier constant (value `"builders"`) for the builders extension point.
`static String` `PT_FILE_MODIFICATION_VALIDATOR` Simple identifier constant (value `"fileModificationValidator"`) for the file modification validator extension point.
`static String` `PT_FILTER_MATCHERS` Simple identifier constant (value `"filterMatchers"`) for the filter matchers extension point.
`static String` `PT_MARKERS` Simple identifier constant (value `"markers"`) for the markers extension point.
`static String` `PT_MODEL_PROVIDERS` Simple identifier constant (value `"modelProviders"`) for the model providers extension point.
`static String` `PT_MOVE_DELETE_HOOK` Simple identifier constant (value `"moveDeleteHook"`) for the move/delete hook extension point.
`static String` `PT_NATURES` Simple identifier constant (value `"natures"`) for the natures extension point.
`static String` `PT_REFRESH_PROVIDERS` Simple identifier constant (value `"refreshProviders"`) for the auto-refresh refresh providers extension point.
`static String` `PT_TEAM_HOOK` Simple identifier constant (value `"teamHook"`) for the team hook extension point.
`static String` `PT_VARIABLE_PROVIDERS` Simple identifier constant (value `"variableProviders"`) for the variable providers extension point.

### Fields inherited from class org.eclipse.core.runtime.Plugin

`PLUGIN_PREFERENCE_SCOPE, PREFERENCES_DEFAULT_OVERRIDE_BASE_NAME, PREFERENCES_DEFAULT_OVERRIDE_FILE_NAME`

### Constructor Summary

Constructors
`ResourcesPlugin()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static String` `getEncoding()` Returns the encoding to use when reading text files in the workspace.
`static ResourcesPlugin` `getPlugin()` Returns the Resources plug-in.
`static IWorkspace` `getWorkspace()` Returns the workspace.
`void` `start​(BundleContext context)` This implementation of the corresponding `BundleActivator` method opens the workspace.
`void` `stop​(BundleContext context)` This implementation of the corresponding `BundleActivator` method closes the workspace without saving.

### Methods inherited from class org.eclipse.core.runtime.Plugin

`find, find, getBundle, getLog, getPluginPreferences, getStateLocation, initializeDefaultPluginPreferences, internalInitializeDefaultPluginPreferences, isDebugging, openStream, openStream, savePluginPreferences, setDebugging, shutdown, startup, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### PI_RESOURCES

    public static final String PI_RESOURCES

Unique identifier constant (value `"org.eclipse.core.resources"`) for the standard Resources plug-in.

See Also:
  Constant Field Values

#### PT_BUILDERS

    public static final String PT_BUILDERS

Simple identifier constant (value `"builders"`) for the builders extension point.

See Also:
  Constant Field Values

#### PT_NATURES

    public static final String PT_NATURES

Simple identifier constant (value `"natures"`) for the natures extension point.

See Also:
  Constant Field Values

#### PT_MARKERS

    public static final String PT_MARKERS

Simple identifier constant (value `"markers"`) for the markers extension point.

See Also:
  Constant Field Values

#### PT_FILE_MODIFICATION_VALIDATOR

    public static final String PT_FILE_MODIFICATION_VALIDATOR

Simple identifier constant (value `"fileModificationValidator"`) for the file modification validator extension point.

See Also:
  Constant Field Values

#### PT_MOVE_DELETE_HOOK

    public static final String PT_MOVE_DELETE_HOOK

Simple identifier constant (value `"moveDeleteHook"`) for the move/delete hook extension point.

Since:
  2.0
See Also:
  Constant Field Values

#### PT_TEAM_HOOK

    public static final String PT_TEAM_HOOK

Simple identifier constant (value `"teamHook"`) for the team hook extension point.

Since:
  2.1
See Also:
  Constant Field Values

#### PT_REFRESH_PROVIDERS

    public static final String PT_REFRESH_PROVIDERS

Simple identifier constant (value `"refreshProviders"`) for the auto-refresh refresh providers extension point.

Since:
  3.0
See Also:
  Constant Field Values

#### PT_MODEL_PROVIDERS

    public static final String PT_MODEL_PROVIDERS

Simple identifier constant (value `"modelProviders"`) for the model providers extension point.

Since:
  3.2
See Also:
  Constant Field Values

#### PT_VARIABLE_PROVIDERS

    public static final String PT_VARIABLE_PROVIDERS

Simple identifier constant (value `"variableProviders"`) for the variable providers extension point.

Since:
  3.6
See Also:
  Constant Field Values

#### PT_FILTER_MATCHERS

    public static final String PT_FILTER_MATCHERS

Simple identifier constant (value `"filterMatchers"`) for the filter matchers extension point.

Since:
  3.6
See Also:
  Constant Field Values

#### FAMILY_AUTO_BUILD

    public static final Object FAMILY_AUTO_BUILD

Constant identifying the job family identifier for the background autobuild job.

Since:
  3.0
See Also:
  `IJobManager.join(Object, IProgressMonitor)`

#### FAMILY_AUTO_REFRESH

    public static final Object FAMILY_AUTO_REFRESH

Constant identifying the job family identifier for the background auto-refresh job.

Since:
  3.1
See Also:
  `IJobManager.join(Object, IProgressMonitor)`

#### FAMILY_MANUAL_BUILD

    public static final Object FAMILY_MANUAL_BUILD

Constant identifying the job family identifier for a background build job. All clients that schedule background jobs for performing builds should include this job family in their implementation of `belongsTo`.

Since:
  3.0
See Also:
  `IJobManager.join(Object, IProgressMonitor)`, `Job.belongsTo(Object)`

#### FAMILY_MANUAL_REFRESH

    public static final Object FAMILY_MANUAL_REFRESH

Constant identifying the job family identifier for a background refresh job. All clients that schedule background jobs for performing refreshing should include this job family in their implementation of `belongsTo`.

Since:
  3.4
See Also:
  `IJobManager.join(Object, IProgressMonitor)`, `Job.belongsTo(Object)`

#### PREF_ENCODING

    public static final String PREF_ENCODING

Name of a preference indicating the encoding to use when reading text files in the workspace. The value is a string, and may be the default empty string, indicating that the file system encoding should be used instead. The file system encoding can be retrieved using `System.getProperty("file.encoding")`. There is also a convenience method `getEncoding` which returns the value of this preference, or the file system encoding if this preference is not set.

Note that there is no guarantee that the value is a supported encoding. Callers should be prepared to handle `UnsupportedEncodingException` where this encoding is used.

See Also:
  `getEncoding()`, `UnsupportedEncodingException`, Constant Field Values

#### PREF_MAX_NOTIFICATION_DELAY

    @Deprecated
    public static final String PREF_MAX_NOTIFICATION_DELAY

Deprecated.
Do not use.

Since:
  3.0
See Also:
  Constant Field Values

#### PREF_AUTO_BUILDING

    public static final String PREF_AUTO_BUILDING

Name of a preference for configuring whether the workspace performs auto- builds.

Since:
  2.1
See Also:
  `IWorkspaceDescription.isAutoBuilding()`, `IWorkspaceDescription.setAutoBuilding(boolean)`, Constant Field Values

#### PREF_BUILD_ORDER

    public static final String PREF_BUILD_ORDER

Name of a preference for configuring the order projects in the workspace are built.

Since:
  2.1
See Also:
  `IWorkspaceDescription.getBuildOrder()`, `IWorkspaceDescription.setBuildOrder(String[])`, Constant Field Values

#### PREF_DEFAULT_BUILD_ORDER

    public static final String PREF_DEFAULT_BUILD_ORDER

Name of a preference for configuring whether to use the workspace's default order for building projects.

Since:
  2.1
See Also:
  Constant Field Values

#### PREF_MAX_BUILD_ITERATIONS

    public static final String PREF_MAX_BUILD_ITERATIONS

Name of a preference for configuring the maximum number of times that the workspace should rebuild when builders affect projects that have already been built.

Since:
  2.1
See Also:
  `IWorkspaceDescription.getMaxBuildIterations()`, `IWorkspaceDescription.setMaxBuildIterations(int)`, Constant Field Values

#### PREF_APPLY_FILE_STATE_POLICY

    public static final String PREF_APPLY_FILE_STATE_POLICY

Name of a preference for configuring whether to apply the specified history size policy.

Since:
  3.6
See Also:
  `IWorkspaceDescription.isApplyFileStatePolicy()`, `IWorkspaceDescription.setApplyFileStatePolicy(boolean)`, Constant Field Values

#### PREF_FILE_STATE_LONGEVITY

    public static final String PREF_FILE_STATE_LONGEVITY

Name of a preference for configuring the maximum number of milliseconds a file state should be kept in the local history

Since:
  2.1
See Also:
  `IWorkspaceDescription.getFileStateLongevity()`, `IWorkspaceDescription.setFileStateLongevity(long)`, Constant Field Values

#### PREF_MAX_FILE_STATE_SIZE

    public static final String PREF_MAX_FILE_STATE_SIZE

Name of a preference for configuring the maximum permitted size of a file to be stored in the local history

Since:
  2.1
See Also:
  `IWorkspaceDescription.getMaxFileStateSize()`, `IWorkspaceDescription.setMaxFileStateSize(long)`, Constant Field Values

#### PREF_KEEP_DERIVED_STATE

    public static final String PREF_KEEP_DERIVED_STATE

Name of a preference for configuring whether derived files should be stored in the local history.

Since:
  3.15
See Also:
  `IWorkspaceDescription.isKeepDerivedState()`, `IWorkspaceDescription.setKeepDerivedState(boolean)`, Constant Field Values

#### PREF_MAX_FILE_STATES

    public static final String PREF_MAX_FILE_STATES

Name of a preference for configuring the maximum number of states per file that can be stored in the local history.

Since:
  2.1
See Also:
  `IWorkspaceDescription.getMaxFileStates()`, `IWorkspaceDescription.setMaxFileStates(int)`, Constant Field Values

#### PREF_SNAPSHOT_INTERVAL

    public static final String PREF_SNAPSHOT_INTERVAL

Name of a preference for configuring the amount of time in milliseconds between automatic workspace snapshots

Since:
  2.1
See Also:
  `IWorkspaceDescription.getSnapshotInterval()`, `IWorkspaceDescription.setSnapshotInterval(long)`, Constant Field Values

#### PREF_DISABLE_LINKING

    public static final String PREF_DISABLE_LINKING

Name of a preference for turning off support for linked resources. When this preference is set to "true", attempting to create linked resources will fail.

Since:
  2.1
See Also:
  Constant Field Values

#### PREF_AUTO_REFRESH

    public static final String PREF_AUTO_REFRESH

Name of a preference for configuring whether the workspace performs auto- refresh. Auto-refresh installs a file-system listener, or performs periodic file-system polling to actively discover changes in the resource hierarchy.

Since:
  3.0
See Also:
  Constant Field Values

#### PREF_LIGHTWEIGHT_AUTO_REFRESH

    public static final String PREF_LIGHTWEIGHT_AUTO_REFRESH

Name of a preference for configuring whether out-of-sync resources are automatically asynchronously refreshed, when discovered to be out-of-sync by the workspace.

This preference suppresses out-of-sync CoreException for some read methods, including: `IFile.getContents()` & `IFile.getContentDescription()`.

In the future the workspace may enable other lightweight auto-refresh mechanisms when this preference is true. (The existing `PREF_AUTO_REFRESH` will continue to enable filesystem hooks and the existing polling based monitor.)

See the discussion: https://bugs.eclipse.org/303517

Since:
  3.7
See Also:
  Constant Field Values

#### PREF_SEPARATE_DERIVED_ENCODINGS

    public static final String PREF_SEPARATE_DERIVED_ENCODINGS

Name of a preference for configuring whether encodings for derived resources within the project should be stored in a separate derived preference file.

Since:
  3.7
See Also:
  Constant Field Values

#### DEFAULT_PREF_SEPARATE_DERIVED_ENCODINGS

    public static final boolean DEFAULT_PREF_SEPARATE_DERIVED_ENCODINGS

Default setting for "separateDerivedEncodings".

Since:
  3.9
See Also:
  Constant Field Values

#### PREF_MISSING_NATURE_MARKER_SEVERITY

    public static final String PREF_MISSING_NATURE_MARKER_SEVERITY

Name of a preference for configuring the marker severity in case project description references an unknown nature.

Since:
  3.13
See Also:
  Constant Field Values

#### PREF_MAX_CONCURRENT_BUILDS

    public static final String PREF_MAX_CONCURRENT_BUILDS

Name of the preference to set max number of concurrent jobs running the workspace build.

Since:
  3.13
See Also:
  Constant Field Values

### Constructor Detail

#### ResourcesPlugin

    public ResourcesPlugin()

### Method Detail

#### getEncoding

    public static String getEncoding()

Returns the encoding to use when reading text files in the workspace. This is the value of the `PREF_ENCODING` preference, or the file system encoding (`System.getProperty("file.encoding")`) if the preference is not set, the workspace is not ready yet or any other condition where it could not be determined.

Note that this method does not check whether the result is a supported encoding. Callers should be prepared to handle `UnsupportedEncodingException` where this encoding is used.

Hint: Using this method might return different results depending on the system state. Code that don't want to be affected from this ambiguities should do the following:

1. using any of your favorite techniques (Declarative Services, ServiceTracker, Blueprint, ...) to track the workspace
2. Calling workspace.getRoot().getDefaultCharset(false)
3. If `null` is returned take the appropriate action, e.g fall back to `System.getProperty("file.encoding")` or even better `Charset.defaultCharset()`

Returns:
  the encoding to use when reading text files in the workspace
See Also:
  `UnsupportedEncodingException`

#### getPlugin

    public static ResourcesPlugin getPlugin()

Returns the Resources plug-in.

Returns:
  the single instance of this plug-in runtime class

#### getWorkspace

    public static IWorkspace getWorkspace()

Returns the workspace. The workspace is not accessible after the resources plug-in has shutdown. Hint: Accessing the Workspace in a static way is prone to start-up order problem, please consider using any of your favorite techniques (Declarative Services, ServiceTracker, Blueprint, ...) instead. Please see the documentation of `IWorkspace` for more information.

Returns:
  the workspace that was created by the single instance of this plug-in class.

#### stop

    public void stop​(BundleContext context)
              throws Exception

This implementation of the corresponding `BundleActivator` method closes the workspace without saving.

Specified by:
  `stop` in interface `BundleActivator`
Overrides:
  `stop` in class `Plugin`
Parameters:
  `context` - the bundle context for this plug-in
Throws:
  `Exception` - if this method fails to shut down this plug-in
See Also:
  `BundleActivator.stop(BundleContext)`

#### start

    public void start​(BundleContext context)
               throws Exception

This implementation of the corresponding `BundleActivator` method opens the workspace.

Specified by:
  `start` in interface `BundleActivator`
Overrides:
  `start` in class `Plugin`
Parameters:
  `context` - the bundle context for this plug-in
Throws:
  `Exception` - if this plug-in did not start up properly
See Also:
  `BundleActivator.start(BundleContext)`