blob: 232273e4019f906c89127a14fd684872c5575386 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<!-- ====================================================================== -->
<!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
<!-- ====================================================================== -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<style type="text/css">@import "stylesheets/base.css";</style>
<meta name="author" value="Apache UIMA Documentation Team">
<meta name="email" value="dev@uima.apache.org">
<title>Apache UIMA - UIMA's Eclipse Update Site</title>
<!-- Begin Cookie Consent plugin by Silktide - https://silktide.com/cookieconsent -->
<!-- Commented out because implied consent is not compatible with GDPR -->
<!--
<script type="text/javascript">
window.cookieconsent_options = {"message":"This website uses cookies to ensure you get the best experience on our website","dismiss":"Got it!","learnMore":"More info","link":"https://uima.apache.org/privacy-policy.html","theme":"dark-bottom"};
</script>
<script type="text/javascript" src="/cookieconsent2/cookieconsent.min.js"></script>
-->
<!-- End Cookie Consent plugin -->
<!-- Begin Google Analytics -->
<!-- Commented out because GA requires consent according to GDPR -->
<!--
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-70846351-1', 'auto');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
</script>
-->
<!-- End Google Analytics -->
</head>
<body>
<div class="topLogos">
<table border="0" width="100%" cellspacing="0">
<!-- TOP IMAGE -->
<tr>
<td align='LEFT'>
<a href="index.html">
<img style="border: 1px solid black;" src="./images/UIMA_banner2tlpTm.png" alt="UIMA project logo" border="0"/>
</a>
</td>
<td align='CENTER'>
<div class="pageBanner">UIMA's Eclipse Update Site</div>
</td>
<td align='RIGHT'>
<a href="https://www.apache.org">
<img src="./images/asf-logo-on-white-smallTm.png" alt="Apache UIMA" border="0"/>
</a>
</td>
</tr>
</table>
<hr noshade="" size="1"/>
</div>
<table border="0" width="100%" cellspacing="4">
<tr>
<td align='RIGHT' colspan="2">
<form method="get" action="https://www.google.com/search">
Search the site
<input type="text" name="q" size="25" maxlength="255" value="" />
<input type="hidden" name="sitesearch" value="https://uima.apache.org/" />
<input name="Search" value="Search Site" type="submit"/>
</form>
</td>
</tr>
<tr> <!-- LEFT SIDE NAVIGATION -->
<td width="20%" valign="top">
<!-- regular menu -->
<div class="navBar">
<br/>
<div class="navBarItem"> <div class="navPartHeading">General</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./index.html">Home</a>
</div>
<div class="navBarItem"> <a href="./downloads.cgi">Downloads</a>
</div>
<div class="navBarItem"> <a href="./documentation.html">Documentation</a>
</div>
<div class="navBarItem"> <a href="./news.html">News</a>
</div>
<div class="navBarItem"> <a href="./publications.html">Publications</a>
</div>
<br style="line-height: .5em"/>
<div class="navBarItem"> <a href="https://issues.apache.org/jira/browse/uima" target="_blank" rel="noopener">Issue tracker <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="https://cwiki.apache.org/confluence/display/UIMA/" target="_blank" rel="noopener">Wiki <img src="images/offsitelink.png"/></a>
</div>
<br style="line-height: .5em"/>
<div class="navBarItem"> <a href="https://cwiki.apache.org/confluence/display/UIMA/Powered+by+Apache+UIMA" target="_blank" rel="noopener">Powered By UIMA <img src="images/offsitelink.png"/></a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Community</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./get-involved.html">Get Involved</a>
</div>
<div class="navBarItem"> <a href="./mail-lists.html">Mailing Lists</a>
</div>
<div class="navBarItem"> <a href="./contribution-policy.html">Contribution Policies</a>
</div>
<div class="navBarItem"> <a href="./faq.html">FAQ</a>
</div>
<div class="navBarItem"> <a href="./project-guidelines.html">Project Guidelines</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Scaleout Frameworks</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./doc-uimaas-what.html">UIMA-AS</a>
</div>
<div class="navBarItem"> <a href="./doc-uimaducc-whatitam.html">UIMA-DUCC</a>
</div>
<div class="navBarItem"> <a href="./doc-uimaducc-demo.html">..Demo Page</a>
</div>
<div class="navBarItem"> <a href="http://uima-ducc-demo.apache.org:42133" target="_blank" rel="noopener">..Demo Live <img src="images/offsitelink.png"/></a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Components & Tools</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./sandbox.html#uima-addons-annotators">Annotators</a>
</div>
<div class="navBarItem"> <a href="./toolsServers.html">Tools & Servers</a>
</div>
<div class="navBarItem"> <a href="./sandbox.html">Addons and Sandbox</a>
</div>
<div class="navBarItem"> <a href="./ruta.html">UIMA Ruta</a>
</div>
<div class="navBarItem"> <a href="./uimafit.html">uimaFIT</a>
</div>
<div class="navBarItem"> <a href="./external-resources.html">External Resources</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Development</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./dev-quick.html">Quick Start: building</a>
</div>
<div class="navBarItem"> <a href="./building-uima.html">Building from Source</a>
</div>
<div class="navBarItem"> <a href="./one-time-setup.html">One-time setups</a>
</div>
<div class="navBarItem"> <a href="./svn.html">Source Code</a>
</div>
<div class="navBarItem"> <a href="./release.html">Doing a UIMA release</a>
</div>
<div class="navBarItem"> <a href="https://www.apache.org/security/committers.html" target="_blank" rel="noopener">Doing a CVE (Apache) <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="./eclipse-update-site.html">Eclipse Update Sites</a>
</div>
<div class="navBarItem"> <a href="./git.html">GIT</a>
</div>
<div class="navBarItem"> <a href="./codeConventions.html">Code Conventions</a>
</div>
<div class="navBarItem"> <a href="./uima-specification.html">UIMA Specification (OASIS)</a>
</div>
<div class="navBarItem"> <a href="./team-list.html">Project Team</a>
</div>
<div class="navBarItem"> <a href="./maven-design.html">Maven Use</a>
</div>
<div class="navBarItem"> <a href="./updating-website.html">Updating this Website</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Events and Conferences</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./coling14.html">COLING 2014</a>
</div>
<div class="navBarItem"> <a href="./gscl13.html">GSCL 2013</a>
</div>
<div class="navBarItem"> <a href="./iks09.html">IKS 2009</a>
</div>
<div class="navBarItem"> <a href="./gscl09.html">GSCL 2009</a>
</div>
<div class="navBarItem"> <a href="./lsm09.html">LSM 2009</a>
</div>
<div class="navBarItem"> <a href="./lrec08.html">LREC 2008</a>
</div>
<div class="navBarItem"> <a href="./gldv07.html">GLDV 2007</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">ASF</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="https://www.apache.org/licenses/" target="_blank" rel="noopener">License <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener">ASF Sponsors <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener">ASF Sponsorship <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="./security_report">Security</a>
</div>
</div>
</div>
</td>
<td width="80%" align="left" valign="top">
<div class="sectionTable">
<table class="sectionTable">
<tr><td>
<a name="UIMA's Eclipse Update Site"><h1><img src="images/UIMA_4sq50tightCropSolid.png"/>&nbsp;UIMA's Eclipse Update Site</h1></a>
</td></tr>
<tr><td>
<blockquote class="sectionBody">
<ul>
<li><a href='#Introduction'>
Introduction
</a></li>
<li><a href='#Information for developers'>
Information for developers
</a></li>
<li><a href='#P2'>
P2
</a></li>
<li><a href='#Composite Update Sites'>
Composite Update Sites
</a></li>
<li><a href='#Layout and Versioning'>
Layout and Versioning
</a></li>
<li><a href='#Releasing an update to the Eclipse Update Site'>
Releasing an update to the Eclipse Update Site
</a></li>
<li><a href='#Lifecycle for development operations'>
Lifecycle for development operations
</a></li>
<li><a href='#Earlier Optimizations (Historical)'>
Earlier Optimizations (Historical)
</a></li>
<li><a href='#Links and References'>
Links and References
</a></li>
</ul>
<table class="subsectionTable">
<tr><td>
<a name="Introduction">
<h2>Introduction
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>
The Apache UIMA&trade; project maintains an Eclipse update site as part
of its prebuilt artifacts. The information on this page is mainly for
developers, and documents how this update site is managed.
</p>
<p>
Over time, the update site ends up containing various Eclipse features
and their plugins, at different "versions". It uses the (evolving) Eclipse standard
mechanisms to install whatever version a user might require.
</p>
<p>
Because of this, the update site itself may keep some of the "older" versions. Every
time a new release is made which includes one or more new versions of some
Eclipse features/plugins, the new artifacts are <em>added</em> to
the set of existing (and perhaps, older versions of) feature and plugins.
</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable">
<tr><td>
<a name="Information for developers">
<h2>Information for developers
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>See these pages <a target="_blank" rel="noopener" href="dev-eclipse-plugin-archiving">for information about archiving</a>
and <a target="_blank" rel="noopener" href="dev-eclipse-plugin-signing">for information about plugin signing</a>.
</p>
<p>The tooling for building and managing the top level composite website is located
<a target="_blank" rel="noopener" href="https://svn.apache.org/repos/asf/uima/build/trunk/uima-eclipse-composite-update-site">here</a>.</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable">
<tr><td>
<a name="P2">
<h2>P2
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>
At some point in the evolution of the Eclipse update site mechanisms,
the "P2" approach for Eclipse update sites was developed, and
became the preferred way to package update sites.
It has some changes (among others):
</p>
<ul>
<li>It adds to the normal metadata about components, the detailed
version and dependency information contained in the manifest of the
OSGi component JARs. This is a finer-grained versioning system in which
version information is associated with Java Packages, in contrast
to the entire contents of a Jar being the entity which is versioned.
<p>Some tooling, such as <a target="_blank" rel="noopener" href="https://eclipse.org/tycho/">https://eclipse.org/tycho/Tycho</a>,
need this finer-grained information
to resolve dependencies.</p></li>
<li>
It continues the previous approach of putting a copy of the metadata
in a separately downloaded file (formerly, the digest.zip). In P2
this is now in 2 files: content.xml
and artifacts.xml (these files are actually made into compressed Jars).
</li>
<li>
The former update site files: site.xml, and digest.zip are no longer needed,
and are no longer provided.
</li>
</ul>
<p>
Some of the UIMA plugin projects now need to have the "high-fidelity" resolution of software
dependencies that comes with the P2 repositories.
</p>
<p>
As of January 2013, we converted to the P2 style of update sites, and
are no longer building the update site for pre-P2 style because P2 support has been
in Eclipse for several years (since mid 2008).
</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable">
<tr><td>
<a name="Composite Update Sites">
<h2>Composite Update Sites
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>
Update sites can be composite. A composite update site
merely includes pointers to other update sites. The installation
procedure combines all of the composite update sites mentioned
in the top level composite description into one, for purposes
of displaying and working with it. We use the composite mechanism
to make maintenance of independently developed features more isolated;
when a new version of a sub-site is developed, updates are
localized to just that sub-site. The composite update site
can also be separately maintained - it needs to change only when
new sub-sites are added.
</p>
<p>Our subsites are designed to be kept in named subfolders of the main update site.</p>
<p>
We currently have sub-sites for
<ul>
<li>uimaj - base Java UIMA SDK tools and runtime
</li>
<li>uima-as - addons for the base tooling to add the deployment descriptor editor, and uima-as runtime</li>
<li>ruta - the features for ruta</li>
</ul>
</p>
<p>The update site looks like:
<pre>
.../uima/eclipse-update-site
/compositeArtifacts.jar
/compositeContent.jar
/uimaj
/artifacts.jar
/content.jar
/features/.... all features
/plugins/.... all plugins
/uima-as
/artifacts.jar
/content.jar
/features/.... all features
/plugins/.... all plugins
/ruta-2.0.1
/artifacts.jar
/content.jar
/features/.... all features
/plugins/.... all plugins
</pre>
In addition to plain files, the jars have checksums and signature files.
</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable">
<tr><td>
<a name="Layout and Versioning">
<h2>Layout and Versioning
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>
The main Eclipse update site (which only has composite pointers to subsites)
is kept with the general UIMA build tooling in
<a target="_blank" rel="noopener" href="https://svn.apache.org/repos/asf/uima/build/trunk/uima-eclipse-composite-update-site">
https://svn.apache.org/repos/asf/uima/build/trunk/uima-eclipse-composite-update-site</a>.
</p>
<p>Feature and Plugin projects associated with particular parts of
the UIMA project (such as the Rule Engine Workbench, or Java Base SDK, etc.),
reside within those major components.</p>
<p>
Each subsite is typically built with its associated component. It is
therefore reasonable to version these together with the component.
So, for example, the UIMA Java SDK, released at version 2.4.0, will have
the plugin and feature projects for it also at 2.4.0.
</p>
<p>
The project in the build tools, uima-eclipse-composite-update-site, is
only rebuilt when a new subsite is added; it has incrementing version
numbers.
</p>
<p>The update-site packaging of released components is released as part of
the underlying release of the components it packages; it doesn't (normally)
have a separate "vote". When doing a component release, the release manager
should build and make available for testing the update (sub) site (and a
new version of the composite update site, if that is being added to).
When the release is accomplished, the release action is then a simple
SVN switch from the dev/ to the release/ spot in the distribution SVN for the
update project's subsite, followed by a commit. This guarantees the signed
artifacts voted on are identical to what's put up for release.
</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable">
<tr><td>
<a name="Releasing an update to the Eclipse Update Site">
<h2>Releasing an update to the Eclipse Update Site
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>To run the build for any of the Eclipse update sites, you must have
maven property variables set to identify an accessible Eclipse
installation (4.2 or later) so the Eclipse packaging tooling and Ant support
can be located. These are typically put into your .m2 setttings.xml
file like this:</p>
<pre>
&lt;uima-maven-build-eclipse-home&gt;C:/x/y/z/eclipse&lt;/uima-maven-build-eclipse-home&gt;
&lt;eclipse-equinox-launcher&gt;
${uima-maven-build-eclipse-home}/plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
&lt;/eclipse-equinox-launcher&gt;
&lt;uima-eclipse-jar-processor&gt;
${uima-maven-build-eclipse-home}/plugins/org.eclipse.equinox.p2.jarprocessor_1.0.200.v20110808-1657.jar
&lt;/uima-eclipse-jar-processor&gt;
</pre>
<p>
The first decision when doing an update is to decide if
you need to add a new sub-update-site to the set managed by the
Composite collection. If so, update buildCompositeRepository.xml
in the build/trunk/uima-eclipse-composite-update-site
to add the sub-site.</p>
<p>
To update a sub-site, go to that subsite's project for its update-site.
For example, for uimaj, this is the project uimaj-eclipse-update-site.
In that project, there is a file under src/main/resources, cagetory.xml,
which has the information for the features in this update site.
</p>
<p>You probably won't need to update this file, unless you're adding
some completely new features. If all you're doing is releasing new
versions of existing features, you can leave this file alone, because
the version information is added during resource filtering based on the
the update site's own POM version.</p>
<p>Any new features must be added to one (or more) categories, for them to be "visible".
If you are changing categories, this is where that is done, also; but that
is probably a rare occurrence.
</p>
<h3>How the update site build works</h3>
<p>
The build process packs (just the) new plugin Jars, and combines these
and the new feature Jars with the existing update site (which
probably has older versions of the features and plugins), and generates
new metadata for the new plugins and appends this to any
existing metadata.
</p>
<ol>
<li>The distribution SVN's .../dev/... spot is updated so that the
part of it which corresponds to the Eclipse update sub site is replaced by
an SVN copy of the .../release/... spot.</li>
<li>The existing subsite is checked out of the (now current) .../dev/... spot in the distribution SVN.</li>
<li>The new features and plugins
are collected using the maven dependency plugin from "official" levels using
maven artifact coordinates</li>
<li>The new plugin jars are packed</li>
<li>New metadata for the features and plugins is generated and appended to the
the existing metadata for the older versions</li>
<li>New catogory information for the features is generated and appended to the
existing category information</li>
<li>The new features and plug jars are checksummed and (if the Apache Release profile is in effect)
signed</li>
<li>The result is left in the target/eclipse-update-site/[subsite] directory of the
update site project.</li>
<li>(Optional) You may want to do an SVN checkin on all the artifacts under
target/eclipse-update-site/[subsite] - they will go into the distribution SVN .../dev/... spot.
If you expect to do a lot of release candidates, you may want to avoid doing this and instead
just copy the results to some other spot for PMC members to check; this is because multiple
releases will take up extra space in the distribution SVN.</li>
</ol>
<p>
If the update consists of just new versions of the the existing features and plugins,
it may not be necessary to update the POM for the update-site generation (other than
to insure its version information is what you want the feature/plugin versions to be).
</p>
<h3>Releasing a new Composite Update Site</h3>
<p>Normally, the composite update site doesn't change. It changes when new sub-sites
are created, usually for new projects having Eclipse components.</p>
<p>To change the Composite site, update the POM to a new version number (it's numbered
like build artifacts, with a simple incrementing integer). Then update the buildCompositeRepository.xml
file at the top level to reflect the changes.</p>
<p>The build is done using the same techniques as the other update site: the dist .../release/... part is
copied to the .../dev/... and that's svn-checked-out. Then the build runs the special ant tasks to generate
the composite Jars from the buildCompositeRepository.xml. If you use the -Papache-release parameter on the mvn
command line, the build will generate the checksums and do the gpg signing of the artifacts. The results
are left in the tartet/eclipse-update-site for this project, ready to be svn-switched back to the dist .../release/...
point and the changes committed.</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable">
<tr><td>
<a name="Lifecycle for development operations">
<h2>Lifecycle for development operations
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>
Plugins are the smallest unit of development. During development, these are rebuilt
and can be launched into a sub-eclipse for debugging as an Eclipse application.
</p>
<p>During development, the goal is quick turn-around, so the m2e capabilities
available in Eclipse 4.2 and later can be used to run tests using the .class
files produced by incremental Eclipse builds of the plugins, without running
Maven builds of the plugin.
</p>
<p>When the developer is finished with debugging the plugin and wants to proceed with
more formal packaging, they can run <code>mvn install</code> to produce
the plugin Jar (and eventually, the pack.gz form of the Jar).
</p>
<p>Feature projects are used to define the Features that include the plugins.</p>
<p>Each major UIMA component (e.g., uimaj, ruta, etc.) defines its own independent
Eclipse update site.</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable">
<tr><td>
<a name="Earlier Optimizations (Historical)">
<h2>Earlier Optimizations (Historical)
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>
The first UIMA Eclipse update sites were optimized by the then-current
approach to optimization. This included 2 special things:
<ul>
<li>"super-duper" packing of the jar files using some new compression
utilities that came with Java 5.</li>
<li>A separate copy of all the metadata needed for initial processing
by the Eclipse update mechanism - put into a compressed "digest.zip".</li>
<p>
See <a target="_blank" rel="noopener" href="https://wiki.eclipse.org/Update_Site_Optimization">https://wiki.eclipse.org/Update_Site_Optimization</a>,
which describes the design goals for this.</p>
<p class="note">But note that the information on this page is now out of date, and has been
superseded by a second version of update site packaging. In fact, the
previously available headless Eclipse application, <em>org.eclipse.update.core.siteOptimizer</em>, is no
longer part of Eclipse releases.
</p>
</ul>
</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable">
<tr><td>
<a name="Links and References">
<h2>Links and References
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>Here are links to more information; there are many (partially) out-of-date
websites which are misleading but these links (as of January, 2013, seem up to date.)</p>
<ul>
<li><a target="_blank" rel="noopener" href="https://wiki.eclipse.org/Equinox/p2/Getting_Started_for_Releng">
https://wiki.eclipse.org/Equinox/p2/Getting_Started_for_Releng</a>
- describes basic concepts</li>
<li><a target="_blank" rel="noopener" href="https://wiki.eclipse.org/Equinox/p2/Publisher">
https://wiki.eclipse.org/Equinox/p2/Publisher</a>
- describes the basic methods and Ant tasks used to create and modify update sites for P2;
includes information on generating the P2 style Category metadata.
</li>
<li><a target="_blank" rel="noopener" href="https://www.slideshare.net/PascalRapicault/understanding-and-extending-p2-for-fun-and-profit">
https://www.slideshare.net/PascalRapicault/understanding-and-extending-p2-for-fun-and-profit</a>
- a general presentation on P2
</li>
<li><a target="_blank" rel="noopener" href="https://wiki.eclipse.org/P2">
https://wiki.eclipse.org/P2</a>
- the main starting page for P2 info on the Eclipse Wiki
</li>
<li><a target="_blank" rel="noopener" href="https://wiki.eclipse.org/Update_Site_Optimization">
https://wiki.eclipse.org/Update_Site_Optimization</a>
- now <em>OUT OF DATE</em> information on how update sites were optimized, before P2
</li>
<li><a target="_blank" rel="noopener" href="https://wiki.eclipse.org/Equinox/p2/Composite_Repositories_(new)">
https://wiki.eclipse.org/Equinox/p2/Composite_Repositories_(new)</a>
- a discussion of Composite Repositories - a top level file structure that aggregates together
other update sites
</li>
<li><a target="_blank" rel="noopener" href="https://wiki.eclipse.org/Equinox/p2/Ant_Tasks">
https://wiki.eclipse.org/Equinox/p2/Ant_Tasks</a>
- Ant tasks for P2, but may be <em>out of date</em> - a good summary of the Ant tasks
we use in the automated build of the update site.
</li>
<li><a target="_blank" rel="noopener" href="https://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fp2_repositorytasks.htm">
https://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fp2_repositorytasks.htm</a>
- a discussion of Ant tasks for P2. These are the versions for the current Eclipse (Juno - 4.2) release.
These are used in our build automation.
</li>
</ul>
</blockquote>
</td></tr>
</table>
</blockquote>
</p>
</td></tr>
</table>
</td>
</tr>
<!-- FOOTER -->
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr><td colspan="2">
<table class="pageFooter">
<tr>
<td><a href="index.html">Home</a></td>
<td><a href="privacy-policy.html">Privacy Policy</a></td>
<td style="font-size:75%">
Copyright &#169; 2006-2013, The Apache Software Foundation.<br/>
Apache UIMA, UIMA, the Apache UIMA logo and the Apache Feather logo are trademarks of The Apache Software Foundation.<br/>
All other marks mentioned may be trademarks or registered trademarks of their respective owners.
</td>
<td><a href="mailto:dev@uima.apache.org">Contact us</a></td>
</tr>
</table>
</td></tr>
</table>
</body>
</html>