[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] p2 mirror in Product Builds


The fact that the org.apache.ant is a folder instead of a jar is probably rooted in the usage of the local install as a repository. But still I suspect that there is something else happening since there is normally code to handle this case. Please open a bug report https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Equinox

I'll leave the questions about the scripts generated to Andrew :)

On 2011-03-03, at 3:34 PM, Angers, Sebastien wrote:

Have few questions regarding p2 mirror in Product Builds.
-          Same behavior on Eclipse 3.6.1 and 3.7.0M5

-          Created a new empty workspace (Target Platform is the default Eclipse Running Platform)
-          Created a simple dummy bundle (Bundle B) which only has 1 simple Import-Package: org.apache.tools.ant;resolution:=optional
-          Created a simple dummy product (Product P) which only includes the Bundle B in his list of plugins.
-          Created a copy of /org.eclipse.pde.build/templates/headless-build/build.properties and customized it appropriately (and added p2.gathering=true)
-          Called ${eclipse.pdebuild.scripts}/productBuild/productBuild.xml to build the Product P
-          This created the standard output:
o   buildRepo/
o   features/
o   I.TestBuild/
o   assemble.org.eclipse.pde.build.container.feature.all.xml
o   assemble.org.eclipse.pde.build.container.feature.p2.xml
o   assemble.org.eclipse.pde.build.container.feature.xml
o   final*.properties
o   package.org.eclipse.pde.build.container.feature.all.xml
o   package.org.eclipse.pde.build.container.feature.xml
-          The complete ouput in the buildRepo/plugins contains the following artifacts:
o   org.apache.ant_1.7.1.v20100518-1145 (** folder **)
o   bundle_A_1.0.0.201103031045.jar
o   org.eclipse.equinox.launcher_1.2.0.v20110124-0830.jar
o   org.eclipse.osgi_3.7.0.v20110124-0830.jar
-          My questions/concerns are regarding org.apache.ant artifact.  I understand why it has been mirrored, but my question is regarding the fact that it has been mirrored as a folder.  In fact, it has been mirrored from my Eclipse Install which has it as a folder since it has been “Installed/Provisioned”.  So the build is mirroring an “Installed” artifact to an IU in its original format (folder in this case).  And having folders in a consumable p2 repo could lead to the following issue when mirroring or provisioning thru http:
Installation failed.
       [exec] An error occurred while collecting items to be installed
       [exec]  session context was:(profile="" phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action="">
 [exec]  Artifact osgi.bundle,org.apache.ant,1.7.1.v20100518-1145 is a folder but the repository is an archive or remote location.

-          The mirror step in question is located in the generated assemble.org.eclipse.pde.build.container.feature.p2.xml and looks like this:
                     <slicingOptions includeNonGreedy="false"        />
                     <source location="${p2.build.repo}"             />
                     <sourcelocation="file:/C:/e3.7M5/eclipse/configuration/../p2/org.eclipse.equinox.p2.engine/profileRegistry/EquinoxProvisioningUI.profile/" optional="true" kind="metadata"          />
                     <sourcelocation="file:/C:/e3.7M5/eclipse/configuration/org.eclipse.osgi/bundles/125/data/listener_1925729951/" optional="true"kind="metadata"          />
                     <source location="file:/C:/e3.7M5/eclipse/" optional="true" kind="artifact"       />
                     <sourcelocation="file:/C:/e3.7M5/eclipse/configuration/org.eclipse.osgi/bundles/125/data/listener_1925729951/" optional="true"kind="artifact"          />
                     <source location="file:/C:/e3.7M5/eclipse/p2/org.eclipse.equinox.p2.core/cache/" optional="true"kind="artifact"          />
                     <destination  location="${p2.build.repo}" kind="metadata"            />
       <destination  location="${p2.build.repo}" kind="artifact"            />
                     <iu id="product_P.product" version="1.0.0"             />
-          Note that, if org.apache.ant is included in the list of plugins of Product P, then org.apache.ant will appear as a *jar* in buildRepo/plugins.
Question 1)
-          Should the mirror operation in the build be modified so it always output to a defined target p2 repo format (in this case, jar)?  Or is there a way to do it already? Or is there something that should be done differently?
Question 2)
-          Would it make sense to allow support of all <slicingOptions> in the above p2.mirror task from the build?  That way, the output p2 repo could avoid including optional dependencies (if not wanted).  Currently, it seems to only support includeNonGreedy="false" (hardcoded in /org.eclipse.pde.build/pdebuildsrc/org/eclipse/pde/internal/build/P2ConfigScriptGenerator.java line 303).
Thanks for your suggestions/help!

<Mail Attachment.jpeg>


Le contenu de ce courriel s'adresse au destinataire seulement. Il contient de l'information pouvant être confidentielle. Vous ne devez ni le copier ni l'utiliser ni le divulguer à qui que ce soit à moins que vous soyez le destinataire ou une personne désignée autorisée. Si vous le receviez par erreur, veuillez nous aviser immédiatement et le détruire.


The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.

p2-dev mailing list