Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 363246

Summary: Update org.eclipse.osgi.services and org.eclipse.osgi.util bundles to cmpn R4.3 release.
Product: [Eclipse Project] Equinox Reporter: John Ross <jwross>
Component: FrameworkAssignee: John Ross <jwross>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: tjwatson
Version: 3.7.1   
Target Milestone: 3.7 M4   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Patch 1
none
Build Script none

Description John Ross CLA 2011-11-08 19:56:27 EST
The org.eclipse.osgi.services and org.eclipse.osgi.util bundles need to be updated for cmpn release r4.3.
Comment 1 John Ross CLA 2011-11-08 20:18:32 EST
Created attachment 206633 [details]
Patch 1

This patch contains the changes from executing the build-cmpn-util.xml ant script. It also contains the script itself, although I'll attach that separately for convenience. The script currently does not update the package imports and exports in the manifests, I did that manually.

In addition to adding support for package version updates, another nice feature might be to automatically detect when new packages have been added and add the corresponding manifest entries. For example, org.osgi.service.component.annotations was added in r4.3.

The wireadmin version was upped to 1.0.1, but I'm not aware of any reason the import can't remain as [1.0,1.1)
Comment 2 John Ross CLA 2011-11-08 20:20:17 EST
Created attachment 206634 [details]
Build Script

The required properties are documented at the top of the script.
Comment 3 BJ Hargrave CLA 2011-11-09 07:02:13 EST
I would like to see the Equinox implementations of the OSGi service specifications to include the package they implement. For example, the DS bundle should contain the org.osgi.service.component package and both export and import the package. This will make the bundles more self sufficient and not require a bundle such as org.eclipse.osgi.services to be present.
Comment 4 Thomas Watson CLA 2011-11-09 09:10:29 EST
(In reply to comment #3)
> I would like to see the Equinox implementations of the OSGi service
> specifications to include the package they implement. For example, the DS
> bundle should contain the org.osgi.service.component package and both export
> and import the package. This will make the bundles more self sufficient and not
> require a bundle such as org.eclipse.osgi.services to be present.

That is bug 264524.
Comment 5 Thomas Watson CLA 2011-11-09 09:14:13 EST
(In reply to comment #1)
> The wireadmin version was upped to 1.0.1, but I'm not aware of any reason the
> import can't remain as [1.0,1.1)

I think it should be updated to be [1.0.1, 1.1).  This because we want to be sure that at least version 1.0.1 is available as an export.  If we leave the floor at 1.0 then there is a chance our export of 1.0.1 could be substituted for 1.0.0.
Comment 6 Thomas Watson CLA 2011-11-09 09:16:34 EST
(In reply to comment #1)
> The script currently does not update the package
> imports and exports in the manifests, I did that manually.

How hard would it be to add this support.  We have had cases where the versions were not updated correctly which ultimately caused much confusion.

> 
> In addition to adding support for package version updates, another nice feature
> might be to automatically detect when new packages have been added and add the
> corresponding manifest entries. For example,
> org.osgi.service.component.annotations was added in r4.3.

Perhaps for subpackages, but I am reluctant to add any new packages to the services bundle.  I would prefer all new APIs simply go in their implementing bundles, if we have any.
Comment 7 John Ross CLA 2011-11-09 09:37:03 EST
(In reply to comment #6)
> How hard would it be to add this support.  We have had cases where the versions
> were not updated correctly which ultimately caused much confusion.

Not too hard, I think. It's just a question of whether this can be done in ant or if we'll need to use python/jython or, perhaps, a call out to a java class.

> Perhaps for subpackages, but I am reluctant to add any new packages to the
> services bundle.  I would prefer all new APIs simply go in their implementing
> bundles, if we have any.

Support for including new subpackages already exists. What would need to be added is adding the new packages as version imports/exports to the manifest.

(In reply to comment #5)
> I think it should be updated to be [1.0.1, 1.1).  This because we want to be
> sure that at least version 1.0.1 is available as an export.  If we leave the
> floor at 1.0 then there is a chance our export of 1.0.1 could be substituted
> for 1.0.0.

Okay, I'll make this update. I just thought the rule was not to explicitly state micro versions on imports unless there was some critical bug fix included. I guess that would be for if you're only importing the package?
Comment 8 Thomas Watson CLA 2011-11-09 09:47:18 EST
(In reply to comment #7)
> 
> Okay, I'll make this update. I just thought the rule was not to explicitly
> state micro versions on imports unless there was some critical bug fix
> included. I guess that would be for if you're only importing the package?

As a general rule you should not use a floor that includes the micro version unless you really care.  For example, a critical bug fix, or in this case we want to ensure the version we provide is not substituted for a lower version.