Class ResourcesPlugin

  • All Implemented Interfaces:
    org.osgi.framework.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 
      Modifier and Type Field Description
      static boolean DEFAULT_PREF_SEPARATE_DERIVED_ENCODINGS
      Default setting for "separateDerivedEncodings".
      static java.lang.Object FAMILY_AUTO_BUILD
      Constant identifying the job family identifier for the background autobuild job.
      static java.lang.Object FAMILY_AUTO_REFRESH
      Constant identifying the job family identifier for the background auto-refresh job.
      static java.lang.Object FAMILY_MANUAL_BUILD
      Constant identifying the job family identifier for a background build job.
      static java.lang.Object FAMILY_MANUAL_REFRESH
      Constant identifying the job family identifier for a background refresh job.
      static java.lang.String PI_RESOURCES
      Unique identifier constant (value "org.eclipse.core.resources") for the standard Resources plug-in.
      static java.lang.String PREF_APPLY_FILE_STATE_POLICY
      Name of a preference for configuring whether to apply the specified history size policy.
      static java.lang.String PREF_AUTO_BUILDING
      Name of a preference for configuring whether the workspace performs auto- builds.
      static java.lang.String PREF_AUTO_REFRESH
      Name of a preference for configuring whether the workspace performs auto- refresh.
      static java.lang.String PREF_BUILD_ORDER
      Name of a preference for configuring the order projects in the workspace are built.
      static java.lang.String PREF_DEFAULT_BUILD_ORDER
      Name of a preference for configuring whether to use the workspace's default order for building projects.
      static java.lang.String PREF_DISABLE_LINKING
      Name of a preference for turning off support for linked resources.
      static java.lang.String PREF_ENCODING
      Name of a preference indicating the encoding to use when reading text files in the workspace.
      static java.lang.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 java.lang.String PREF_KEEP_DERIVED_STATE
      Name of a preference for configuring whether derived files should be stored in the local history.
      static java.lang.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 java.lang.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 java.lang.String PREF_MAX_CONCURRENT_BUILDS
      Name of the preference to set max number of concurrent jobs running the workspace build.
      static java.lang.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 java.lang.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 java.lang.String PREF_MAX_NOTIFICATION_DELAY
      Deprecated.
      Do not use.
      static java.lang.String PREF_MISSING_NATURE_MARKER_SEVERITY
      Name of a preference for configuring the marker severity in case project description references an unknown nature.
      static java.lang.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 java.lang.String PREF_SNAPSHOT_INTERVAL
      Name of a preference for configuring the amount of time in milliseconds between automatic workspace snapshots
      static java.lang.String PT_BUILDERS
      Simple identifier constant (value "builders") for the builders extension point.
      static java.lang.String PT_FILE_MODIFICATION_VALIDATOR
      Simple identifier constant (value "fileModificationValidator") for the file modification validator extension point.
      static java.lang.String PT_FILTER_MATCHERS
      Simple identifier constant (value "filterMatchers") for the filter matchers extension point.
      static java.lang.String PT_MARKERS
      Simple identifier constant (value "markers") for the markers extension point.
      static java.lang.String PT_MODEL_PROVIDERS
      Simple identifier constant (value "modelProviders") for the model providers extension point.
      static java.lang.String PT_MOVE_DELETE_HOOK
      Simple identifier constant (value "moveDeleteHook") for the move/delete hook extension point.
      static java.lang.String PT_NATURES
      Simple identifier constant (value "natures") for the natures extension point.
      static java.lang.String PT_REFRESH_PROVIDERS
      Simple identifier constant (value "refreshProviders") for the auto-refresh refresh providers extension point.
      static java.lang.String PT_TEAM_HOOK
      Simple identifier constant (value "teamHook") for the team hook extension point.
      static java.lang.String PT_VARIABLE_PROVIDERS
      Simple identifier constant (value "variableProviders") for the variable providers extension point.
    • Constructor Summary

      Constructors 
      Constructor Description
      ResourcesPlugin()  
    • Field Detail

      • PI_RESOURCES

        public static final java.lang.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 java.lang.String PT_BUILDERS
        Simple identifier constant (value "builders") for the builders extension point.
        See Also:
        Constant Field Values
      • PT_NATURES

        public static final java.lang.String PT_NATURES
        Simple identifier constant (value "natures") for the natures extension point.
        See Also:
        Constant Field Values
      • PT_MARKERS

        public static final java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.String PREF_MAX_NOTIFICATION_DELAY
        Deprecated.
        Do not use.
        Since:
        3.0
        See Also:
        Constant Field Values
      • PREF_DEFAULT_BUILD_ORDER

        public static final java.lang.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_DISABLE_LINKING

        public static final java.lang.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 java.lang.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 java.lang.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 java.lang.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
      • PREF_MISSING_NATURE_MARKER_SEVERITY

        public static final java.lang.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 java.lang.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 java.lang.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​(org.osgi.framework.BundleContext context)
                  throws java.lang.Exception
        This implementation of the corresponding BundleActivator method closes the workspace without saving.
        Specified by:
        stop in interface org.osgi.framework.BundleActivator
        Overrides:
        stop in class Plugin
        Parameters:
        context - the bundle context for this plug-in
        Throws:
        java.lang.Exception - if this method fails to shut down this plug-in
        See Also:
        BundleActivator.stop(BundleContext)
      • start

        public void start​(org.osgi.framework.BundleContext context)
                   throws java.lang.Exception
        This implementation of the corresponding BundleActivator method opens the workspace.
        Specified by:
        start in interface org.osgi.framework.BundleActivator
        Overrides:
        start in class Plugin
        Parameters:
        context - the bundle context for this plug-in
        Throws:
        java.lang.Exception - if this plug-in did not start up properly
        See Also:
        BundleActivator.start(BundleContext)