Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Equinox/p2/Browsable Repository Index

< Equinox‎ | p2
Revision as of 09:12, 23 August 2011 by Remysuen.ca.ibm.com (Talk | contribs)

What exactly is inside a particular p2 repository? Wasn't it nice when we were able to point our web browser to an Eclipse update site and instantly see what's in it? Like with this one.

Has it ever bugged you since that this is not possible anymore with p2 repositories? Like with this one.

I've spent some time (with the help of Dave Carver) to add the generation of a similar HTML outline to the new CDO build system. See our resulting p2 repository:

P2Listing.png

I'd like to encourage you to provide something similar for your public p2 repository. I just added this Ant markup at the end of the site.p2 generation target:

<echo message="Creating human readable index.html" />
<unzip src="${site.p2.dir}/content.jar" dest="${site.p2.dir}" />
<xslt style="web/P2Content.xsl" in="${site.p2.dir}/content.xml" out="${site.p2.dir}/index.html" />
<delete file="${site.p2.dir}/content.xml" />

The P2Content.xsl looks like:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" omit-xml-declaration="yes" indent="yes"/>
  <xsl:strip-space elements="*"/>
 
  <xsl:template match="/">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <xsl:apply-templates select="repository"/>
    </html>
  </xsl:template>
 
  <xsl:template match="repository">
    <head>
      <title>
        <xsl:value-of select="@name"/>
      </title>
    </head>
    <body>
      <h1>
        <xsl:value-of select="@name"/>
      </h1>
      <p>
        <em>For information about installing or updating software, see the
          <a
            href="http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-124.htm">
            Eclipse Platform Help</a>.
          <br/> Some plugins require third party drivers from
          <a href="http://net4j.sourceforge.net/update/">Net4j and CDO Plus</a>. </em>
 
      </p>
      <table border="0">
        <tr>
          <td colspan="2">
            <hr/>
            <h2>Features</h2>
          </td>
        </tr>
        <xsl:apply-templates select="//provided[@namespace='org.eclipse.update.feature']">
          <xsl:sort select="@name"/>
        </xsl:apply-templates>
        <tr>
          <td colspan="2">
            <hr/>
            <h2>Plugins</h2>
          </td>
        </tr>
        <xsl:apply-templates select="//provided[@namespace='osgi.bundle']">
          <xsl:sort select="@name"/>
        </xsl:apply-templates>
      </table>
    </body>
  </xsl:template>
 
  <xsl:template match="provided">
    <tr>
      <td>
        <xsl:value-of select="@name"/>
      </td>
      <td>
        <xsl:value-of select="@version"/>
      </td>
    </tr>
  </xsl:template>
 
</xsl:stylesheet>

Original article: What exactly is inside that p2 repository? (by Eike Stepper)

Back to the top