Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Remote Eclipse RCP Management

Revision as of 07:19, 5 August 2008 by Reiswich.gmx.de (Talk | contribs) (CVS)

Introduction

The Remote Eclipse RCP Management project has been started in April 2008 and the first prototype is supposed to be finished in October 2008. Any contribution to this project is welcome.

A brief overview of the project goals:
Prototype Remote Eclipse RCP Management
  • update, install and delete features on a remote RCP application from an admin UI
  • remote administration of either user groups or single user
  • remote administration in headless mode
  • file transfer

How to

The source code of the project is hostet on the Eclipse Communication Framework CVS. If you would like to become a committer please write me an email (reiswich@gmx.de). The main technologies used for this project are Eclipse Communication Framework and Eclipse Update API for managing updates, installs and uninstalls.

CVS

Host: ecf1.osuosl.org
Repository Path: /ecf/remoteprovisioning
User: anonymous
Password: <empty>
Connection method: pserver

From the above mentioned CVS repository checkout the following plugins:

  • org.remotercp.contacts
  • org.remotercp.core
  • org.remotercp.common
  • org.remotercp.ecf
  • org.remotercp.errorhandling
  • org.remotercp.filetransfer.receiver
  • org.remotercp.filetransfer.sender
  • org.remotercp.libs
  • org.remotercp.login
  • org.remotercp.progress
  • org.remotercp.provisioning
  • org.remotercp.provisioning.ui
  • org.remotercp.preferences
  • org.remotercp.preferences.ui
  • org.remotercp.util

Admin UI

To run the admin-UI select in the plugin org.remotercp.core the remotercp.product file and click on the "Overview" tab "Launch an eclipse application.
The admin UI depends on the following plugins:

  • org.remotercp.chat (just for tests needed)
  • org.remotercp.contacts
  • org.remotercp.core
  • org.remotercp.common
  • org.remotercp.ecf
  • org.remotercp.errorhandling
  • org.remotercp.filetransfer.sender
  • org.remotercp.libs
  • org.remotercp.login
  • org.remotercp.progress
  • org.remotercp.preferences
  • org.remotercp.preferences.ui
  • org.remotercp.provisioning.ui
  • org.remotercp.util


By now the admin UI is an own RCP application but it is possible to move it to a perspective that can be easily integrated in own RCP applications.

Client

Login dialog Remote Eclipse RCP Management prototype

To run the client you'll need to create a simple RCP project (like the mail example) and include the following plugins to your run configuration:

  • org.remotercp.common
  • org.remotercp.ecf
  • org.remotercp.errorhandling
  • org.remotercp.filetransfer.receiver
  • org.remotercp.libs
  • org.remotercp.login
  • org.remotercp.preferences
  • org.remotercp.progress
  • org.remotercp.provisioning.update
  • org.remotercp.util

In order to run the client properly you will need to login to an XMPP server. By now the application supports only XMPP connections but as ECF is used it's very easy to extend the support for other connection types. To establish a connection you can add the following code to your ApplicationWorkbenchWindowAdvisor:

* 	public void preWindowOpen() {
*		IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
*		configurer.setInitialSize(new Point(400, 300));
*		configurer.setShowCoolBar(false);
*		configurer.setShowStatusLine(true);
*		configurer.setTitle("RCP Application");
*		
*		// important in order to display progress in file transfer
*		configurer.setShowProgressIndicator(true);
*
*		ChatLoginWizardDialog dialog = new ChatLoginWizardDialog();
*		int open = dialog.open();
*		if (open == Window.OK) {
*			// start remote services
*                     ServiceLauncher.startRemoteServices();
*		}
*	}

Milestones

What is done

  1. prototype UI is developed
  2. roster items are displayed with online/offline status in UI
  3. remote OSGi services on ECF
  4. login functionallity with a login wizard
  5. connection to XMPP server
  6. file transfer
  7. manipulating remote preferences
  8. get a list of installed features on a remote machine
  9. install/update/uninstall operations based on the standalone update API
  10. browse remote update sites and download features/updates

What has to be done

  1. perform installs, updates and unistalles based on Equinox p2 ( 08.07.2008 As it is very difficult to get support for P2 I started to use the Standalone Update API instead of P2 to get the prototype running. As soon as P2 support will be available I will try to switch to Equinox P2)
  2. remote file browsing
  3. security aspects have to be considered and implemented (not part of the prototype yet)

Back to the top