Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 243439 - [plug-in registry] able to connect to an external Eclipse instance, instead of only current instance
Summary: [plug-in registry] able to connect to an external Eclipse instance, instead o...
Status: RESOLVED WORKSFORME
Alias: None
Product: PDE
Classification: Eclipse Project
Component: Incubators (show other bugs)
Version: 3.5   Edit
Hardware: PC Windows XP
: P3 normal with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: PDE-Incubator-Inbox CLA
QA Contact:
URL:
Whiteboard: stalebug
Keywords:
Depends on: 243441 274980 274982 277648 284086
Blocks:
  Show dependency tree
 
Reported: 2008-08-07 11:41 EDT by Jacek Pospychala CLA
Modified: 2019-09-02 15:09 EDT (History)
6 users (show)

See Also:


Attachments
first shot (40.12 KB, patch)
2009-01-07 06:55 EST, Jacek Pospychala CLA
no flags Details | Diff
patch (87.22 KB, patch)
2009-02-16 07:55 EST, Jacek Pospychala CLA
no flags Details | Diff
updated patch (97.68 KB, patch)
2009-05-26 11:51 EDT, Jacek Pospychala CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jacek Pospychala CLA 2008-08-07 11:41:34 EDT
Awesome Plug-in Registry view should be able to serve it's delicious content not only for currently running Eclipse instance, but also for e.g. Target runtime configured in Target Platform preference, or even an self-hosted Eclipse.:)

This will enable easy extension points, plugins and services browsing and make Eclipse much more transparent!
Comment 1 Chris Aniszczyk CLA 2008-08-07 11:43:38 EDT
There should be many ways to connect to an instance btw

One option is to use the JMX stuff in the Equinox incubator to connect to an instance... 
Comment 2 Jacek Pospychala CLA 2008-08-07 11:51:43 EDT
yea, JMX or ECF stuff as well. so model should make no assumptions about connection layer
Comment 3 Jacek Pospychala CLA 2009-01-07 06:55:24 EST
Created attachment 121793 [details]
first shot

First shot at remote contents in Plug-in registry view.
With this patch, Plug-in registry connects to Eclipse instance over socket, gets  data in xml-like format, keeps responsive to OSGi events.

It should be fairly easy to implement other protocols (JMX, ECF) by implementing RegistryBackend interface.

Chris: how about a small switch in Eclipse Application launch configuration, that would enable main Eclipse instance to show Plug-in registry contents for self-hosted instance? Sounds good?

Other way to use this new feature would be a "Connect" option in registry view, however I'm not sure about exposing it.
Comment 4 Jacek Pospychala CLA 2009-02-16 07:55:03 EST
Created attachment 125779 [details]
patch

updated. it's not ready yet for commit.

Updated unit tests to be sure that remote and local models are exactly the same.
Next step: make some exemplary use of Registry View remote connect.
Comment 5 Chris Aniszczyk CLA 2009-03-30 13:21:01 EDT
we can look at using remote osgi in ECF to enable this ;)
Comment 6 Scott Lewis CLA 2009-04-24 16:36:41 EDT
FWIW, the work that I've done in this area has/was based upon the ECF remote services API...which, in turn, we are using to implement the osgi RFC 119 spec (remote osgi as zx says).

So I guess what I'm saying is that ECF could provide a transport-independent remoting solution either way you wish to do it...either using the ECF remote services API directly or using the new distributed osgi remoting spec (which is, in fact, implemented via the ECF remote services API).

Also...since I have already done a fair amount with both the PDE registry view and with showing data from a remote framework, I might be able to help out with some other aspects of things here...for example, there are some changes to the current PDE registry view that I would suggest to support easily replacing a local model with remote model...e.g. to avoid making blocking remote calls with UI thread.

Comment 7 Jacek Pospychala CLA 2009-04-25 10:20:53 EDT
yes Scott, ecf is on our radar. However first approach is to have a solution that will easily fit into SDK, ie. to allow viewing selfhosted Eclipse instances in the view with no extra dependencies. For this purpose we looked at JUnit, how it communicates with child JVMs and chosen plain socket API.
At the same time we plan to have an easily extensible mechanism to allow other communication protocols to allow clients with whatever interfaces they have (ECF r-osgi, ECF other protocols, JMX).
For that purpose plug-in registry already has (for 3.5) a quite simple factory mechanism that should not limit any protocol impls - it's asynchronious and does not impose other requirements. Wojciech in his GSOC project is going to revise this model and implement some cool protocols, so for sure he'll be happy to hear your suggestions.

