<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sonatype Blog &#187; OSGi</title>
	<atom:link href="http://www.sonatype.com/people/tag/osgi/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sonatype.com/people</link>
	<description>Sonatype is transforming software development with tools, information and services that enable organizations to build better software, faster, using open-source components.</description>
	<lastBuildDate>Wed, 23 May 2012 14:24:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Sonatype&#039;s coming to a city near you</title>
		<link>http://www.sonatype.com/people/2010/06/sonatypes-coming-to-a-city-near-you/</link>
		<comments>http://www.sonatype.com/people/2010/06/sonatypes-coming-to-a-city-near-you/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 13:30:21 +0000</pubDate>
		<dc:creator>hloney</dc:creator>
				<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[DemoCamp]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[JavaOne]]></category>
		<category><![CDATA[JavaZone]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[OSGi]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=5642</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/06/sonatypes-coming-to-a-city-near-you/' addthis:title='Sonatype&#039;s coming to a city near you '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Thanks again to all of the attendees and participants at the Sonatype and Eclipse Maven Meetup and DemoCamp last week.  It was a great event, and the Sonatype team is looking forward to the next Maven Meeetup.  There are some exciting events coming up in the next few months that Sonatype will be attending.  Keep [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/06/sonatypes-coming-to-a-city-near-you/' addthis:title='Sonatype&#039;s coming to a city near you '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p><!--dzoneZ=none--><a href="http://www.sonatype.com/people/wp-content/uploads/2008/11/sonatype-logo.png"><img class="alignright size-full wp-image-804" style="margin: 3px;" title="sonatype-logo" src="http://www.sonatype.com/people/wp-content/uploads/2008/11/sonatype-logo.png" alt="" width="203" height="63" /></a>Thanks again to all of the attendees and participants at the Sonatype and Eclipse Maven Meetup and DemoCamp last week.  It was a great event, and the Sonatype team is looking forward to the next Maven Meeetup.  There are some exciting <a href="http://sonatype.com/events/events.html" target="_blank">events coming up</a> in the next few months that Sonatype will be attending.  Keep reading to see the tentative schedule.  Hopefully we will be at an event near you.</p>

<p><strong>Upcoming events:</strong></p>

<p>Eclipse DemoCamp &#8211; Toronto, Ontario &#8211; June 29, 2010</p>

<p>JavaZone – Oslo, Norway – September 8-9, 2010</p>

<p>JavaOne – San Francisco – September 19-23, 2010</p>

<p>OSGI  Community event – London, U.K – September 29-30, 2010</p>

<p>NewYork JavaSIG Meetup – New York – October 2010</p>

<p>Eclipse Summit Europe – Ludwigsburg, Germany – November 2010</p>

<p>Eclipse Day Paris – Paris – November 2010</p>

<p><strong>Have your say &#8211; Take part in our poll below:</strong></p>

<script src="http://static.polldaddy.com/p/3372392.js" type="text/javascript"></script>

<noscript>
<a href="http://polldaddy.com/poll/3372392/">Where would you like Sonatype&#8217;s next Maven Meeup to be?</a><span style="font-size:9px;"><a href="http://polldaddy.com/features-surveys/">Market Research</a></span>
</noscript>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2010/06/sonatypes-coming-to-a-city-near-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discuss the Future of Maven in Philadelphia</title>
		<link>http://www.sonatype.com/people/2010/04/discuss-the-future-of-maven-in-philadelphia/</link>
		<comments>http://www.sonatype.com/people/2010/04/discuss-the-future-of-maven-in-philadelphia/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 13:41:16 +0000</pubDate>
		<dc:creator>hloney</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[Philadelphia]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[Tycho]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=4824</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/04/discuss-the-future-of-maven-in-philadelphia/' addthis:title='Discuss the Future of Maven in Philadelphia '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>April 7, 2010 Sonatype is hosting a Maven Meetup in downtown Philadelphia ahead of Emerging Technology for the Enterprise.  Take part in presentations given by the developers who are building the Maven software you will be using in the future.  Registration is filling up fast, there are only a few seats left.  Learn about Apache [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/04/discuss-the-future-of-maven-in-philadelphia/' addthis:title='Discuss the Future of Maven in Philadelphia '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p><!--dzoneZ=none--><a href="http://www.sonatype.com/people/wp-content/uploads/2010/03/SMM-flyer.jpg"><img class="alignright size-medium wp-image-4602" title="SMM flyer" src="http://www.sonatype.com/people/wp-content/uploads/2010/03/SMM-flyer-200x300.jpg" alt="" width="200" height="300" /></a>April 7, 2010 Sonatype is hosting a Maven Meetup in downtown Philadelphia ahead of <a href="http://phillyemergingtech.com/" target="_blank">Emerging Technology for the Enterprise</a>.  Take part in presentations given by the developers who are building the Maven software you will be using in the future.  Registration is filling up fast, there are only a few seats left.  Learn about Apache Maven, Hudson, Nexus, Sonar, Felix, OSGi, Tycho, Selenium, and more.  Visit <a href="www.sonatype.com/meetup2010" target="_blank">www.sonatype.com/meetup2010</a> for more information about presentations and registration.</p>

<p><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><strong><span style="font-size: medium;">
</span> Maven Meetup
April 7, 2010
8:00 AM – 5:00 PM
Sheraton Society Hill (downtown)
Philadephia, PA</strong></span></p>

<p>Choose from a range of sessions presented by the Maven developers.  Sessions will include:</p>

<ul>
    <li>Maven in the Enterprise</li>
    <li>Git, JGit &amp; EGit</li>
    <li>OSGi Runtimes<span style="font-family: Calibri,Verdana,Helvetica,Arial;"><strong></strong></span></li>
    <li>OSGi Provisioning with P2<span style="font-family: Calibri,Verdana,Helvetica,Arial;"><strong></strong></span></li>
    <li>Nexus<span style="font-family: Calibri,Verdana,Helvetica,Arial;"><strong></strong></span></li>
    <li>Moving from Plexus to Guice<span style="font-family: Calibri,Verdana,Helvetica,Arial;"><strong></strong></span></li>
    <li>Hudson<span style="font-family: Calibri,Verdana,Helvetica,Arial;"><strong></strong></span></li>
    <li>Tycho: Enterprise OSGI Builds<span style="font-family: Calibri,Verdana,Helvetica,Arial;"><strong></strong></span></li>
    <li>m2eclipse<span style="font-family: Calibri,Verdana,Helvetica,Arial;"><strong></strong></span></li>
    <li>Selenium<span style="font-family: Calibri,Verdana,Helvetica,Arial;"><strong></strong></span></li>
    <li>Peaberry</li>
    <li>Nexus &amp; OSGi</li>
</ul>

<p><span id="more-4824"></span></p>

<p>Join us for an interactive BoF session at the end of the day, followed by a reception where you&#8217;ll get to spend time in casual discussions.</p>

<p><span style="font-family: Arial Black;"><strong>
<span style="color: #0000fd;"><em>20% Discount </em></span></strong></span></p>

<p><span style="font-family: Calibri,Verdana,Helvetica,Arial;">Register by Monday April 5th and receive a 20% discount on the  the $190 standard registration rate. Visit <a href="www.sonatype.com/meetup2010" target="_blank"><span style="color: #0000fd;"><span style="text-decoration: underline;">www.sonatype.com/meetup2010</span></span></a> to register or for more information. Register using the code PJUG20 to  receive your discount.
</span></p>

<p><span style="color: #0000fd;"><span style="font-family: Arial Black;"><strong><em>Bring a Colleague for Free </em></strong></span></span></p>

<p><span style="font-family: Calibri,Verdana,Helvetica,Arial;">Register one attendee by Monday April 5th at the $190 standard  registration rate, and have a colleague join you at no charge. Visit <a href="www.sonatype.com/meetup2010" target="_blank"><span style="color: #0000fd;"><span style="text-decoration: underline;">www.sonatype.com/meetup2010</span></span></a> to register  or for more information. When you register, add “+1” after your name to  receive the special promotion pricing for you and a friend. </span></p>

<p><span style="font-family: Calibri,Verdana,Helvetica,Arial;">
</span><span style="font-size: large;"><span style="font-family: Arial Black;"><strong>Seating is limited</strong></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2010/04/discuss-the-future-of-maven-in-philadelphia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache Maven Meetup Next Week!</title>
		<link>http://www.sonatype.com/people/2010/03/apache-maven-meetup-next-week/</link>
		<comments>http://www.sonatype.com/people/2010/03/apache-maven-meetup-next-week/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 14:52:50 +0000</pubDate>
		<dc:creator>hloney</dc:creator>
				<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[peaberry]]></category>
		<category><![CDATA[Tycho]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=4786</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/03/apache-maven-meetup-next-week/' addthis:title='Apache Maven Meetup Next Week! '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>It&#8217;s not too late to register for the Sonatype Maven Meetup taking place on April 7, 2010 ahead of Emerging Technologies for the Enterprise in Philadelphia.  Meet with Maven aficionados, sit in on presentations about Maven 3, Tycho, OSGi, Peaberry, and much more. Choose from a dozen different sessions throughout the day, presented by the [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/03/apache-maven-meetup-next-week/' addthis:title='Apache Maven Meetup Next Week! '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p><!--dzoneZ=none--><a href="http://www.sonatype.com/people/wp-content/uploads/2010/03/SMM-flyer.jpg"><img class="alignright size-medium wp-image-4602" title="SMM flyer" src="http://www.sonatype.com/people/wp-content/uploads/2010/03/SMM-flyer-200x300.jpg" alt="" width="200" height="300" /></a>It&#8217;s not too late to register for the Sonatype Maven Meetup taking place on April 7, 2010 ahead of Emerging Technologies for the Enterprise in Philadelphia.  Meet with Maven aficionados, sit in on presentations about Maven 3, Tycho, OSGi, Peaberry, and much more.</p>

<p>Choose from a dozen different sessions throughout the day, presented by the developers who are building the Maven software you&#8217;ll be using in the future.  Join us for an interactive BoF session at the end of the day, followed by a reception.</p>

<p><strong>Special Promotion &#8212; Bring a Friend for Free</strong></p>

<p>Register one attendee at the $190 standard registration rate, and have a friend join you at no charge.</p>

<p>Visit <a href="http://www.sonatype.com/meetup2010" target="_blank">www.sonatype.com/meetup2010</a> to register or for more information.  When you register, add &#8220;+1&#8243; after your name to receive the special promotion pricing for you and a friend.</p>

<p><strong><span style="font-family: Arial Black;"><span style="color: #0000ff;"><em> </em></span></span></strong></p>

<p><strong>Seating is limited</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2010/03/apache-maven-meetup-next-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven Tips and Tricks: Creating an OSGi Project with Maven</title>
		<link>http://www.sonatype.com/people/2009/09/maven-tips-and-tricks-creating-an-osgi-project-with-maven/</link>
		<comments>http://www.sonatype.com/people/2009/09/maven-tips-and-tricks-creating-an-osgi-project-with-maven/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 21:10:32 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[pax]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=2940</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/09/maven-tips-and-tricks-creating-an-osgi-project-with-maven/' addthis:title='Maven Tips and Tricks: Creating an OSGi Project with Maven '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>This post is a quick start guide to using the Maven PAX plugin to create OSGi project and start an OSGi runtime environment (Apache Felix). First, use the Maven Pax Plugin from OPS4J, and call the create-project goal. The following command-line will create a multi-module project with a groupId of org.sonatype.mhandbook, an artifactId of osgi-project, [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/09/maven-tips-and-tricks-creating-an-osgi-project-with-maven/' addthis:title='Maven Tips and Tricks: Creating an OSGi Project with Maven '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p>This post is a quick start guide to using the Maven PAX plugin to create OSGi project and start an OSGi runtime environment (Apache Felix).   First, use the Maven Pax Plugin from OPS4J, and call the create-project goal. The following command-line will create a multi-module project with a groupId of org.sonatype.mhandbook, an artifactId of osgi-project, and a version of 1.0-SNAPSHOT:</p>

<pre>~/examples/osgi $ mvn org.ops4j:maven-pax-plugin:create-project \
  -DgroupId=org.sonatype.mhandbook \
  -DartifactId=osgi-project \
  -Dversion=1.0-SNAPSHOT
[INFO] Scanning for projects...
[INFO] artifact org.ops4j:maven-pax-plugin: checking for updates from central
[INFO] Building Maven Default Project
[INFO]    task-segment: [org.ops4j:maven-pax-plugin:create-project] (aggregator
-style)
[INFO] [pax:create-project]
[INFO] Selecting latest archetype release within version range [1,2)
[INFO] artifact org.ops4j.pax.construct:maven-archetype-osgi-project: checking
for updates from central
[INFO] Using following parameters for creating Archetype: maven-archetype-osgi-
project:1.0.3
[INFO] Parameter: packageName, Value: org.sonatype.mhandbook.osgi-project
[INFO] Parameter: archetypeVersion, Value: 1.0.3
[INFO] Parameter: groupId, Value: org.sonatype.mhandbook
[INFO] Parameter: archetypeArtifactId, Value: maven-archetype-osgi-project
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: archetypeGroupId, Value: org.ops4j.pax.construct
[INFO] Parameter: basedir, Value: ~/examples/osgi
[INFO] Parameter: package, Value: org.sonatype.mhandbook.osgi-project
[INFO] Parameter: artifactId, Value: osgi-project
[INFO] ********************* End of debug info from resources from generated POM
[INFO] Archetype created in dir: ~/examples/osgi/osgi-project</pre>

<p>Once you&#8217;ve generated an OSGi project using the Pax Plugin, you will have the following directory structure:</p>

<p><span id="more-2940"></span></p>

<p><img class="aligncenter" title="Project Structure Created by the OPS4J Pax Plugin" src="http://www.sonatype.com/books/mhandbook/reference/figs/web/osgi_osgi-project-filesystems.png" alt="" width="450" height="350" /></p>

<p>If you want to verify that you can build the project successfully, run mvn clean install:</p>

<pre>~/examples/osgi/osgi-project $ mvn clean install
[INFO] Reactor build order:
[INFO]   org.sonatype.mhandbook.osgi-project (OSGi project)
[INFO]   osgi-project - plugin configuration
[INFO]   osgi-project - wrapper instructions
[INFO]   osgi-project - bundle instructions
[INFO]   osgi-project - imported bundles
[INFO] ------------------------------------------------------------------------
[INFO] Building org.sonatype.mhandbook.osgi-project (OSGi project)
[INFO]    task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean]
[INFO] [site:attach-descriptor]
[INFO] [install:install]
[INFO] Installing ~/examples/osgi/osgi-project/target/pom-transformed.
xml to ~/.m2/repository/org/sonatype/mhandbook/osgi-project/1.0-SNAPS
HOT/osgi-project-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Building osgi-project - plugin configuration
[INFO]    task-segment: [clean, install]
...</pre>

