Community
Participate
Working Groups
Build Identifier: 20100917-0705 When I export product definition in IDE .eclipseproduct is being generated with correct information. However, after building the same product with Buckminster no file is generated. Reproducible: Always
What is the .eclipseproduct used for?
This http://wiki.eclipse.org/FAQ_What_is_an_Eclipse_product%3F describes function of the file. I suppose I can create file myself, all it has is this information: #Eclipse Product File #Wed Dec 08 15:34:58 EST 2010 version=0.1.0.201012081534 name=iWay Integration Tools id=com.iwaysoftware.integration.tools.product Nevertheless, if this functionality is already available I don't know why it does not work with Buckminster builds. I was researching this issue before and these might be helpful: http://web.archiveorange.com/archive/v/ynhNYRez7Tun6DcTyjdv http://www.javadocexamples.com/java_source/org/eclipse/pde/internal/build/ProductGenerator.java.html
(In reply to comment #2) > Nevertheless, if this functionality is already available I don't know why it > does not work with Buckminster builds. > The reason I ask is that I wonder if this file is a relic from the past or if it's still used. The configuration/config.ini denotes the main application, splashpath, etc. so why do you need the .eclipseproduct? What problems do you see besides the fact that the file itself is missing?
I don't think config.ini includes version for the product installed, at least that's what I see in mine: #This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser #Wed Dec 08 16:51:48 EST 2010 org.eclipse.update.reconcile=false eclipse.p2.profile=iitProfile osgi.framework=file\:plugins/org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar osgi.bundles=reference\:file\:org.eclipse.equinox.simpleconfigurator_1.0.0.v20080604.jar@1\:start org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/bundles.info eclipse.product=com.iwaysoftware.integration.tools.integration_tools osgi.splashPath=platform\:/base/plugins/com.iwaysoftware.integration.tools osgi.framework.extensions= osgi.bundles.defaultStartLevel=4 eclipse.p2.data.area=@config.dir/../p2/ eclipse.application=org.eclipse.ui.ide.workbench I think this is important information to distinguish between products. I see these in helios and galileo eclipse installations: name=Eclipse Platform id=org.eclipse.platform version=3.6.1 There are no problems I am experiencing without having this file at present, but then I don't know if not having it would cause problems if there are multiple products installed.
(In reply to comment #4) > name=Eclipse Platform > id=org.eclipse.platform > version=3.6.1 > Isn't that what you have the about.mappings/about.ini in the branding plug-in for? That way, you will get version information etc. in the about dialog. See http://help.eclipse.org/helios/topic/org.eclipse.platform.doc.isv/reference/misc/about_customization.html > There are no problems I am experiencing without having this file at present, > but then I don't know if not having it would cause problems if there are > multiple products installed. Eclipse allow one product to have multiple applications (config.ini appoints the default one). Having several products on top of that and in the same folder seems a bit redundant, at least to me. I've never encountered a situation where that would make sense and I'm actually not sure if p2 would be able to manage it. Perhaps it would, using separate profiles but where does that info come from? In any case, since you don't seem to have an immediate problem with this and since nobody else have expressed any concerns, I'm lowering the priority to minor. That said, should you provide a patch, then it will of course be considered.
Well, only this comes to mind http://www.youtube.com/watch?v=WWaLxFIVX1s :) Any pointers on where I should start debugging? I guess I need to debug buckminster and p2?
Something I forgot to ask. Does buckminster does something different in generating executables, configurations, etc? I thought it delegates most of the work to underlying system. So, if exporting product produces .eclipseproduct why there is no file after buckminster build?
I just found this bug looking for information on how to create the .eclipseproduct with buckminster. To answer Thomas' question, the file is used for one to determine the default location of the user's private osgi configuration area, which is <home>/.eclipse/<product-id>_<product-version>/configuration and derived from that the private p2 area at <configuration-area>/../p2 I don't know what the default product id is when building a pure RCP product. But when building a product on top of the eclipse platform at least, you'll end up sharing an area with the regular eclipse at org.eclipse.platform_<version>, which is rather murky water to swim in. I don't know if this might actually cause any problems on eclipse's part, because we already use a custom p2 profile which avoids some of the overlap. But it becomes problematic when outside factors like install/update scenarios with an installer framework get involved, where you'd want to delete or change those areas without destroying the user's normal eclipse installation. That said, it's not too hard to create my own .eclipseproduct during the build, so I think the minor priority is fine.
Adding this to the build is not trivial. Buckminster relies on the p2 publisher and it has no trace of this. In PDE, ant-scripts are executed prior to calling the publisher to ensure that the a build.properties file of the feature that represents the product contains correct root.xxx properties and one of them is the generated .eclipseproduct file. It's values are picked from the branding plug-in. One might hope that this situation is improved in the new p2 publisher (currently in incubation).
Thanks for explanations Carsten, Thomas, In the end that's what I ended up doing - creating .eclipseproduct myself.