btw. what work did you do with registry view? We'd love to improve the view to be more consumable :-)
Comment 8 Scott Lewis CLA 2009-04-25 10:49:51 EDT
(In reply to comment #7)
> yes Scott, ecf is on our radar. However first approach is to have a solution
> that will easily fit into SDK, ie. to allow viewing selfhosted Eclipse
> instances in the view with no extra dependencies. For this purpose we looked at
> JUnit, how it communicates with child JVMs and chosen plain socket API.

But, as you know this is completely one-off...that is, no alternative transports can be easily introduced.

I understand the desire to have minimal dependencies, but the SDK already has a dependency on part of ECF. 


> At the same time we plan to have an easily extensible mechanism to allow other
> communication protocols to allow clients with whatever interfaces they have
> (ECF r-osgi, ECF other protocols, JMX).

But such an extensible mechanism/API is approaching ECF's implementation of OSGi remote services...

> For that purpose plug-in registry already has (for 3.5) a quite simple factory
> mechanism that should not limit any protocol impls - it's asynchronious and
> does not impose other requirements. Wojciech in his GSOC project is going to
> revise this model and implement some cool protocols, so for sure he'll be happy
> to hear your suggestions.
> 
> btw. what work did you do with registry view? We'd love to improve the view to
> be more consumable :-)

I used the PDE registry view to show a remote framework's bundles/services/extension points...i.e. all the usual contents for the registry view...but from a remote framework.

With remote it's desirable to have some notion of refresh (as listeners to changes in a remote framework's changes isn't very decoupled) and so I introduced that...as well as some other things.  
Comment 9 Mike Wilson CLA 2009-05-05 10:25:51 EDT
Changing Version tag to something more believable.
Comment 10 Wojciech Galanciak CLA 2009-05-19 21:14:49 EDT
	
I added some new information to gsoc project wiki http://wiki.eclipse.org/OSGi_Remote_Management_Tool about Socket communication.
Comment 11 Scott Lewis CLA 2009-05-19 21:35:50 EDT
(In reply to comment #10)
> I added some new information to gsoc project wiki
> http://wiki.eclipse.org/OSGi_Remote_Management_Tool about Socket communication.
> 

I believe it's a mistake to create a new/custom socket protocol for this project...as inevitably people will want or require something that allows substitute transports to be used.  

Further, with the ECF RFC119 impl and remote services this can/could be addressed in a completely generic way with less work and more inter-project collaboration.



Comment 12 Jacek Pospychala CLA 2009-05-25 05:20:45 EDT
(In reply to comment #11)
> > http://wiki.eclipse.org/OSGi_Remote_Management_Tool about Socket communication.
> > 
> 
> I believe it's a mistake to create a new/custom socket protocol for this
> project...as inevitably people will want or require something that allows
> substitute transports to be used.  

Scott, wiki update was mainly to sort out our knowledge on current plug-in registry view internals and the patch here. We were heading for sockets since it's already implemented a lot and was easier to Wojciech to learn. But it's not the only - basically I'd love to have all of them implemented.

I've added section with various protocol impls to wiki: http://wiki.eclipse.org/OSGi_Remote_Management_Tool#Possible_protocol_implementations
Could you update it, specially sections about ECF? Thanks
Comment 13 Jacek Pospychala CLA 2009-05-26 11:51:21 EDT
Created attachment 137179 [details]
updated patch

-to compile cleanly in head,
-improving unit tests to simplify other protocols impl.

As a next step would be good to split sockets impl and tests to two separate patches/bugs.
Comment 14 Jacek Pospychala CLA 2009-07-07 09:28:33 EDT
fyi, I have copied org.eclipse.pde.runtime from HEAD to pde-incubator/osgimonitoring/plugins/org.eclipse.pde.runtime
Comment 15 Wojciech Galanciak CLA 2009-08-18 10:09:51 EDT
There're two demos of first implementation of monitoring and managing remote applications using plugin registry view.
First shows how to connect with remote applicaiton (or local in other JVM):

http://www.szymonnowacki.pl/wojtek/connect.htm

The second one shows how to use self-hosting mode in plugin registry view:

http://www.szymonnowacki.pl/wojtek/selfhosting.htm

Comment 16 Jacek Pospychala CLA 2009-08-19 11:55:13 EDT
Marked last two attachment obsolete - due to recent Wojciech works in dependent bugs.
Comment 17 Eclipse Genie CLA 2019-01-17 11:32:45 EST
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.
Comment 18 Lars Vogel CLA 2019-09-02 15:02:28 EDT
This bug was marked as stalebug a while ago. Marking as worksforme.

If this report is still relevant for the current release, please reopen and remove the stalebug whiteboard tag.
Comment 19 Lars Vogel CLA 2019-09-02 15:09:32 EDT
This bug has been marked as stalebug a while ago without any further interaction.

If this report is still relevant for the current release, please reopen and remove the stalebug whiteboard flag.