<p>Instead of executing these goals manually, you can also download and install the Pax-Construct scripts which can be used to automate the process of creating a new OSGi project with the Pax plugin. For more information, see the Pax Construct Quickstart page.</p>

<p>The generated multi-module project structure contains a parent project with the supplied groupId, artifactId, and version, and a few submodules:</p>

<ul>
    <li><strong>osgi-project/pom.xml</strong>
This is the parent POM</li>
    <li><strong>osgi-project/poms/compiled/pom.xml</strong>
This POM serves as the parent POM to all of the compiled OSGi components you will add to this osgi-project Maven project.</li>
    <li><strong>osgi-project/poms/wrappers/pom.xml</strong>
If you can&#8217;t find a particular library as an OSGi component, the Pax Construct tools allow you to wrap an existing dependency artifact into an OSGi bundle. The configuration for these wrapped bundles is stored in this POM.</li>
    <li><strong>osgi-project/provision/pom.xml</strong>
This POM configures the Apache Felix runtime environment that you can start by running the pax:provision goal. If you need to import a bundle into your runtime environment, this is the POM that contains a reference to the corresponding Maven dependency.</li>
</ul>

<p>To start the Apache Felix container, run mvn install pax:provision from the osgi-project/  directory: </p>

<pre>~/examples/osgi/osgi-project $ mvn install pax:provision
[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO]   org.sonatype.mhandbook.osgi-project (OSGi project)
[INFO]   osgi-project - plugin configuration
[INFO]   osgi-project - wrapper instructions
[INFO]   osgi-project - bundle instructions
[INFO]   osgi-project - imported bundles
...
[INFO] [pax:provision]
[INFO] ~~~~~~~~~~~~~~~~~~~
[INFO]  No bundles found!
[INFO] ~~~~~~~~~~~~~~~~~~~
    ______  ________  __  __
   / __  / /  __   / / / / /
  /  ___/ /  __   / _\ \ _/
 /  /    /  / /  / / _\ \
