[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Product Exporting with Software Update Feature

Hi Bill,

Just for your and other's information...currently, there is a policy in Eclipse/p2 that has the feature version info set to 'exact match'. For example, as you indicate below, in the p2 feature (controlled by the Eclipse platform project), is this

<plugin
        id="org.eclipse.ecf"
        download-size="0"
        install-size="0"
        version="3.1.0.v20100529-0735"
        unpack="false"/>


What this means is that if you use the p2 feature in your own product, it then requires that the ECF bundle versions be an exact match with this version...version="3.1.0.v20100529-0735" i.e. it cannot be a newer/some other version of ECF. That's why the complaint upon building your product...because the ECF version that you had installed/in your target platform was not the same version as the one specified by the p2 feature.


Just for your and other's information, we/ECF are moving toward a slightly more relaxed structure for our feature version matching, so that consumers will be able to use some ECF features (e.g. remote services) in other-than-Eclipse runtime contexts (e.g. on OSGi servers) and be able to more easily/rapidly upgrade their ECF features without running into what you ran into given this exact version match policy. Among other things, this requires that we be very careful with our feature version changes and our feature include structure.

There is a discussion going on the rt-pmc mailing list about the p2 repository policies...e.g. see the following posting by Markus about our intentions WRT relaxing these policies for our own p2 repo generation.

http://dev.eclipse.org/mhonarc/lists/rt-pmc/msg01978.html
For reference, see also Jeff McAffer's response and relevant bugs

http://dev.eclipse.org/mhonarc/lists/rt-pmc/msg01979.html
https://bugs.eclipse.org/bugs/show_bug.cgi?id=309147#c2
https://bugs.eclipse.org/bugs/show_bug.cgi?id=249745


The main reason for ECF to relax this exact version match policy is to make it easier for consumers to get and update ECF features in non-Eclipse contexts...like OSGi servers. Note this relaxation is for the ECF SDK features only, and doesn't imply anything about Eclipse's version range matching policy (or any other project's for that matter). So the p2/Eclipse version matching will likely remain the same at least in the short-term (meaning that if you use/reuse the Eclipse p2 feature for your own product build, it will therefore require that a specific version of the parts of ECF that are included with p2/Eclipse...i.e. ECF core, identity, and filetransfer (as you've found). We/ECF don't have any say in the version matching policy for Eclipse or other projects (even when it's ECF bundles being used), so unfortunately we can't address your difficulty here directly.


So in any event, this little interlude was just for your and everyone's information. If you wish to become involved in the discussion about repo creation policy, version matching policies within and across projects, etc., please see the links below.

Scott



bill reynolds wrote:
Scott,
Thank you for the suggestions. The net is that the "hello world" app
does export as expected when using classic 3.6.0 and no additional
downloading of ECF.
The next step is to package some real ECF functionality. I will let the list
know if there are any issues.
Many thx.
- Bill

1)
Start with a fresh install of Eclipse 3.6.0. Don't install ECF SDK.

Installed eclipse-SDK-3.6-win32

The plug ins folder contains:
 org.eclipse.ecf.filetransfer.source_4.0.0.v20100529-0735.jar
 org.eclipse.ecf.filetransfer_4.0.0.v20100529-0735.jar
 org.eclipse.ecf.identity.source_3.1.0.v20100529-0735.jar
 org.eclipse.ecf.identity_3.1.0.v20100529-0735.jar
 org.eclipse.ecf.provider.filetransfer.httpclient.source_4.0.0.v20100529-0735.jar
 org.eclipse.ecf.provider.filetransfer.httpclient.ssl.source_1.0.0.v20100529-0735.jar
 org.eclipse.ecf.provider.filetransfer.httpclient.ssl_1.0.0.v20100529-0735.jar
 org.eclipse.ecf.provider.filetransfer.httpclient_4.0.0.v20100529-0735.jar
 org.eclipse.ecf.provider.filetransfer.source_3.1.0.v20100529-0735.jar
 org.eclipse.ecf.provider.filetransfer.ssl.source_1.0.0.v20100529-0735.jar
 org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20100529-0735.jar
 org.eclipse.ecf.provider.filetransfer_3.1.0.v20100529-0735.jar
 org.eclipse.ecf.source_3.1.0.v20100529-0735.jar
 org.eclipse.ecf.ssl.source_1.0.0.v20100529-0735.jar
 org.eclipse.ecf.ssl_1.0.0.v20100529-0735.jar
 org.eclipse.ecf_3.1.0.v20100529-0735.jar

The .\eclipse\features\org.eclipse.equinox.p2.user.ui_2.0.0.v20100503-897HFZ-FdHjO2NQo0sD_Nt
feature.xml contains

   <plugin
         id="org.eclipse.ecf"
         download-size="0"
         install-size="0"
         version="3.1.0.v20100529-0735"
         unpack="false"/>

The ECF plug-in versions are all "...v20100529-0735".

2)
Look in the plugins directory and verify that the appropriate
version of that bundle is present.

The .\eclipse\plugins folder contains ECF files "...v20100529-0735".

3) Create a plugin project "app" based on the "RCP Mail" template.

4) Create a product configuration for "app".

5) Create a feature project called "app.feature" which references "app" plugin

6) Add org.eclipse.rcp to the list of included features.

7) Open the product config and change it to a feature based configuration.

8) Add the feature to the product dependency list.

9) Launch the product from the product configuration.

According to http://swtxml.com/blog/eclipsercp/p2_updates_tutorial,
If you have started the product already, please delete the existing run
configuration before launching the product again (the dependencies are applied
to the run configuration only when a new run configuration is created):

10) Add org.eclipse.equinox.p2.user.ui feature to the list of included features
for the "app.feature".

11) Add org.apache.commons.logging as required plug-in to "app.feature".

12) Open the run configuration for the product

13) Go to the Plugins tab

14) Click "Add required plugins" (77 -> 99).

15) Click "Apply".

16) Click "Run".

17) Verify the two additional p2 menu items in the help menu.

18) Close the application.

19) In app.product, click "Eclipse Product Export Wizard".

20) Enter a directory path and click "Finish".

21) Run the result product.

Runs OK
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev