### Eclipse Workspace Patch 1.0
#P org.eclipse.rse.core
Index: schema/subsystemConfigurations.exsd
===================================================================
RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.core/schema/subsystemConfigurations.exsd,v
retrieving revision 1.2
diff -u -r1.2 subsystemConfigurations.exsd
--- schema/subsystemConfigurations.exsd 5 Feb 2008 21:58:11 -0000 1.2
+++ schema/subsystemConfigurations.exsd 6 Feb 2008 23:07:29 -0000
@@ -100,7 +100,7 @@
RSE subsystems integrate the services of the service layer with connection information, model artifacts and persistence. -Each subsystem is associated with a single service type. For example, the file service subsystem is associated with the -file service. Each subsystem is associated with one or more services from the service layer, +Each subsystem is associated with a single service type. For example, the file service subsystem is associated with the +file service. Each subsystem is associated with one or more services from the service layer, a connector service and, in some cases, a model adapter, which is used to convert artifacts from the service layer into a form that is suitable for the subsystem layer.
@@ -61,6 +61,11 @@ to DataStore and vice versa.+Subsystems do not have to be implemented on top of a formally defined service layer, although this is highly recommended. +Instead it may have all the services implemented directly in the subsystem itself. +If a subsystem does not use a service layer it should return null when implementing getServiceType(). +
+
Subsystems are RSE objects that are persistable and maintain higher level functionality from the service layer. Subsystems that
are used to query information on a host often have filters. Filters provide the user the means to
specify a criteria for which to query a set of data. In addition to filters, there are more arbitrary properties that can be
#P org.eclipse.rse.ui
Index: subsystems/org/eclipse/rse/core/servicesubsystem/ServiceSubSystemConfiguration.java
===================================================================
RCS file: subsystems/org/eclipse/rse/core/servicesubsystem/ServiceSubSystemConfiguration.java
diff -N subsystems/org/eclipse/rse/core/servicesubsystem/ServiceSubSystemConfiguration.java
--- subsystems/org/eclipse/rse/core/servicesubsystem/ServiceSubSystemConfiguration.java 31 May 2007 15:00:08 -0000 1.16
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,195 +0,0 @@
-/********************************************************************************
- * Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Initial Contributors:
- * The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
- * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
- * Contributors:
- * Martin Oberhuber (Wind River) - Replace SystemRegistry by ISystemRegistry
- * Martin Oberhuber (Wind River) - [190231] Remove UI-only code from SubSystemConfiguration
- ********************************************************************************/
-
-package org.eclipse.rse.core.servicesubsystem;
-
-import org.eclipse.rse.core.filters.ISystemFilter;
-import org.eclipse.rse.core.filters.ISystemFilterPool;
-import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage;
-import org.eclipse.rse.core.subsystems.AbstractConnectorService;
-import org.eclipse.rse.core.subsystems.AbstractConnectorServiceManager;
-import org.eclipse.rse.core.subsystems.IServiceSubSystemConfiguration;
-import org.eclipse.rse.core.subsystems.ISubSystem;
-import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
-import org.eclipse.rse.core.subsystems.SubSystemConfiguration;
-
-/**
- * This class is to be used by subsystem-providers that do not desire to use MOF/EMF. It is
- * therefore recommended starting base class for subsystem providers.
- *
- * To use this class, simply subclass it and override the appropriate methods in it, such as:
- * For additional customization of the subsystem, you may supply a {@link org.eclipse.rse.ui.view.SubSystemConfigurationAdapter}, - * which allows you to - *
- * This class is typically used together with:
- *
- * In general, for what methods to override, only worry about the non-generated methods in
- * this class, and ignore the hundreds in {@link org.eclipse.rse.core.subsystems.SubSystemConfiguration}
- *
- * @see org.eclipse.rse.core.servicesubsystem.ServiceSubSystem
- * @see AbstractConnectorService
- * @see AbstractConnectorServiceManager
- */
-
-public abstract class ServiceSubSystemConfiguration extends SubSystemConfiguration implements IServiceSubSystemConfiguration
-{
-
- protected ServiceSubSystemConfiguration()
- {
- super();
- }
-
- // ------------------------------------------------------
- // CONFIGURATION METHODS THAT ARE OVERRIDDEN FROM PARENT
- // WE ASSUME TYPICAL DEFAULTS, BUT CHILDREN CAN OVERRIDE
- // ------------------------------------------------------
- /**
- * Overridable configuration method. Default is false
- * Return true if instance of this subsystem configuration's subsystems support connect and disconnect actions.
- */
- public boolean supportsSubSystemConnect()
- {
- return true;
- }
-
- /**
- * Overridable configuration method. Default is true
- * Return true (default) or false to indicate if subsystems of this subsystem configuration support user-editable
- * port numbers.
- */
- public boolean isPortEditable()
- {
- return true;
- }
- /**
- * Overridable configuration method. Default is true
- * Required method for subsystem configuration child classes. Return true if you support filters, false otherwise.
- * If you support filters, then some housekeeping will be done for you automatically. Specifically, they
- * will be saved and restored for you automatically.
- */
- public boolean supportsFilters()
- {
- return true;
- }
- /**
- * Overridable configuration method. Default is false
- * Do we allow filters within filters?
- */
- public boolean supportsNestedFilters()
- {
- return false;
- }
- /**
- * COverridable configuration method. Default is false
- * Return true if you support user-defined actions for the remote system objects returned from expansion of
- * subsystems created by this subsystem configuration
- */
- public boolean supportsUserDefinedActions()
- {
- return false;
- }
- /**
- * Overridable configuration method. Default is false
- * Return true if you support user-defined/managed named file types
- */
- public boolean supportsFileTypes()
- {
- return false;
- }
- /**
- * Overridable configuration method. Default is false
- * Tell us if filter strings are case sensitive.
- */
- public boolean isCaseSensitive()
- {
- return false;
- }
- /**
- * Overridable configuration method. Default is false
- * Tell us if duplicate filter strings are supported per filter.
- */
- public boolean supportsDuplicateFilterStrings()
- {
- return false;
- }
-
- // ------------------------------------------------
- // FRAMEWORKD METHODS TO BE OVERRIDDEN IF APPROPRIATE.
- // THESE ARE CALLED BY OUR OWN PARENT
- // ------------------------------------------------
-
- /**
- * Overridable lifecycle method. Not typically overridden.
- * After a new subsystem instance is created, the framework calls this method
- * to initialize it. This is your opportunity to set default attribute values.
- *
- *
The reason for the connect wizard pages parameter is in case your subsystem configuration contributes a page to that wizard, - * whose values are needed to set the subsystem's initial state. For example, you might decide to add a - * page to the connection wizard to prompt for a JDBC Driver name. If so, when this method is called at - * the time a new connection is created after the wizard, your page will have the user's value. You can - * thus use it here to initialize that subsystem property. Be use to use instanceof to find your particular - * page. - *
- * - *
- * If you override this, PLEASE CALL SUPER TO DO DEFAULT INITIALIZATION!
- *
- * @param subsys - The subsystem that was created via createSubSystemInternal
- * @param yourNewConnectionWizardPages - The wizard pages you supplied to the New Connection wizard, via the
- * {@link org.eclipse.rse.ui.view.SubSystemConfigurationAdapter#getNewConnectionWizardPages(org.eclipse.rse.core.subsystems.ISubSystemConfiguration, org.eclipse.jface.wizard.IWizard)}
- * method or null if you didn't override this method.
- * Note there may be more pages than you originally supplied, as you are passed all pages contributed
- * by this subsystem configuration object, including subclasses. Null on a clone operation.
- *
- * @see org.eclipse.rse.ui.view.SubSystemConfigurationAdapter#getNewConnectionWizardPages(org.eclipse.rse.core.subsystems.ISubSystemConfiguration, org.eclipse.jface.wizard.IWizard)
- */
- protected void initializeSubSystem(ISubSystem subsys,ISystemNewConnectionWizardPage[] yourNewConnectionWizardPages)
- {
- super.initializeSubSystem(subsys, yourNewConnectionWizardPages);
- }
-
- // --------------------------------
- // METHODS FOR SUPPLYING ACTIONS...
- // --------------------------------
-
- /**
- * Optionally overridable method affecting the visual display of objects within subsystems created by this subsystem configuration.
- * Return the translated string to show in the property sheet for the "type" property, for the selected
- * filter. This method is only called for filters within subsystems created by this subsystem configuration.
- *
- * Returns a default string, override if appropriate.
- */
- public String getTranslatedFilterTypeProperty(ISystemFilter selectedFilter)
- {
- return super.getTranslatedFilterTypeProperty(selectedFilter);
- }
-
-}
\ No newline at end of file
Index: subsystems/org/eclipse/rse/core/servicesubsystem/ServiceSubSystem.java
===================================================================
RCS file: subsystems/org/eclipse/rse/core/servicesubsystem/ServiceSubSystem.java
diff -N subsystems/org/eclipse/rse/core/servicesubsystem/ServiceSubSystem.java
--- subsystems/org/eclipse/rse/core/servicesubsystem/ServiceSubSystem.java 14 May 2007 09:43:40 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,168 +0,0 @@
-/********************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Initial Contributors:
- * The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
- * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
- * Contributors:
- * Martin Oberhuber (Wind River) - [186128][refactoring] Move IProgressMonitor last in public base classes
- ********************************************************************************/
-
-package org.eclipse.rse.core.servicesubsystem;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.rse.core.model.IHost;
-import org.eclipse.rse.core.subsystems.IConnectorService;
-import org.eclipse.rse.core.subsystems.IServiceSubSystem;
-import org.eclipse.rse.core.subsystems.SubSystem;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-public abstract class ServiceSubSystem extends SubSystem implements IServiceSubSystem
-{
- /**
- * Constructor
- * Subclasses must call this via super().
- */
- protected ServiceSubSystem(IHost host, IConnectorService connectorService)
- {
- super(host, connectorService);
- }
-
- // -------------------------------------
- // GUI methods
- // -------------------------------------
- /**
- * Optionally override in order to supply a property sub-page to the tabbed
- * notebook in the owning connection's Properties page.
- *
- * Return the single property page to show in the tabbed notebook for the
- * for SubSystem property of the parent Connection object, in the Remote Systems
- * view.
- * Return null if no page is to be contributed for this. You are limited to a single
- * page, so you may have to compress. It is recommended you prompt for the port
- * if applicable since the common base subsystem property page is not shown
- * To help with this you can use the {@link org.eclipse.rse.ui.widgets.SystemPortPrompt} widget.
- *
- * Returns null by default.
- */
- public PropertyPage getPropertyPage(Composite parent)
- {
- return null;
- }
-
-
- // ----------------------------------
- // METHODS THAT MUST BE OVERRIDDEN...
- // ----------------------------------
-
-
- /**
- * Remote-accessing method, that does nothing by default. Override if filter strings are supported.
- * Resolve an absolute filter string. This is only applicable if the subsystem
- * factory reports true for {@link org.eclipse.rse.core.subsystems.SubSystemConfiguration#supportsFilters()},
- * which is the default. Otherwise, {@link org.eclipse.rse.core.subsystems.SubSystem#getChildren()}
- * is called when the subsystem itself is expanded.
- *
- * When a user expands a filter this method is invoked for each filter string and the - * results are concatenated and displayed to the user. You can affect the post-concatenated - * result by overriding {@link #sortResolvedFilterStringObjects(Object[])} if you desire to - * sort the result, say, or pick our redundancies. - *
- * The resulting objects are displayed in the tree in the Remote System {@link org.eclipse.rse.internal.ui.view.SystemView view}. - * There are two requirements on the returned objects:
- *A good place to start with your remote-resource classes to subclasss {@link org.eclipse.rse.core.subsystems.AbstractResource}, as it - * already implements IAdaptable, and maintains a reference to this owning subsystem, which helps when - * implementing the {@link org.eclipse.rse.ui.view.ISystemRemoteElementAdapter remote-adapter}. - *
- * Be sure to register your adapter factory in your plugin's startup method. - *
- * As per IRunnableWithProgress rules: - *
- * When a user expands a remote resource this method is invoked and the - * results are potentially sorted and displayed to the user. You can affect the sorting - * behaviour by overriding {@link #sortResolvedFilterStringObjects(Object[])} if you desire to - * sort the result, say, or pick our redundancies. This is only called if the parent object's adapter indicated it can have children. - *
- * The resulting objects are displayed in the tree in the Remote System {@link org.eclipse.rse.internal.ui.view.SystemView view}. - * There are two requirements on the returned objects:
- *A good place to start with your remote-resource classes to subclasss {@link org.eclipse.rse.core.subsystems.AbstractResource}, as it - * already implements IAdaptable, and maintains a reference to this owning subsystem, which helps when - * implementing the {@link org.eclipse.rse.ui.view.ISystemRemoteElementAdapter remote-adapter}. - *
- * Be sure to register your adapter factory in your plugin's startup method. - * - *
- * As per IRunnableWithProgress rules: - *