/__/    /__/ /__/ /_/ /_/
Pax Runner (1.0.0) from OPS4J - http://www.ops4j.org
----------------------------------------------------
 -> Using config [classpath:META-INF/runner.properties]
 -> Using only arguments from command line
 -> Scan bundles from [~/examples/osgi/osgi-project/runner/deploy-pom.xml]
 -> Scan bundles from [scan-pom:file:/~/examples/osgi/osgi-project/runner/deplo
y-pom.xml]
 -> Preparing framework [Felix 1.8.0]
 -> Downloading bundles...
 -> Using execution environment [J2SE-1.5]
 -> Runner has successfully finished his job!
Welcome to Felix.
=================
-> </pre>

<p>When you started up Felix, notice that the line directly following the execution of the pax:provision goal says &#8220;No bundles found!&#8221;. By running pax:provision, you&#8217;ve started the Felix OSGi service platform. Felix uses the configuration from a properties file and then scans two deploy-pom.xml files for bundles that it should download and install. Finding none, it presents a simple prompt and awaits orders. At this point, we have an empty container that isn&#8217;t running any custom logic or downloading any OSGi bundles. </p>

<p>Once you have the console for Felix loaded, you can control the platform, load components from remote repositories, list all of the running components, and start and stop components. Try executing the command help to see a list of available commands: </p>

<pre>-> help
bundlelevel <level> <id> ... | <id> - set or get bundle start level.
cd [<base-URL>]                     - change or display base URL.
exports <id> ...                    - list exported packages.
headers [<id> ...]                  - display bundle header properties.
help                                - display impl commands.
imports <id> ...                    - list imported packages.
install <url> [<url> ...]           - install bundle(s).
ps [-l | -s | -u]                   - list installed bundles.
refresh [<id> ...]                  - refresh packages.
requirers <id> ...                  - list requiring bundles.
requires <id> ...                   - list required bundles.
resolve [<id> ...]                  - attempt to resolve the specified bundles.
scr help                            - Declarative Services Runtime
services [-u] [-a] [<id> ...]       - list registered or used services.
shutdown                            - shutdown framework.
start [-t] <id> [<id> <url> ...]    - start bundle(s).
startlevel [<level>]                - get or set framework start level.
stop [-t] <id> [<id> ...]           - stop bundle(s).
uninstall <id> [<id> ...]           - uninstall bundle(s).
update <id> [<url>]                 - update bundle.
version                             - display version of framework.</pre>

<p>If you execute the ps command, you can see a list of bundles with IDs that are running in the Felix container. You can start and stop bundles by running start and stop followed by the ID of the specific bundle you want to control. You can also install and uninstall bundles in the running container.</p>

<p>For more information, read the <a href="http://www.sonatype.com/books/mhandbook/reference/sect-osgi-generate-project.html">OSGi chapter in the Maven Handbook</a>, it will walk you through the process of creating a new OSGi project and importing OSGi bundles into an OSGi container.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2009/09/maven-tips-and-tricks-creating-an-osgi-project-with-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to OSGi with Pax, Maven, and Nexus Professional</title>
		<link>http://www.sonatype.com/people/2009/07/introduction-to-osgi-with-pax-maven-and-nexus-professional/</link>
		<comments>http://www.sonatype.com/people/2009/07/introduction-to-osgi-with-pax-maven-and-nexus-professional/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 15:34:31 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[pax]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=2634</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/07/introduction-to-osgi-with-pax-maven-and-nexus-professional/' addthis:title='Introduction to OSGi with Pax, Maven, and Nexus Professional '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>We&#8217;ve released a pre-alpha version of the Maven Cookbook which contains a chapter on OSGi development with Maven via the Pax plugin from OPS4J. This chapter contains a series of recipes which will walk you through the process of creating an OSGi project, importing bundles from both a Maven repository and existing OSGi Bundle Repositories [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/07/introduction-to-osgi-with-pax-maven-and-nexus-professional/' addthis:title='Introduction to OSGi with Pax, Maven, and Nexus Professional '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p>We&#8217;ve released a pre-alpha version of the Maven Cookbook which contains a chapter on OSGi development with Maven via the Pax plugin from OPS4J.   This chapter contains a series of recipes which will walk you through the process of creating an OSGi project, importing bundles from both a Maven repository and existing OSGi Bundle Repositories (OBR), and executing an OSGi runtime environment all with the help of the Maven Pax Plugin.   The last few chapters provide a road map for developers interested in hosting and combining multiple Maven and OBR repositories into a single repository group with Nexus.</p>

<p>To read the pre-alpha, version 0.1.1 release of the Maven Cookbook, you can:</p>

