Bug 424059 - RSA not dynamic aware with regards to discovery providers
Summary: RSA not dynamic aware with regards to discovery providers
Status: NEW
Alias: None
Product: ECF
Classification: RT
Component: ecf.remoteserviceadmin (show other bugs)
Version: 3.7.1   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 3.8.2   Edit
Assignee: Markus Kuppe CLA
QA Contact:
URL:
Whiteboard:
Keywords: noteworthy
Depends on: 424060 425761 426374
Blocks:
  Show dependency tree
 
Reported: 2013-12-14 14:20 EST by Markus Kuppe CLA
Modified: 2014-05-09 12:26 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Kuppe CLA 2013-12-14 14:20:45 EST
The current implementation of RSA does not take advantage of newly activated discovery providers. Service endpoints won't be advertised with dynamically started providers.
Comment 1 Markus Kuppe CLA 2013-12-14 14:23:10 EST
https://git.eclipse.org/r/19832
Comment 2 Scott Lewis CLA 2013-12-14 17:20:02 EST
(In reply to Markus Kuppe from comment #1)
> https://git.eclipse.org/r/19832

A couple of questions and comments.

1) With the IServiceInfoFactory registration via DS...means that DS is required by remote service admin.   (serviceInfoFactory.xml).  Is that right?   I don't have any fundamental objections...but it does mean more requirements for ECF RSA.

2) In AbstractTopologyManager there's member variable:

»	private final IServiceInfoFactory serviceInfoFactory = new ServiceInfoFactory();	

This instance binding is probably undesirable...i.e. should probably use either DS or ServiceTracker so that alternative IServiceInfoFactory implementers could be used.  What I was doing previously was setting the priority of ServiceInfoFactory registration to lowest possible...Integer.MIN_INTEGER or something...so that any other IServiceInfoFactory registration would take priority.

3) In the previous code (for accessing the IEndpointDescriptionAdvertiser service) there's doPriveleged block...i.e.

	IEndpointDescriptionAdvertiser advertiser = AccessController		
.doPrivileged(new PrivilegedAction<IEndpointDescriptionAdvertiser>() {		
78	»
Comment 3 Scott Lewis CLA 2013-12-14 17:37:46 EST
(In reply to Scott Lewis from comment #2)
> (In reply to Markus Kuppe from comment #1)


This was accidently sent while in mid-edit for the gerrit review.  The full comments are on the review itself

https://git.eclipse.org/r/19832
Comment 4 Markus Kuppe CLA 2013-12-14 20:37:00 EST
please don't spend anymore time on the review. I have substantially reworked it locally (should have marked it WIP, sorry).
Comment 5 Markus Kuppe CLA 2013-12-18 07:30:54 EST
https://git.eclipse.org/r/19967 supersedes https://git.eclipse.org/r/19832 (please do not approve!!!)
Comment 6 Markus Kuppe CLA 2013-12-18 07:40:16 EST
Dedicated build for this enhancement https://build.ecf-project.org/jenkins/job/C-424059-sdk.feature/ off of branch 424059 (forked from _master_)
Comment 7 Markus Kuppe CLA 2014-01-13 12:06:39 EST
The advertiser part has been taken care of. Next org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionLocator is going to be rewritten to use the whiteboard pattern and to be simplyfied (there is no need to deal with specific IDiscoveryLocators _at all_. EDL can simply register an IServiceListener that is automatically notified).
Comment 8 Markus Kuppe CLA 2014-01-22 08:26:18 EST
First part (IDiscoveryAdvertiser) has been pushed to master [1].

[1] http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/commit/?id=44b7a5ba09f181b83a071a0e7ddbe5ff89b7436d
Comment 9 Scott Lewis CLA 2014-02-25 12:06:00 EST
Has this been completed (and can be resolved) for ECF 3.8.0?  Or should the target be moved to 3.8.1?
Comment 10 Markus Kuppe CLA 2014-02-25 12:12:03 EST
Advertisers done, Locators not yet. Thus moving target to 3.8.1
Comment 11 Scott Lewis CLA 2014-05-09 12:26:46 EDT
Moving to 3.8.2 target as cannot complete for 3.8.1/Luna.