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

Difference between revisions of "Remote Eclipse RCP Management"

(New page: = 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 on this...)
 
(Introduction)
Line 1: Line 1:
 
= Introduction =
 
= 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 on this project is appreciated.
 
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 on this project is appreciated.
 
 
<br>
 
<br>
 
A brief overview of the project goals: [[Image:Remote_rcp_management.png|right|thumb|Prototype Remote Eclipse RCP Management]]
 
A brief overview of the project goals: [[Image:Remote_rcp_management.png|right|thumb|Prototype Remote Eclipse RCP Management]]
Line 10: Line 9:
  
 
== How to ==
 
== How to ==
The source code of the project is hostet on the [http://www.eclipse.org/ecf/ Eclipse Communication Framework] CVS. If you would like to become a committer or to check the project out please wirte me an email (reiswich@gmx.de). The main technologies used for this project are Eclipse Communication Framework and the new Equinox P2 technologies for managing updates, installs ind uninstalls in Eclipse 3.4.
+
The source code of the project is hostet on the [http://www.eclipse.org/ecf/ Eclipse Communication Framework] CVS. If you would like to become a committer or to check the project out please wirte me an email (reiswich@gmx.de). The main technologies used for this project are Eclipse Communication Framework and Equinox P2 for managing updates, installs ind uninstalls in Eclipse 3.4.
  
 
Get the prototype running.
 
Get the prototype running.
Line 56: Line 55:
 
* org.remotercp.util
 
* org.remotercp.util
  
In order to run the client properly you will need to login to an XMPP server. Therefore you can add the following code to your ApplicationWorkbenchWindowAdvisor:
+
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() {
 
  * public void preWindowOpen() {
 
  * IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
 
  * IWorkbenchWindowConfigurer configurer = getWindowConfigurer();

Revision as of 07:30, 20 June 2008

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 on this project is appreciated.

A brief overview of the project goals:
File:Remote rcp management.png
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 or to check the project out please wirte me an email (reiswich@gmx.de). The main technologies used for this project are Eclipse Communication Framework and Equinox P2 for managing updates, installs ind uninstalls in Eclipse 3.4.

Get the prototype running.
1. From the above mentioned CVS repository download from the folder remoteprovisioning the following plugins:

  • org.remotercp.chat
  • org.remotercp.contacts
  • org.remotercp.core
  • 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.update
  • org.remotercp.util

2. 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.ecf
  • org.remotercp.errorhandling
  • org.remotercp.filetransfer.sender
  • org.remotercp.libs
  • org.remotercp.login
  • org.remotercp.progress
  • org.remotercp.provisioning
  • org.remotercp.util


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

3. 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.ecf
  • org.remotercp.errorhandling
  • org.remotercp.filetransfer.receiver
  • org.remotercp.libs
  • org.remotercp.login
  • 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(Display
*				.getCurrent().getActiveShell(), new ChatLoginWizard());
*		int open = dialog.open();
*		if (open == Window.OK) {
*			// do nothing or something
*		}
*	}


The next workaround I'm doing in order to start some bundles is in the postWindowOpen() method:

* 	public void postWindowOpen() {
*
*		Bundle updateBundle = Platform
*				.getBundle("org.remotercp.provisioning.update");
*
*		if (updateBundle != null) {
*			try {
*				updateBundle.start(Bundle.START_TRANSIENT);
*			} catch (BundleException e) {
*				e.printStackTrace();
*			}
*		}
*
*		Bundle filetransferBundle = Platform
*				.getBundle("org.remotercp.filetransfer.receiver");
*		if (filetransferBundle != null) {
*			try {
*				filetransferBundle.start(Bundle.START_TRANSIENT);
* 			} catch (BundleException e) {
*				e.printStackTrace();
*			}
*		}
*	}
*

Back to the top