<ul>
   <li><a href="http://tr.im/tc3l">Read the Maven Cookbook on Scribd</a></li>
   <li><a href="http://www.sonatype.com/books/mcookbook/reference/">Read the Cookbook Online</a></li>
   <li><a href="http://www.sonatype.com/maven/documentation/download-cookbook?file=books/maven-cookbook.pdf">Download a PDF of the Maven Cookbook</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2009/07/introduction-to-osgi-with-pax-maven-and-nexus-professional/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus Pro: Support for OSGi Bundle Repositories (OBRs)</title>
		<link>http://www.sonatype.com/people/2009/07/nexus-pro-support-for-osgi-bundle-repositories/</link>
		<comments>http://www.sonatype.com/people/2009/07/nexus-pro-support-for-osgi-bundle-repositories/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 17:49:16 +0000</pubDate>
		<dc:creator>Stuart McCulloch</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[nexus pro]]></category>
		<category><![CDATA[Sonatype]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=2383</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/07/nexus-pro-support-for-osgi-bundle-repositories/' addthis:title='Nexus Pro: Support for OSGi Bundle Repositories (OBRs) '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Over the last month or so I have been working on adding OSGi Bundle Repository (OBR) support to Nexus Professional, and I am happy to announce this feature will be available in the 1.3.5 release. But what exactly is OBR and why should you care? OBR has been around since 2006, it defines a small [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/07/nexus-pro-support-for-osgi-bundle-repositories/' addthis:title='Nexus Pro: Support for OSGi Bundle Repositories (OBRs) '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p style="text-align: justify;">Over the last month or so I have been working on adding OSGi Bundle Repository (<a title="OSGi Bundle Repository" href="http://www.osgi.org/blog/2006/04/bundle-repository.html" target="_blank">OBR</a>) support to Nexus Professional, and I am happy to announce this feature will be available in the 1.3.5 release. But what exactly <strong>is</strong> OBR and why should you care?</p>

<p style="text-align: justify;">OBR has been around since 2006, it defines a small XML schema and Java API that allows clients to discover and deploy OSGi bundles by matching capabilities with requirements. Distributors provide XML describing their bundles, and this is used by OBR service implementations running on OSGi frameworks. Management clients talk to their local OBR service using the Java API.</p>

<p><span id="more-2383"></span></p>

<h2 style="text-align: justify;">Example</h2>

<p style="text-align: justify;">Here&#8217;s a concrete example, the Apache Felix project has XML describing their bundle releases:</p>

<p style="padding-left: 30px; text-align: justify;"><a title="OBR of Apache Felix releases" href="http://felix.apache.org/obr/releases.xml" target="_blank">http://felix.apache.org/obr/releases.xml</a></p>

<p style="text-align: justify;">They also provide an OBR service implementation that works on any R4 OSGi framework:</p>

<pre style="padding-left: 30px; text-align: justify;">&lt;dependency&gt;
  &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
  &lt;artifactId&gt;org.apache.felix.bundlerepository&lt;/artifactId&gt;
  &lt;version&gt;1.4.0&lt;/version&gt;
&lt;/dependency&gt;</pre>

<p style="text-align: justify;">Let&#8217;s see OBR in action!</p>

<ol style="text-align: justify;">
    <li>Go to <a title="Apache Felix Downloads" href="http://felix.apache.org/site/downloads.cgi" target="_blank">http://felix.apache.org/site/downloads.cgi</a> and download the 1.8.0 distribution</li>
    <li>Extract Felix 1.8.0 to a local temporary directory</li>
    <li><code>cd felix-1.8.0</code></li>
    <li><code>java -jar bin/felix.jar</code></li>
</ol>

<p style="text-align: justify;">You should see the Felix command shell, type <em>obr</em> to see the available OBR commands:</p>

<pre style="padding-left: 30px; text-align: justify;"> Welcome to Felix.
 =================
 -&gt; obr
 obr help [add-url | remove-url | list-url | list | info | deploy | start | source | javadoc]
 obr add-url [&lt;repository-file-url&gt; ...]
 obr refresh-url [&lt;repository-file-url&gt; ...]
 obr remove-url [&lt;repository-file-url&gt; ...]
 obr list-url
 obr list [-v] [&lt;string&gt; ...]
 obr info &lt;bundle-name&gt;|&lt;bundle-symbolic-name&gt;|&lt;bundle-id&gt;[;&lt;version&gt;] ...
 obr deploy &lt;bundle-name&gt;|&lt;bundle-symbolic-name&gt;|&lt;bundle-id&gt;[;&lt;version&gt;] ...
 obr start &lt;bundle-name&gt;|&lt;bundle-symbolic-name&gt;|&lt;bundle-id&gt;[;&lt;version&gt;] ...
 obr source [-x] &lt;local-dir&gt; &lt;bundle-name&gt;[;&lt;version&gt;] ...
 obr javadoc [-x] &lt;local-dir&gt; &lt;bundle-name&gt;[;&lt;version&gt;] ...</pre>

<p style="text-align: justify;">This service is pre-configured to use the Felix OBR, to see a list of released bundles type:</p>

<pre style="padding-left: 30px; text-align: justify;"> -&gt; obr list
 Apache Felix Bundle Repository (1.2.1, ...)
 Apache Felix Configuration Admin Service (1.0.4, ...)
 Apache Felix Declarative Services (1.0.8, ...)
 Apache Felix EventAdmin (1.0.0)
 Apache Felix File Install (1.2.0, ...)
 Apache Felix HTTP Service Jetty (1.0.1, ...)
 Apache Felix iPOJO (1.2.0, ...)
 Apache Felix iPOJO (0.8.0)
 Apache Felix iPOJO Arch Command (1.2.0, ...)
 Apache Felix iPOJO Composite (1.2.0)
 Apache Felix iPOJO Composite (1.0.0, ...)
 Apache Felix iPOJO Event Admin Handler (1.2.0, ...)
 Apache Felix iPOJO Extender Pattern Handler (1.2.0)
 Apache Felix iPOJO Extender Pattern Handler (1.0.0, ...)
 Apache Felix iPOJO JMX Handler (1.2.0, ...)
 Apache Felix iPOJO Temporal Service Dependency Handler (1.2.0, ...)
 Apache Felix iPOJO White Board Pattern Handler (1.2.0, ...)
 Apache Felix Log Service (1.0.0)
 Apache Felix Metatype Service (1.0.2, ...)
 Apache Felix Prefrences Service (1.0.2)
 Apache Felix Remote Shell (1.0.2)
 Apache Felix Shell Service (1.0.2, ...)
 Apache Felix Shell TUI (1.0.2, ...)
 Apache Felix UPnP Base Driver (0.8.0)
 Apache Felix UPnP Extra (0.4.0)
 Apache Felix UPnP Tester (0.4.0)
 Apache Felix Web Management Console (1.2.10, ...)
 OSGi OBR Service API (1.0.0)
 OSGi R4 Compendium Bundle (4.0.0)
 Servlet 2.1 API (1.0.0)
 -&gt;</pre>

<p style="text-align: justify;">Say we&#8217;re interested in the Felix Web Management Console, to deploy and start this bundle type:</p>

<pre style="padding-left: 30px; text-align: justify;"> -&gt; obr start 'Apache Felix Web Management Console'
 Target resource(s):
 ------------------–
    Apache Felix Web Management Console (1.2.10)
 Required resource(s):
 --------------------–
    Apache Felix HTTP Service Jetty (1.0.1)
    OSGi R4 Compendium Bundle (4.0.0)
    Apache Felix Log Service (1.0.0)
    Apache Felix Declarative Services (1.0.8)
 Deploying...org.mortbay.log:Logging to org.mortbay.log via org.apache.felix.http.jetty.LogServiceLog
 org.mortbay.log:Init SecureRandom.
 done.
 -&gt;</pre>

<p style="text-align: justify;">Notice the OBR service was able to deduce we needed other bundles to successfully run the Web Management Console, and it automatically deployed and started them as well. To prove that the Web Console is now up and running, go to <a title="Apache Felix Web Console" href="http://localhost:8080/system/console/" target="_blank">http://localhost:8080/system/console/</a> and log on using <em>admin</em> as both the user-id and password.</p>

<div class="mceTemp" style="text-align: justify;"><dl id="attachment_2518" class="wp-caption alignleft" style="width: 977px;"> <dt class="wp-caption-dt"><img class="size-full wp-image-2518 " title="felix_web_console" src="http://www.sonatype.com/people/wp-content/uploads/2009/07/felix_web_console.png" alt="Apache Felix Web Management Console" width="967" /></dt> <dd class="wp-caption-dd">Apache Felix Web Management Console</dd> </dl></div>

<h2 style="text-align: justify;">Nexus Pro</h2>

<p style="text-align: justify;">That should have given you a taste of OBR, but how does this relate to Nexus Professional?</p>

<p style="text-align: justify;">Well with Nexus Pro 1.3.5 you will be able to:</p>

<ol style="text-align: justify;">
    <li> dynamically generate OBR metadata for your existing repositories</li>
    <li>proxy and cache remote OBRs, including both metadata and bundles</li>
    <li>host local OBRs and deploy bundles into them using the UI or Maven</li>
    <li>group all of the above types of OBRs into a single merged OBR</li>
    <li>apply CRUD privileges to control access to particular bundles</li>
</ol>

<p style="text-align: justify;">Basically the same things you can do with Maven and P2 repositories you can now do with OBR!</p>

<p style="text-align: justify;">This <a title="Nexus Professional OBR demonstration" href="http://www.sonatype.com/people/wp-content/uploads/2009/07/nexus_obr_demo.swf" target="_blank">screencast</a> shows how you can quickly build up and use OBR metadata using Nexus Professional 1.3.5. We have also been able to reconstruct the OSGi Alliance <a title="OSGi Alliance Bundle Repository" href="http://www.osgi.org/Repository/HomePage" target="_blank">repository</a> in a matter of minutes by proxying known public sites and grouping them into a single OBR.</p>

<h2 style="text-align: justify;">Future</h2>

<p style="text-align: justify;">What does the future hold for OBR? Well although it&#8217;s existed as a draft specification since 2006, it has not yet been formally standardized by the OSGi Alliance. Since then alternative approaches have appeared, such as <a title="P2 support in Nexus Professional" href="http://www.sonatype.com/people/2009/04/nexus-pro-support-for-eclipse-p2-repositories/" target="_blank">P2</a>. The OSGi Alliance have therefore decided to revisit the original requirements and see where OBR can be improved, given what we know now about deploying large applications in OSGi.</p>

<p style="text-align: justify;">So the final OBR specification might vary from the current draft, but if you use Nexus Professional to manage and generate your OBR metadata this shouldn&#8217;t bother you. The repository abstraction in Nexus makes it very easy to add support for new metadata formats, which means we will be able to support both the old and new formats as required.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2009/07/nexus-pro-support-for-osgi-bundle-repositories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven: Integration and Distributed, Open Innovation</title>
		<link>http://www.sonatype.com/people/2009/05/maven-integration-and-distributed-open-innovation/</link>
		<comments>http://www.sonatype.com/people/2009/05/maven-integration-and-distributed-open-innovation/#comments</comments>
		<pubDate>Fri, 08 May 2009 13:08:49 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=2161</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/05/maven-integration-and-distributed-open-innovation/' addthis:title='Maven: Integration and Distributed, Open Innovation '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Brian Murphy wrote a long blog post about the PAX Plugin which provides a good example of the power of Maven to act as an integration &#8220;bridge&#8221; between a number of unrelated technologies. In this post, Brian is using the PAX Maven Plugin from ops4j together with the gmaven-plugin and the maven-scala-plugin, he concludes with [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/05/maven-integration-and-distributed-open-innovation/' addthis:title='Maven: Integration and Distributed, Open Innovation '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Brian Murphy wrote a <a href="http://tr.im/kP9w">long blog post about the PAX Plugin</a> which provides a good example of the power of Maven to act as an integration &#8220;bridge&#8221; between a number of unrelated technologies.   In this post, Brian is using the <a href="http://tr.im/kPcB">PAX Maven Plugin</a> from ops4j together with the <a href="http://groovy.codehaus.org/GMaven">gmaven-plugin</a> and the <a href="http://tr.im/kPbE">maven-scala-plugin</a>, he concludes with praise for Maven as an essential time saver:</p>

<blockquote>&#8220;This ended up being a much longer article than I anticipated but we&#8217;ve covered a lot of ground. Maven has worked it&#8217;s dependency voodoo which saved an enormous amount of time downloading jars and messing with classpaths. We&#8217;ve seen how the PAX toolkit from OPS4J makes creating, modifying and provisioning OSGi bundles a breeze. While the actual code examples were pretty trivial, we successfully managed to code up bundles in Java, Scala and Groovy. I think this displays a lot of the power that is offered by OSGi and points to a bright future for enterprise development on the JVM.&#8221;</blockquote>

<p><span id="more-2161"></span></p>

<h3>Project-driven Plugins: Distributed, Open Innovation</h3>

<p>In this case Maven is bridging a number of popular projects that have all created well-documented Maven plugins.    Maven is the essential &#8220;glue&#8221; that allows someone like Brian to take a number of unrelated technologies and use them in ways that the designers of GMaven or the Scala plugin could never have predicted.   As Maven matures and continues to evolve its Plugin API, we&#8217;re starting to see more projects and more systems commit to using it as an enabling &#8220;platform&#8221; for development.  Those projects that have adopted Maven have found it beneficial to host and drive the Maven plugins that relate to their project or technology.  <strong>Better support for Maven increases the adoption of Groovy, Scala, and (in this case) OSGi.</strong></p>

<p>The PAX plugin is maintained and hosted by the Ops4J project, the Scala plugin is hosted and maintained by the Scala community, and the GMaven plugin is hosted and maintained by the Groovy community.  Each community feels strongly enough about providing Maven support for their technology that they have made it a part of their project.   This is important because it suggests an evolving approach to the way Maven plugins are created and supported.   Four years ago, it was unlikely to see a project like Scala or Ops4J creating and hosting a Maven plugin.  While Maven was already ubiquitous, projects still didn&#8217;t see Maven support as a primary concern.  Instead, the plugin development would happen as part of the Maven community or in an ancillary community of Maven plugins known as the Mojo project at Codehaus.</p>

<p>Mojo is an important bridge.  It allows third-party actors to craft support for tools like JBoss and GWT, but it is an aggregate, disjoint community with a single mailing list, perfunctory release votes, and little shared discussion about architecture or planning.   It is a free-for-all.  While Mojo does host some essential plugins it is also a dumping grounds for half-finished, owner-less plugins.   As more projects provide their own Maven support, people should consider moving project from Mojo to the projects that develop the specific technologies in question.   This is the &#8220;distributed&#8221; open innovation that will encourage quality, well-documented plugins.</p>

<h3>Why Companies and Projects Need to &#8220;Own&#8221; Their Maven Support</h3>

<p>We&#8217;ve transitioned into a point where projects need to start hosting and owning the Maven plugins that enable developers to use their software.   Google would have been better off if they had invested a day or two crafting a solid Maven plugin for AppEngine before they announced Java support.   Similarly, they should think about driving the development of the GWT plugin.   If your project&#8217;s artifacts are available through the Central Maven repository, that is a first step, but if your project also publishes an artifact and a really compelling Maven plugin, you&#8217;ve made it trivial and easy for people to adopt your technology.   &#8220;Going to market&#8221; without good Maven support no longer makes sense, and you should know that more and more developers are start with the question &#8220;how does this fit into my Maven build?&#8221;  If your answer is &#8220;shrug, we don&#8217;t use Maven&#8221;, it is very likely that they will seek out other solutions that provide better integration.</p>

<p>If you are a tool vendor or create an open source framework, you should be hosting your own Maven plugin as a part of your project.   If you support an SCM like Perforce or Clearcase, you should make sure that your software provides a solid SCM provider for Maven.  If your company or project develops a server, you should be working with the Maven project to make sure that it integrates with Maven.   To do otherwise is to invite your customers or users to look elsewhere for better integration.    If you let someone else drive your Maven plugin, you are really just delegating an essential support function to the community.   The message you are sending is, &#8220;we don&#8217;t really care that you use Maven, it isn&#8217;t a priority, someone will do the integration work for us&#8221;.   This is true, but when that happens, you lose an opportunity to interact with your users and your customers.</p>

<p>PS: Brian&#8217;s post also inspired me to file <a href="https://issues.sonatype.org/browse/MVNDEF-96">this JIRA issue on the MVNDEF book project</a>.   Our book&#8217;s need code examples that can be more easily copied to the clipboard.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2009/05/maven-integration-and-distributed-open-innovation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Future of Maven &amp; OSGi: Join the Tycho Users Mailing List!</title>
		<link>http://www.sonatype.com/people/2009/03/the-future-of-maven-osgi-join-the-tycho-users-mailing-list/</link>
		<comments>http://www.sonatype.com/people/2009/03/the-future-of-maven-osgi-join-the-tycho-users-mailing-list/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 17:21:05 +0000</pubDate>
		<dc:creator>Jason van Zyl</dc:creator>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[Tycho]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=1728</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/03/the-future-of-maven-osgi-join-the-tycho-users-mailing-list/' addthis:title='The Future of Maven &#38; OSGi: Join the Tycho Users Mailing List! '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>From the very beginning we positioned Tycho as the tool for doing Eclipse/OSGi development with Maven. Even though Tycho originally focused on build automation, we think it is time to extend its functionality, as well as integrating it with other projects, to support the full Eclipse/OSGi application development lifecycle. Below is a preliminary list of [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/03/the-future-of-maven-osgi-join-the-tycho-users-mailing-list/' addthis:title='The Future of Maven &amp; OSGi: Join the Tycho Users Mailing List! '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p><img src="http://www.sonatype.com/people/wp-content/uploads/2009/03/tycho-logo1.png" alt="tycho-logo1" title="tycho-logo1" width="150" height="147" class="alignright size-full wp-image-1734" />From the very beginning we positioned <a href="http://docs.codehaus.org/display/M2ECLIPSE/Tycho+project+overview">Tycho</a> as the tool for doing Eclipse/OSGi development with Maven. Even though Tycho originally focused on build automation, we think it is time to extend its functionality, as well as integrating it with other projects, to support the full Eclipse/OSGi application development lifecycle.</p>

<p>Below is a preliminary list of key features we want to implement. We want to know if it looks useful, or if we&#8217;re totally off base. What other features and improvements are needed to make Tycho a turnkey solution for Eclipse/OSGi development?</p>

<h3>Target platform management</h3>

<ul>
<li>In addition to Maven, support Eclipse/P2 repositories.</li>
<li>Seamless roundtrip between local and remote artifact repositories. We need to easily consume and publish artifacts to remote Eclipse/P2 repositories. For us this would be building with Tycho, deploying to a Nexus/P2 repository, and then consuming from that Nexus/P2 repository using Tycho, the Eclipse Update Manager or any P2 client</li>
<li>Allow implicit and partially defined target platform specifications.</li>
<li>Reusable target platform specification.</li>
<li>Run tests against multiple target platforms, possibly in different runtime environments.</li>
</ul>

<p><span id="more-1728"></span></p>

<p>There a couple more things to mention about target platforms.   First, we believe it is important to allow a fully reproducible target platform construction, i.e. the specification should have enough detail to recreate the exact same target platform regardless of the content of artifact repositories or state of the local environment.   Second, we believe it is also very important to be able to reuse a target platform specification either to define custom Eclipse distributions or RCP applications. When we develop m2eclipse extensions, we want to use the same target platform as m2eclipse and then layer new features on top of that target platform.</p>

<h3>IDE support for Tycho projects</h3>

<ul>
<li>Import Tycho projects as PDE projects in Eclipse.</li>
<li>PDE target platform management.</li>
</ul>

<h3>Publish build results</h3>

<ul>
<li>Publish Eclipse/P2 repositories and/or Eclipse Update Sites.</li>
<li>Combine build results with pre-existing artifacts to create custom Eclipse distributions or RCP applications.</li>
</ul>

<p>The idea is to make build results immediately usable by QA team or for production use.</p>

<h3>P2 repository management</h3>

<ul>
<li>Proxy, group, filter and control access to P2 repositories.</li>
<li>Staging, procurement and other advanced repository manager features.</li>
</ul>

<p>These are as useful for P2 as they are for Maven repositories. We&#8217;ve been using Nexus and local P2 proxy for m2eclipse development and testing this for a few months now. It saves lots of time and bandwidth for us and works more reliably as well.</p>

<p>We have setup a dedicated <a href="mailto:tycho-users-subscribe@lists.sonatype.com">tycho-users mailing list</a> which you can subscribe to in order to participate in the discussions.</p>

<p>Sonatype will be having a Maven Meetup on March 19th and 20th in our offices in Mountain View where we will be talking about our Eclipse/OSGi tooling. Sonatype will also be talking about this Eclipse/OSGi toolchain at the <a href="http://www.phillyemergingtech.com">Philly Emerging Tech Conference</a> and finally Sonatype will be participating in the OSGi Tooling Summit being hosted by Peter Kriens of the OSGi alliance. We hope to present solutions for a lot of the current impedance mismatch between Maven and OSGi. I strongly encourage anyone interested in the future of Maven &amp; OSGi to join the <a href="mailto:tycho-users-subscribe@lists.sonatype.com">Tycho users mailing list</a> and get involved!</p>

<p><b>PHOTO CREDIT:</b> NASA, Solar Eclipse from Moon</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2009/03/the-future-of-maven-osgi-join-the-tycho-users-mailing-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview with Rich Seddon on m2eclipse Testing</title>
		<link>http://www.sonatype.com/people/2009/02/interview-with-rich-seddon-on-m2eclipse-testing/</link>
		<comments>http://www.sonatype.com/people/2009/02/interview-with-rich-seddon-on-m2eclipse-testing/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 13:00:55 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[m2eclipse]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=1628</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/02/interview-with-rich-seddon-on-m2eclipse-testing/' addthis:title='Interview with Rich Seddon on m2eclipse Testing '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>In a previous post entitled m2e Roadmap, Jason discussed Sonatype&#8217;s commitment to quality and testing for m2eclipse. As a follow-up, I did a quick interview with Rich Seddon and asked him some questions about Sonatype&#8217;s approach to testing for Eclipse plugins. The interview is approximately five minutes long and in this interview, you&#8217;ll here Rich [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2009/02/interview-with-rich-seddon-on-m2eclipse-testing/' addthis:title='Interview with Rich Seddon on m2eclipse Testing '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p>In a previous post entitled <a href="http://www.sonatype.com/people/2009/01/m2e-roadmap/">m2e Roadmap</a>, Jason discussed Sonatype&#8217;s commitment to quality and testing for m2eclipse.    As a follow-up, I did a quick interview with Rich Seddon and asked him some questions about Sonatype&#8217;s approach to testing for Eclipse plugins.     The interview is approximately five minutes long and in this interview, you&#8217;ll here Rich give some detailed descriptions of the tools he uses to test the m2eclipse plugin.</p>

<p>[media id=1 width=320 height=70]
<span id="more-1628"></span>
INTERVIEW TRANSCRIPT</p>

<p><b>Tim O’Brien:</b>  So, Rich could you introduce yourself?</p>

<p><b>Rich Seddon:</b>  Yeah, my name is Rich Seddon and I’ve been brought on at Sonatype for the purpose of producing a set of automated tests for the M2 Eclipse Product and the reason for doing this is that there’s a lot of performance improvements and bugs that we want to fix. But if we don’t have the automated test in place we won’t know if we’re breaking things. And it’s got to be automated because of the number of platforms that we support and the number of operating systems that we run on is very large and the manual testing process is really much, much more than a small company can possibly handle.</p>

<p><b>TO:</b>  So, can you give me a sense of what’s the difference between what you do and something like a basic  JUnit test.</p>

<p><b>RS:</b>  Well, what I’m actually doing here is a full set of system tests for M2 eclipse so I actually in the test harness bring up the M2 eclipse on various platforms and drive the UI through a set of scenarios and verify along the way that no errors have occurred and that the state of the UI is as expected and the state of the project under test is as expected&#8230;.you might say that what I’m doing is trying to capture, in an automated fashion, the types of usage that our users will actually go through from day to day.</p>

<p><b>TO:</b>  What kind of tools are you using for this?</p>

<p><b>RS:</b>    Right now I’m using uumm; I’m kind of using Hybrid approach. There are sort of two approaches to doing eclipse UI I testing. One of them is to drive it with a sort of UI robot where the robot pushes buttons and manipulates trees and things like that. And the other approach is sort of a white box testing approach where you bring up in a regular old unit test, eclipse, and you drive eclipse at the API level to the unit test.   Both of these tests have their advantages and disadvantages.</p>

<p>The reason that I got attracted to this position is that, in the last few years, it seems there’s been a few sort of hybrid approaches come along one of them is called SWT POD (sp?)    PPTP by eclipse and then there was Abbott.  Then there’s a commercial company, Instantiations has a product called “Window Tester”.  And these allow you to do both kinds of testing, UI Robot testing and API testing at the same time. What they do is they sort of record your actions as your drive eclipse through a set of scenarios and produce a JUnit test that you can then edit.</p>

<p><b>TO:</b>   Is this run as a part of the Maven build for m2eclipse?</p>

<p><b>RS:</b>   Yeah, it is run in…..  integration using the Maven OSGI plugin. There’s an OSGI test runner plug-in that actually brings up the eclipse, loads in the unit test, and then within the running eclipses project runs the unit test.</p>

<p><b>TO:</b>  So, what sorts of things have you found through the testing that we wouldn’t have found if we hadn’t been doing this?</p>

<p><b>RS:</b>  Well, I’ve found quite a few things. There’s been certainly some deadlock situations that I don’t think we would have been able to reproduce. We would have got reports of them, but we never would have been able to reproduce them in-house because they don’t happen that often. But, when you have these tests running continuously and you’re capturing the output of them when things go wrong then that allows us to find intermittent bugs which is very difficult to do otherwise with manual testing.</p>

<p>The other thing that I’m finding though is that because I’m actually driving eclipse through an automated scenario, it forces me to pay very close attention to eclipse itself. So, I actually think even  the manual testing that I’ve been doing has benefited from this process because I have to really think very carefully about how I’m driving eclipse through various scenarios in order to be able to produce these tests.</p>

<p><b>TO:</b>  I notice that sometimes the bugs that people find in a plug-in for eclipse have nothing to do with the plug-in itself. Are you testing different distributions of eclipse; like different combinations of plug-ins?</p>

<p><b>RS:</b>  I am not doing so much of that yet. I’ve just got started about a month ago, but it’s on the road map. So, I plan to have these automated tests&#8212; Right now they’re just running in Eclipse 3.4 and they’re running essentially with all the of the required plug-ins that M2Eclipse could ever never need: WTP, Subclipse and all kinds of things like that. But yes, it’s on the road map for maybe in a month or two, I’m going to start expanding the set of platforms and have different sets of plug-ins and different combinations of plug-ins. Certainly Eclipse 3.3, possibly Eclipse 3.2, IBM RAD and of course get running on different OS; These are all on the road map. And, once I’ve got the automated test running, I mean this is the advantage of the automation right, I can really easily expand it to be able to get good quality testing on all these different platforms.</p>

<p><b>TO:</b>  Well, thanks for taking the time to talk to us. And, we’ll check with you in a few months to see what progress you’ve made.</p>

<p><b>RS:</b>  All right, sounds good.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2009/02/interview-with-rich-seddon-on-m2eclipse-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Eclipse Plugins with Maven: Tycho</title>
		<link>http://www.sonatype.com/people/2008/11/building-eclipse-plugins-with-maven-tycho/</link>
		<comments>http://www.sonatype.com/people/2008/11/building-eclipse-plugins-with-maven-tycho/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 13:47:48 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[eclipse plugin]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[neo4j]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[Tycho]]></category>

		<guid isPermaLink="false">http://blogs.sonatype.com/people/book/?p=204</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2008/11/building-eclipse-plugins-with-maven-tycho/' addthis:title='Building Eclipse Plugins with Maven: Tycho '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Yesterday&#8217;s post was in response to a question from Anders Nawroth of the Neo4J effort, and today&#8217;s post is no different.  On Tuesday (or maybe it was Monday), Anders asked the neo4j-users list whether it made sense to build the neo4j eclipse plugin with Maven. I have looked into building Neoclipse using Maven, but at [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2008/11/building-eclipse-plugins-with-maven-tycho/' addthis:title='Building Eclipse Plugins with Maven: Tycho '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p><img class="alignright size-thumbnail wp-image-209" src="http://cms.sonatype.com/wordpress/wp-content/uploads/2008/11/building-eclipse-plugins.png" alt="" width="89" height="99" />Yesterday&#8217;s post was in response to a question from <a href="http://explore.twitter.com/nawroth">Anders Nawroth</a> of the <a href="http://neo4j.org/">Neo4J</a> effort, and today&#8217;s post is no different.  On Tuesday (or maybe it was Monday), Anders asked the neo4j-users list <a href="http://lists.neo4j.org/pipermail/user/2008-November/000880.html">whether it made sense to build the neo4j eclipse plugin with Maven</a>.</p>

<blockquote>I have looked into building Neoclipse using Maven, but at the moment I&#8217;m not convinced there are more advantages then disadvantages in this case.  Building Eclipse plugins and products has quite many quirks. With increasing use of product configuration options, the number of build quirks increases as well.

There seems to be no really automated build system for Eclipse plugins/products, even when using maven you have to install and update the dependencies manually (the Eclipse artifacts are not deployed to a maven repository).</blockquote>

<p>Sonatype is busily working to address these gaps, and we already have some solutions you can use to start building your Eclipse plugins in Maven.   Igor Fedorenko has been working on Tycho and Maven to create a system to facilitate OSGi and Eclipse development in Maven, and m2eclipse is currently built using Tycho.   To prove that Tycho is a viable path for build the Neoclipse plugin, I took some time yesterday to generate Maven pom.xml files with Tycho and build an update site for Neoclipse.<span id="more-253"></span></p>

<h2>A Basic Summary of Tycho</h2>

<p>The general idea of <a href="http://docs.codehaus.org/display/M2ECLIPSE/Tycho+project+overview">Tycho</a> is that it acts as a bridge between Maven and OSGi.  It supports a number of usage scenarios and is under active development.   It can be used in a manfiest-first mode which builds a Maven POM from an OSGi manifest and it can also be used in a pom-first mode in which <a href="http://docs.codehaus.org/display/M2ECLIPSE/Tycho+project+overview">Tycho</a> is responsible for generating an OSGi manifest from a Maven POM.  Future plans include the ability to build a project usin Maven/Tycho without requiring the presence of a Maven POM, and there is active work under way to allow Nexus Maven repository manager to interact with Eclipse update sites and p2 repositories, that would allow Tycho to consume artifacts from those repositories.   If you are looking for a more in depth explanation of Tycho, check out the <a href="http://docs.codehaus.org/display/M2ECLIPSE/Tycho+project+overview">Tycho Project Overview</a>.</p>

<p><img class="size-full wp-image-210 alignnone" src="http://cms.sonatype.com/wordpress/wp-content/uploads/2008/11/tycho-manifest-first.png" alt="" width="372" height="151" /></p>

<p>If you are looking for a solution to automate Eclipse builds with Maven, look no further, Tycho is your answer.  In this post, I&#8217;m going to walk you through the process of configuring a Maven build for a real Eclipse plugin.   This process involves the following, high-level steps:</p>

<ol>
    <li>Configuring Eclipse</li>
    <li>Downloading Tycho</li>
    <li>Checking out Eclipse Plugin Source from Subversion</li>
    <li>Generating Maven POMs using Tycho</li>
    <li>Packaging Your Eclipse Plugin and Generating an Update Site with Maven</li>
</ol>

<p>At this point in the development of Tycho, you&#8217;ll have to point the system at an installation of Eclipse, your targetPlatform.   Let&#8217;s get started.</p>

<h2>Configuring Eclipse</h2>

<p>Tycho currently builds Maven pom.xml using a local installation of Eclipse which should contain the Plugin Development Environment (PDE) and other Eclipse components your specific plugin depends on.   Future versions of the Tycho product will likely interrogate remote p2 repositories and Eclipse update sites, but for now we have to configure a local Eclipse Target Platform with the necessary components.  For this particular example, you&#8217;ll need to install Eclipse 3.4 and download a few plugins that the Neoclipse plugin depends upon.   For more information about what Neoclipse requires, see the <a href="http://wiki.neo4j.org/content/Neoclipse_Guide">Neo4J Wiki Page for Neoclipse</a>.  These steps are also needed when you need to work with Neoeclipse code using Eclipse PDE.   You need to:</p>

<ol>
    <li>Download and install Eclipse 3.4 if you don&#8217;t already have it installed.</li>
    <li>Neoclipse has a graphical editor component which relies on GEF.  To build the plugin, you&#8217;ll need some of the Draw2D components.   The easiest way to install this particular plugin is not via the standard Eclipse update manager.  You should download GEF ALL distribution for Eclipse 3.4 from the <a href="http://www.eclipse.org/gef/downloads/">GEF Download page</a>.   The direct link for the GEF-ALL distribution is <a href="http://www.eclipse.org/downloads/download.php?file=/tools/gef/downloads/drops/3.4.1/R200809101400/GEF-ALL-3.4.1.zip">here</a>.</li>
    <li>To install the GEF-ALL distribution, unpack the ZIP file to a directory and then copy that directory to your Eclipse installation.  This will install all the necessary features and plugins that neoclipse depends on.</li>
    <li>As usual, I would recommend installing both the m2eclipse plugin and the Subclipse plugin.   These are two plugins I almost always need:
<ol>
    <li>m2eclipse update site: <a href="http://m2eclipse.sonatype.org/update">http://m2eclipse.sonatype.org/update</a> (or if you want to use the latest stable DEV build <a href="http://m2eclipse.sonatype.org/update-dev">http://m2eclipse.sonatype.org/update-dev</a>)</li>
    <li>Subclipse Update site: <a href="http://subclipse.tigris.org/update_1.4.x">http://subclipse.tigris.org/update_1.4.x</a></li>
</ol>
</li>
</ol>

<p>I&#8217;m on a Mac, so I usually install my eclipse distribution in /Applications/eclipse.   For the remainder of this document, if you see /Application/eclipse, you should substitute your own eclipse installation directory.</p>

<h2>Downloading and Configuring Tycho</h2>

<p>At this point, you have Eclipse installed and configured with the necessary plugins to build the Neoclipse plugin.   Now you need to download and configure Tycho.  Tycho contains a development version of Maven 3.0 that has been extended to allow for Tycho to interact with the the OSGi components and format of the plugins directory of your Eclipse plugin. In the future versions you could use regular Maven 3.0 and use Tycho as any other Maven plugin.</p>

<ol>
    <li>Download Tycho from <a href="http://docs.codehaus.org/display/M2ECLIPSE/Tycho+builds">http://docs.codehaus.org/display/M2ECLIPSE/Tycho+builds</a>.  I downloaded the latest DEV build, and I installed it in <em>~/programs/tycho</em> &#8211; Tycho includes a development SNAPSHOT of Maven.</li>
    <li>Set M2_HOME to point to <em>~/programs/tycho</em>.   If you don&#8217;t do this and you already have Maven 2 installed, you are going to run into errors and issues if you try to run either Maven or Tycho.   I usually set M2_HOME to point to my Tycho installation by running &#8220;export M2_HOME=~/programs/tycho&#8221; in bash.</li>
</ol>

<p>Once Tycho is configured, you are ready to generate Maven POMs from your Eclipse plugin.</p>

<h2>Generating Maven POMs with Tycho and Building an Update Site</h2>

<p>The demo script for Tycho uses a contrived a demo project called tychodemo.zip which contains a simple Eclipse plugin.   I wanted to demonstrate that Tycho is ready to be used today with a real Eclipse project.    This project is the Neoclipse plugin for Eclipse that allows users to interact with a Neo4J database in the Eclipse IDE.</p>

<ol>
    <li>Change directories to a working directory.  I usually do all of my coding in a ~/svnw directory which is segmented by focus.   So, I check out Open Source projects like neo4j in a ~/svnw/os directory: <strong><em>cd ~/svnw/os</em></strong></li>
    <li>Checkout the source code for the neoclipse Eclipse plugin with Subversion: <strong><em>svn co https://svn.neo4j.org/components/neoclipse/trunk neoclipse</em></strong></li>
    <li>Change directories into the neoclipse directory: <strong><em>cd neoclipse</em></strong></li>
    <li>Generate a set of Maven POMs from the Neoclipse source using Tycho: <strong><em>~/programs/tycho/bin/mvn -X org.codehaus.tycho:maven-tycho-plugin:generate-poms -DgroupId=tycho.demo -Dtycho.targetPlatform=/Applications/eclipse</em></strong></li>
</ol>

<p>At this point, you&#8217;ll have pom.xml files in all of your plugins and at the top level.   Tycho has generated a multi-module Maven project that references components in your targetPlatform, specified using “tycho.targetPlatform” property on the command line.  Tycho doesn&#8217;t need Eclipse to be running, all it needs is access to the Eclipse directory so that it can resolve components such as the Eclipse Plugin SDK at the GEF plugin installed in the previous section.</p>

<p>To build the update site, run:  <strong><em>~/programs/tycho/bin/mvn package -Dtycho.targetPlatform=/Applications/eclipse</em></strong> You should then have an update site in <strong><em>./org.neo4j.neoclipse.updatesite/target/site</em></strong></p>

<p>To avoid specifying tycho.targetPlatform property every time, it could be added to your settings.xml. For example:</p>

<pre>...
  &lt;profiles&gt;
    &lt;profile&gt;
      &lt;id&gt;tycho.default&lt;/id&gt;
      &lt;activation&gt;
        &lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
      &lt;/activation&gt;
      &lt;properties&gt;
        &lt;tycho.targetPlatform&gt;/Applications/eclipse&lt;/tycho.targetPlatform&gt;
      &lt;/properties&gt;
    &lt;/profile&gt;
  &lt;/profiles&gt;
...</pre>

<p><img class="size-full wp-image-211 alignnone" src="http://cms.sonatype.com/wordpress/wp-content/uploads/2008/11/tycho-maven-plugin-yes.png" alt="" width="410" height="84" /></p>

<p><strong>UPDATE (9:21 AM CST):</strong> Eugene Kuleshov just sent in a bunch of edits and improvements which were incorporated.  Removed the section about adding the repository as it should already be in the public group hosted on Sonatype&#8217;s Nexus repository.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2008/11/building-eclipse-plugins-with-maven-tycho/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

