<?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; nexus pro</title>
	<atom:link href="http://blog.sonatype.com/people/tag/nexus-pro/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.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>Thu, 16 May 2013 18:53:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Nexus Professional 2.0.5 Released: It&#8217;s Easier to Evaluate Awesomeness</title>
		<link>http://blog.sonatype.com/people/2012/06/nexus-professional-2-0-5-released-its-easier-to-evaluate-awesomeness/</link>
		<comments>http://blog.sonatype.com/people/2012/06/nexus-professional-2-0-5-released-its-easier-to-evaluate-awesomeness/#comments</comments>
		<pubDate>Wed, 06 Jun 2012 10:00:27 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[nexus pro]]></category>
		<category><![CDATA[Procurement]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=11523</guid>
		<description><![CDATA[Nexus Pro has enhanced search capabilities that make it easy to identify which components are popular versus which components you might want to avoid. With Nexus Pro you can track your exposure to security vulnerabilities and licensing issues. With Nexus Pro you gain control over your releases so you can place release candidate binaries in [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Nexus Pro has enhanced search capabilities that make it easy to identify which components are popular versus which components you might want to avoid.</strong></p>

<p>With Nexus Pro you can track your exposure to security vulnerabilities and licensing issues. With Nexus Pro you gain control over your releases so you can place release candidate binaries in a temporary staging repository while QA tests and qualifies a release. With Nexus Pro you can control which OSS components you allow into your organization with Procurement. You can proxy the most popular source of components for Java developers (Central) alongside the most popular source of OSS components for .NET developers (NuGet Gallery). If you have distributed teams you can set up two Nexus instances and setup a Smart Proxy so that your distributed teams are always working with the latest artifacts in a distributed environment.</p>

<p>This impressive list of features is only available to you if you can sit down and evaluate these features and come to your own conclusions. Some of our customers <a href="http://www.sonatype.com/people/2012/05/nexus-victorious-in-an-objective-comparison-of-repository-managers/">take the time to go through the motions of an evaluation</a>, but many are asking for an easier evaluation experience. In the 2.0.5 release, we&#8217;ve done just that.</p>

<p>A few months ago the engineering team took a long look at <a href="http://www.sonatype.com/Products/Nexus-Professional">Nexus Professional</a> from the perspective of a new user. What does it take to get started? What were the assumptions we were making about what users know before they download the product? And, how can we make it easier to evaluate the product?</p>

<p>After this exercise it became clear to us that we needed to make sure our <a href="http://www.sonatype.com/Products/Nexus-Professional">Nexus Professional</a> trial bundle contained a few preconfigured features along with a set of simple example projects.</p>

<p>Put simply, it has to be easier to evaluate the product. Our new Nexus Professional bundle &#8220;forward deploys&#8221; the following features:</p>

<ul>
    <li><strong>Nexus has been preconfigured to download the search index from Central.</strong> Download <a href="http://www.sonatype.com/Products/Nexus-Professional">Nexus Professional</a> and give it a few minutes to download the index from Central . Once downloaded, you can start searching for artifacts. Since Nexus Professional adds valuable information to the search interface, we wanted to make sure this data was available immediately without asking users to click through a flurry of configuration screens.</li>
    <li><strong>A Staging profile has been configured to demonstrate release management.</strong> Since Staging is a primary draw for many of our customers, this version takes a step toward making it easier for a first time user to understand Staging. A Staging profile has been configured, and a sample project has been configured to stage an artifact to this profile. A new user can deploy and release via this Staging profile without having to run through pages and pages of introduction and configuration instructions.</li>
    <li><strong>Procurement has been preconfigured so you can quickly define rules for the OSS components.</strong> If you need to control your OSS components, this <a href="http://www.sonatype.com/Products/Nexus-Professional">Nexus Professional</a> trial bundle creates a procured repository and adds this repository to your Public group. If you need to start procuring artifacts, Procurement is up and running.</li>
    <li><strong>Nexus proxies NuGet Gallery so that you can quickly evaluate support for .NET development.</strong> This is one of the most important changes. Our Nexus Professional bundle ships with no .NET repositories configured and we were asking users to jump through pages and pages of instructions. With this trial bundle, NuGet Gallery is proxied, a new NuGet hosted repository is available, and these two repositories are combined into a NuGet group. To start using Nexus for .NET all you need to do is copy the NuGet API key into Visual Studio for authentication.</li>
</ul>

<p>In addition to these configuration changes to our Nexus Professional trial, users can now download two simple Maven projects that are preconfigured to download and deploy artifacts from and to a local Nexus Professional instance along with a short evaluation guide to walk you through the process. <a href="http://www.sonatype.com/Products/Nexus-Professional">Download Nexus Professional today and get started</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2012/06/nexus-professional-2-0-5-released-its-easier-to-evaluate-awesomeness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sizing Nexus: How much space do you need?</title>
		<link>http://blog.sonatype.com/people/2012/01/sizing-nexus-how-much-space-do-you-need/</link>
		<comments>http://blog.sonatype.com/people/2012/01/sizing-nexus-how-much-space-do-you-need/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 12:53:49 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[Nexus OSS]]></category>
		<category><![CDATA[nexus pro]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=9856</guid>
		<description><![CDATA[You’ll want to make sure that you run your repository manager on a server that is up to the task. The last thing you need is for Nexus to run out of space during a critical release because it is running on inadequate hardware. Disk space is cheap, broken builds are not. In this post, [...]]]></description>
				<content:encoded><![CDATA[<p>You’ll want to make sure that you run your repository manager on a server that is up to the task.  The last thing you need is for Nexus to run out of space during a critical release because it is running on inadequate hardware.   <strong>Disk space is cheap, broken builds are not.</strong></p>

<p>In this post, I focus on storage requirements for Nexus.  I discuss general recommendations and point you at resources we’ve developed to help you come up with accurate estimates for how much disk space you’ll need.</p>

<p>&nbsp;
<iframe width="640" height="360" src="http://www.youtube.com/embed/0oqZoXgkwAg?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe>
&nbsp;</p>

<h3>Disk Space</h3>

<p>Disk space is going to be the critical parameter for a Nexus installation.   At its core, Nexus is simply a collection of files and a set of services to index and serve these files.   If you integrate Nexus into your development process and come to depend on it as a collaboration mechanism, you can easily consume hundreds of gigabytes (or even terabytes) of space.</p>

<p>Coming up with a simple guideline for storage requirements is difficult as it depends on a number of factors: How many projects do you have? How large are the artifacts being deployed to Nexus? How frequently are these artifacts deployed? and How long do you keep your releases?    How much open source are you consuming from Central?   How often do you update external dependencies? and How many 3rd party artifacts do you need to upload?</p>

<p>If you deploy artifacts to Nexus, your internal, hosted repositories are what will end up consuming the most space over time.   At a large organization with hundreds of projects and frequent releases, it is very easy to create systems that consume a surprising amount of space.   If you are interested in diving into the details and coming up with an estimate for your organization, watch <a href="http://www.youtube.com/watch?v=0oqZoXgkwAg&amp;hd=1">“Getting Scientific about Sizing Nexus”</a>.</p>

<h3>An Initial Starting Point</h3>

<p>While some of our engineers like to aim high with an initial recommendation of 250-500 GB, I like to aim a little lower.   Sure, if you are rolling Nexus out to a 5,000 developer installation with thousands of projects, you may very well want to start with 1 TB.    On the other hand, if you are gradually rolling Nexus out to a department or two, you should start with a more reasonable number: 50 or 100 GB.</p>

<p>I recommend starting with 50 or 100 GB, and I also recommend being prepared to expand that number as needed.   Starting with this smaller number avoids the problem of procuring a huge chunk of disk space only to watch it sit idle for the months (or years) it will take you to consume all this space.    <strong>Aim low, plan to expand.</strong></p>

<h3>Conclusion</h3>

<p>Your initial estimate for disk space consumption is going to be just that, an estimate.   Having set up scores of Nexus instances for organizations of all sizes, my experience has been that you’ll want to do some ballpark estimates and then multiply that estimate by a factor of two or three.   When you connect systems like Hudson to Nexus and deploy snapshots from every integration build, you’ll appreciate the extra space.</p>

<p>As you start to use Nexus, you’ll have to tweak your scheduled jobs to make sure that you are periodically removing old snapshots and regularly keeping an eye on storage.   If you expand the number of projects or developers using a Nexus instance, you’ll want to revisit some of these initial estimates and make sure that your system has enough storage to keep track of all the artifacts it is caching and storing.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2012/01/sizing-nexus-how-much-space-do-you-need/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus Gets a Stop Button</title>
		<link>http://blog.sonatype.com/people/2011/08/nexus-gets-a-stop-button/</link>
		<comments>http://blog.sonatype.com/people/2011/08/nexus-gets-a-stop-button/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 10:00:43 +0000</pubDate>
		<dc:creator>Terry Bernstein</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[nexus pro]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=8848</guid>
		<description><![CDATA[We&#8217;ve enhanced the leading repository manager to help you develop better software faster.  Nexus 1.9.2, recently released, adds a number of new features. Stop Running Tasks You can stop running processes immediately and no longer have to wait for them to complete.  This is quite useful for recovering from high load situations.  Stopping a running [...]]]></description>
				<content:encoded><![CDATA[<p>We&#8217;ve enhanced the leading repository manager to help you develop better software faster.  Nexus 1.9.2, recently released, adds a number of new features.</p>

<p><strong>Stop Running Tasks</strong></p>

<p><strong> </strong>You can stop running processes immediately and no longer have to wait for them to complete.  This is quite useful for recovering from high load situations.  Stopping a running process is easy &#8212; just select the process and click on the cancel button (see Figure 1). You can also delete tasks without waiting for them to finish. Delete will automatically stop the process and then delete it.</p>

<p><strong>Improved Maven 2 Support</strong></p>

<p>You&#8217;ll get improved support for environments with both Maven 2 and Maven 3 clients. Nexus now suppresses Maven 3 metadata automatically when communicating with Maven 2 clients. This improvement allows you to use such mixed environments successfully.</p>

<p><strong>Enhanced User Information</strong></p>

<p>Sonatype Pro for Nexus customers can better audit who uses each Nexus server with usage information that includes userid and user agent.</p>

<p><strong>Download Nexus Today</strong></p>

<p>So what are you waiting for, <a href="http://nexus.sonatype.org/download-nexus.html">download</a> the latest version of Nexus OSS  or the professional version from our support site.  Learn more about <a href="http://www.sonatype.com/Products/Sonatype-Pro-for-Nexus">Sonatype Pro for Nexus.</a></p>

<p style="text-align: center;">&nbsp;</p>

<div id="attachment_8849" class="wp-caption aligncenter" style="width: 647px"><a rel="attachment wp-att-8849" href="http://www.sonatype.com/people/2011/08/nexus-gets-a-stop-button/nexus-stop-button-png/"><img class="size-full wp-image-8849 " title="Nexus Stop Button" src="http://www.sonatype.com/people/wp-content/uploads/2011/08/Nexus-Stop-button.png.png" alt="Nexus Stop Button" width="637" height="186" /></a><p class="wp-caption-text">Figure 1.  Stop running processes easily with the new cancel button</p></div>

<p style="text-align: center;">&nbsp;</p>

<p style="text-align: center;">&nbsp;</p>

<div><dl id="attachment_8849"></dl></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2011/08/nexus-gets-a-stop-button/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus 1.7.2 Now Available with Improved Search Interface</title>
		<link>http://blog.sonatype.com/people/2010/08/nexus-1-7-2-now-available-with-improved-search-interface/</link>
		<comments>http://blog.sonatype.com/people/2010/08/nexus-1-7-2-now-available-with-improved-search-interface/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 11:34:06 +0000</pubDate>
		<dc:creator>Brian Fox</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[nexus pro]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=5858</guid>
		<description><![CDATA[The Nexus 1.7.2 release offers an improved search interface making it even easier to locate the libraries and artifacts you need in Nexus.  Sonatype has published a version of Nexus 1.7.2 on http://repository.sonatype.org which contains some dramatic improvements to the search interface.   Download the new Nexus Open Source or Nexus Professional release and start [...]]]></description>
				<content:encoded><![CDATA[<p>The Nexus 1.7.2 release offers an improved search interface making it even easier to locate the libraries and artifacts you need in Nexus.  Sonatype has published a version of Nexus 1.7.2 on <a href="http://repository.sonatype.org">http://repository.sonatype.org</a> which contains some dramatic improvements to the search interface.   Download the new <a href="http://nexus.sonatype.org">Nexus Open Source </a> or <a href="http://www.sonatype.com/products/nexus">Nexus Professional</a> release and start searching for artifacts.</p>

<p>What is new in the Nexus 1.7.2 search interface?</p>

<ul>
    <li>Search results now link directly to the latest version of a matching artifact.</li>
    <li>Selecting a search result immediately displays information about the matching artifact.  You can browse artifact information from the search interface.</li>
    <li>(Nexus Professional) Archive browsing and artifact metadata are available from the search interface.</li>
    <li>Matching artifacts of different types (pom, jar, war, zip, etc.) can be downloaded from the search results page.</li>
</ul>

<p>This release takes the effort out of searching for artifacts in Nexus.  Here are some sceenshots of the new interface now available on <a href="http://repository.sonatype.org">http://repository.sonatype.org</a> and soon to be available in the 1.7.2 release of <a href="http://nexus.sonatype.org">Nexus Open Source</a> and <a href="http://www.sonatype.com/products/nexus">Nexus Professional</a>.</p>

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

<p>If you are searching for artifacts in Nexus, start with either the Advanced Search interface or the Welcome panel shown below.    This Welcome panel is the first thing you will see when you load Nexus in the browser, to see the welcome screen go to <a href="http://repository.sonatype.org">http://repository.sonatype.org</a>.</p>

<p style="text-align: center;"><a href="http://www.sonatype.com/people/wp-content/uploads/2010/07/search-welcome.png"><img class="aligncenter size-full wp-image-5859" title="search-welcome" src="http://www.sonatype.com/people/wp-content/uploads/2010/07/search-welcome.png" alt="" width="598" height="337" /></a>To search for an artifact, just type in a keyword.  A keyword can be a groupId, an artifactId, or just the name of a project.   If you were searching for the latest version of the Guice library, you would type in &#8220;guice&#8221; in the Welcome panel and either press Return or click on the search icon to the right of the search box.    Searching for Guice will show the following result panel.</p>

<p style="text-align: center;"><a href="http://www.sonatype.com/people/wp-content/uploads/2010/07/search-results.png"><img class="aligncenter size-full wp-image-5860" title="search-results" src="http://www.sonatype.com/people/wp-content/uploads/2010/07/search-results.png" alt="" width="611" height="414" /></a></p>

<p>What&#8217;s new in this interface?</p>

<ul>
    <li>Look at the Version column in the search results.   In this version of the search interface, we decided to list the most recent version.    If you need to view a different version, click on &#8220;Show All Versions&#8221;.   Clicking on &#8220;Show All Versions&#8221; will drill down into the list of available versions.</li>
    <li>Look at the Download column in the search results.   This Download column contains direct download links for the most recent version of the artifact.   To download a matching artifact, just click on a link in this column.</li>
    <li>Select a search result, and you will see the artifact in the Repository Tree in the lower left-hand quadrant of this interface.   This is helpful to give you context for an artifact.   An artifact could be present in more than one repository.  If this is the case, click on the value next to &#8220;Viewing Repository&#8221; to switch between multiple matching repositories.</li>
    <li>In the lower right-hand quadrant of the interface, you will see a number of tabs which show information about the selected search result:
<ul>
    <li>Maven Information: This contains basic identifiers and a snippet of XML you can use to add this artifact as a project dependency.</li>
    <li>Archive Browser (Nexus Professional): This gives you a way to explore the contents of an archive in the repository.  You can view the files and folders contained in a matching search result.</li>
    <li>Artifact Information: This tab contains timestamps, file size, checksum values, and a list of repositories containing a given artifact.</li>
    <li>Artifact Metadata (Nexus Professional): This tab shows all of the built-in and custom metadata associated with an artifact.</li>
</ul>
</li>
</ul>

<p>This new search interface will be a part of the Nexus 1.7.2 search interface available in both <a href="http://nexus.sonatype.org">Nexus Open Source </a>and <a href="http://www.sonatype.com/products/nexus">Nexus Professional</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2010/08/nexus-1-7-2-now-available-with-improved-search-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-level Staging and Build Promotion with Nexus Pro 1.7</title>
		<link>http://blog.sonatype.com/people/2010/07/multi-level-staging-and-build-promotion-with-nexus-pro-1-7/</link>
		<comments>http://blog.sonatype.com/people/2010/07/multi-level-staging-and-build-promotion-with-nexus-pro-1-7/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 15:06:29 +0000</pubDate>
		<dc:creator>Brian Fox</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[multi-level staging]]></category>
		<category><![CDATA[nexus pro]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[staging]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=5739</guid>
		<description><![CDATA[With the 1.7.1 release Nexus Professional now supports multi-level staging and build promotion.   With our existing staging plugin, you can release build artifacts to a temporary staging repository to allow for testing and certification before making a final decision to release artifacts to a hosted repository.   With multi-level staging, you can add additional steps to [...]]]></description>
				<content:encoded><![CDATA[<p>With the 1.7.1 release <a href="http://www.sonatype.com/products/nexus">Nexus Professional</a> now supports multi-level staging and build                         promotion.   With our existing staging plugin, you can release build artifacts to a temporary staging repository to allow for testing and certification before making a final decision to release artifacts to a hosted repository.   With multi-level staging, you can add additional steps to your release process.   If you need multiple levels of testing or validation, you can now define both staging profiles and &#8220;build promotion&#8221; profiles.</p>

<p>When you stage an artifact in Nexus Professional, Nexus creates a temporary staging repository and exposes staged artifacts in a repository group.   When you promote a staging repository with a build promotion profile, you can configure Nexus to add promoted artifacts to additional repository groups.</p>

<p><a href="http://www.sonatype.com/people/wp-content/uploads/2010/07/multi-level-staging.png"><img class="aligncenter size-full wp-image-5762" title="multi-level-staging" src="http://www.sonatype.com/people/wp-content/uploads/2010/07/multi-level-staging.png" alt="" width="472" height="192" /></a></p>

<p><span id="more-5739"></span>To explore this new feature of Nexus Professional, consider the following workflow illustrated in the previous figure :</p>

<div>
<ul type="disc">
    <li><em>Stage:</em> A developer publishes artifacts to                                      a QA staging profile which exposes the staged artifacts in a QA                                      repository group.</li>
    <li><em>Promote to Beta:</em> Once the QA team has completed testing, they promote the temporary staging                                      repository to build promotion profile exposing the staged                                      artifacts to a limited set of customers who have agreed to act as a                                      beta testers.</li>
    <li><em>Release:</em> Once this closed beta testing                                      period is finished, the staged repository is then released.  The                                      artifacts it contains are published to a hosted release repository                                      and exposed via the public repository group.</li>
</ul>
To support this multi-level staging feature, configure a                        Build Promotion profiles to expose promoted release artifacts to additional repository groups.  Build promotion profiles are configured alongside Staging profiles in the Staging Profiles panel.<img class="aligncenter" title="Creating a Build Promotion Profile" src="http://www.sonatype.com/books/nexus-book/reference/figs/web/staging_add-build-promotion-orilfe.png" alt="" width="351" height="151" />When you create a Build Promotion profile, you configure it to expose promoted artifacts via selected repository groups.<img class="aligncenter" title="Configuring a Build Promotion Profile" src="http://www.sonatype.com/books/nexus-book/reference/figs/web/staging_closed-beta-promotion-group.png" alt="" width="596" height="529" />When you need to promote a Staging Repository to a Build Promotion Profile, you select the Staging Repositories to promote and click on the Promote button.<img class="aligncenter" title="Promoting a Staging Repository" src="http://www.sonatype.com/books/nexus-book/reference/figs/web/staging_promote-to-group-button.png" alt="" width="605" height="285" />After clicking Promote, you can then select a Build Promotion profile.<img class="aligncenter" title="Selecting a Build Promotion Profile" src="http://www.sonatype.com/books/nexus-book/reference/figs/web/staging_promote-to-group.png" alt="" width="426" height="291" />

For more information about Nexus Professional&#8217;s support see <a href="http://www.sonatype.com/books/nexus-book/reference/staging.html#d4e4143">&#8220;Multi-level Staging and Build Promotion&#8221;</a>, and <a href="http://www.sonatype.com/books/nexus-book/reference/staging-sect-config.html#staging-sect-config-build-profile">&#8220;Configuring Build Promotion Profiles&#8221;</a> in the Sonatype Nexus book.

</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2010/07/multi-level-staging-and-build-promotion-with-nexus-pro-1-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus Scheduled Jobs: Video Walkthrough of Major Features</title>
		<link>http://blog.sonatype.com/people/2010/02/nexus-scheduled-jobs-video-walkthrough-of-major-features/</link>
		<comments>http://blog.sonatype.com/people/2010/02/nexus-scheduled-jobs-video-walkthrough-of-major-features/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 08:00:07 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[nexus pro]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=4280</guid>
		<description><![CDATA[The following demonstration video was shown in the Sonatype booth at last month&#8217;s Jfokus 2010 in Stockholm, Sweden. This video provides a quick walkthrough of the major features in Nexus Scheduled Jobs. Highlights of this demonstration: Time (M:SS) Note 0:29 Managing Nexus Scheduled Jobs 0:32 Creating a New Scheduled Job 0:58 Configuring Task Settings 1:23 [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.sonatype.com/people/wp-content/uploads/2010/01/nexus-small.png"><img src="http://www.sonatype.com/people/wp-content/uploads/2010/01/nexus-small.png" alt="" title="nexus-small" width="250" height="62" class="alignright size-full wp-image-3683" /></a>The following demonstration video was shown in the Sonatype booth at last month&#8217;s Jfokus 2010 in Stockholm, Sweden.   This video provides a quick walkthrough of the major features in Nexus Scheduled Jobs.</p>

<p><object width="660" height="405"><param name="movie" value="http://www.youtube.com/v/gFfTn57QbMM&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;hd=1&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gFfTn57QbMM&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;hd=1&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="660" height="405"></embed></object><span id="more-4280"></span></p>

<p>Highlights of this demonstration:</p>

<table>
  <tr>
    <th>Time (M:SS)</th>
    <th>Note</th>
  </tr>
  <tr>
    <td>0:29</td>
    <td>Managing Nexus Scheduled Jobs</td>
  </tr>
  <tr>
    <td>0:32</td>
    <td>Creating a New Scheduled Job</td>
  </tr>
  <tr>
    <td>0:58</td>
    <td>Configuring Task Settings</td>
  </tr>
  <tr>
    <td>1:23</td>
    <td>Job Email Notification</td>
  </tr>
  <tr>
    <td>1:32</td>
    <td>Configuring a Job&#8217;s Schedule</td>
  </tr>
  <tr>
    <td>1:32</td>
    <td>Configuring a Job&#8217;s Schedule</td>
  </tr>
  <tr>
    <td>1:55</td>
    <td> Manual Execution of a Task</td>
  </tr>
  <tr>
    <td>2:15</td>
    <td>Available Task Types</td>
  </tr>
  <tr>
    <td>2:31</td>
    <td>Schedule Recurrence Options</td>
  </tr>
  <tr>
    <td>2:45</td>
    <td>Scheduling a Job using a CRON Expression</td>
  </tr>
  <tr>
    <td>2:59</td>
    <td>Monthly Scheduling</td>
  </tr>
  <tr>
    <td>3:03</td>
    <td>Weekly Scheduling</td>
  </tr>
  <tr>
    <td>3:13</td>
    <td>Daily Scheduling</td>
  </tr>
  <tr>
    <td>3:21</td>
    <td>Hourly Scheduling</td>
  </tr>
  <tr>
    <td>3:31</td>
    <td>Task Type: Scheduled Backups</td>
  </tr>
  <tr>
    <td>3:39</td>
    <td>Task Type: Scheduled Remote Index Downloads</td>
  </tr>
  <tr>
    <td>3:49</td>
    <td>Task Type: Emptying the Trash</td>
  </tr>
  <tr>
    <td>3:57</td>
    <td>Task Type: Evicting Unused Proxy Artifacts</td>
  </tr>
  <tr>
    <td>4:05</td>
    <td>Task Type: Expiring Repository Caches</td>
  </tr>
  <tr>
    <td>4:10</td>
    <td>Task Type: Publishing Indexes</td>
  </tr>
  <tr>
    <td>4:19</td>
    <td>Task Type: Purging Nexus Timeline</td>
  </tr>
  <tr>
    <td>4:25</td>
    <td>Task Type: Rebuilding Maven Metadata</td>
  </tr>
  <tr>
    <td>4:29</td>
    <td>Task Type: Reindexing Repositories</td>
  </tr>
  <tr>
    <td>4:37</td>
    <td>Task Type: Removing Snapshots</td>
  </tr>
  <tr>
    <td>4:43</td>
    <td>Task Type: Synchronizing Shadow Repository</td>
  </tr>
  <tr>
     <td>4:49</td>
     <td>Task Type: Mirror an Eclipse Update Site</td>
  </tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2010/02/nexus-scheduled-jobs-video-walkthrough-of-major-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus System Feeds and Log Files: Video Walkthrough of Major Features</title>
		<link>http://blog.sonatype.com/people/2010/02/nexus-system-feeds-and-log-files-video-walkthrough-of-major-features/</link>
		<comments>http://blog.sonatype.com/people/2010/02/nexus-system-feeds-and-log-files-video-walkthrough-of-major-features/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 08:00:50 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[nexus pro]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=4276</guid>
		<description><![CDATA[The following demonstration video was displayed in the Sonatype booth at last month&#8217;s Jfokus 2010 in Stockholm, Sweden. This video provides a quick walk through of the System Feed and Log file UI available in Nexus. Hightlights of this video: Time (M:SS) Note 0:26 Viewing System Feeds 0:37 Browsing System Changes 0:49 Accessing Nexus RSS [...]]]></description>
				<content:encoded><![CDATA[<p><!--dzoneZ=none--><a href="http://www.sonatype.com/people/wp-content/uploads/2010/01/nexus-small.png"><img src="http://www.sonatype.com/people/wp-content/uploads/2010/01/nexus-small.png" alt="" title="nexus-small" width="250" height="62" class="alignright size-full wp-image-3683" /></a>The following demonstration video was displayed in the Sonatype booth at last month&#8217;s Jfokus 2010 in Stockholm, Sweden.   This video provides a quick walk through of the System Feed and Log file UI available in Nexus.<span id="more-4276"></span></p>

<p><object width="660" height="405"><param name="movie" value="http://www.youtube.com/v/zZJbHPFLZmA&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;hd=1&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/zZJbHPFLZmA&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;hd=1&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="660" height="405"></embed></object></p>

<p>Hightlights of this video:</p>

<table>
  <tr>
    <th>Time (M:SS)</th>
    <th>Note</th>
  </tr>
  <tr>
    <td>0:26</td>
    <td>Viewing System Feeds</td>
  </tr>
  <tr>
    <td>0:37</td>
    <td>Browsing System Changes</td>
  </tr>
  <tr>
    <td>0:49</td>
    <td>Accessing Nexus RSS Feeds</td>
  </tr>
  <tr>
    <td>1:03</td>
    <td>Viewing Nexus System Files</td>
  </tr>
  <tr>
    <td>1:19</td>
    <td>Tailing Log Files from the Nexus UI</td>
  </tr>
  <tr>
    <td>1:32</td>
    <td>Log4J Configuration</td>
  </tr>
  <tr>
    <td>1:38</td>
    <td>Latest Version Notification Configuration</td>
  </tr>
  <tr>
    <td>1:44</td>
    <td>Nexus Server Configuration</td>
  </tr>
  <tr>
    <td>2:00</td>
    <td>PGP Keyserver Configuration</td>
  </tr>
  <tr>
    <td>2:08</td>
    <td>Procurement Plugin Configuration</td>
  </tr>
  <tr>
    <td>2:14</td>
    <td>Security Configuration</td>
  </tr>
  <tr>
    <td>2:34</td>
    <td>Nexus Server configuration as XML</td>
  </tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2010/02/nexus-system-feeds-and-log-files-video-walkthrough-of-major-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus Proxy Repositories: Video Walkthrough of Major Features</title>
		<link>http://blog.sonatype.com/people/2010/02/nexus-proxy-repositories-video-walkthrough-of-major-features/</link>
		<comments>http://blog.sonatype.com/people/2010/02/nexus-proxy-repositories-video-walkthrough-of-major-features/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 08:00:43 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[nexus pro]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=4270</guid>
		<description><![CDATA[The following, audio-less demonstration video was used at our booth at Jfokus 2010 in Stockholm, Sweden. It is a brief walkthrough of some of the major features of Nexus Proxy repositories. If you are evaluation Nexus, this is a chance to see Nexus UI in action. Highlights of this demonstration reel: Time (M:SS) Note 0:30 [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.sonatype.com/people/wp-content/uploads/2010/01/nexus-small.png"><img src="http://www.sonatype.com/people/wp-content/uploads/2010/01/nexus-small.png" alt="" title="nexus-small" width="250" height="62" class="alignright size-full wp-image-3683" /></a>The following, audio-less demonstration video was used at our booth at Jfokus 2010 in Stockholm, Sweden.   It is a brief walkthrough of some of the major features of Nexus Proxy repositories.  If you are evaluation Nexus, this is a chance to see Nexus UI in action.</p>

<p><object width="660" height="405"><param name="movie" value="http://www.youtube.com/v/o7u1iyG947A&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;hd=1&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/o7u1iyG947A&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;hd=1&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="660" height="405"></embed></object></p>

<p>Highlights of this demonstration reel:</p>

<table>
  <tr>
    <th>Time (M:SS)</th>
    <th>Note</th>
  </tr>
  <tr>
    <td>0:30</td>
    <td>Browsing a Proxy repository&#8217;s Nexus Index &#8211; if you&#8217;ve configured your Nexus proxy repository to download a remote index, you can use the Browse Index tab to browse the contents of the remote repository.</td>
  </tr>
  <tr>
    <td>0:42</td>
    <td>Browsing artifact information</td>
  </tr>
  <tr>
    <td>0:49</td>
    <td>Browsing local storage</td>
  </tr>
  <tr>
    <td>1:08</td>
    <td>Browsing Artifact Metadata</td>
  </tr>
  <tr>
    <td>1:19</td>
    <td>Browsing Archive Contents (Nx Pro Only)</td>
  </tr>
  <tr>
    <td>1:30</td>
    <td>Proxy Repository Configuration screen walkthrough</td>
  </tr>
  <tr>
    <td>2:21</td>
    <td>Mirror configuration &#8211; selection which mirrors to download artifacts from.   Nexus downloads security hashes and signatures from the canonical repository.</td>
  </tr>
  <tr>
    <td>2:36</td>
    <td>Repository Summary information panel</td>
  </tr>
  <tr>
    <td>2:45</td>
    <td>Browsing a remote repository with the Nexus RRB plugin.</td>
  </tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2010/02/nexus-proxy-repositories-video-walkthrough-of-major-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus Hosted Repositories: Video Walkthrough of Major Features</title>
		<link>http://blog.sonatype.com/people/2010/02/nexus-hosted-repositories-video-walkthrough-of-major-features/</link>
		<comments>http://blog.sonatype.com/people/2010/02/nexus-hosted-repositories-video-walkthrough-of-major-features/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 08:00:12 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[nexus pro]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=4265</guid>
		<description><![CDATA[This demonstration video was used at our booth at last month&#8217;s Jfokus 2010 in Stockholm, Sweden. It provides a quick, audio-less overview of some of the major features of Nexus Hosted repositories: Highlights of this demonstration reel: Time (M:SS) Notes 0:29 List of default hosted repositories. Nexus ships with three hosted repositories: releases, snapshots, and [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.sonatype.com/people/wp-content/uploads/2010/01/nexus-small.png"><img src="http://www.sonatype.com/people/wp-content/uploads/2010/01/nexus-small.png" alt="" title="nexus-small" width="250" height="62" class="alignright size-full wp-image-3683" /></a>This demonstration video was used at our booth at last month&#8217;s Jfokus 2010 in Stockholm, Sweden.    It provides a quick, audio-less overview of some of the major features of Nexus Hosted repositories:</p>

<p><object width="660" height="405"><param name="movie" value="http://www.youtube.com/v/6-HYSXamHwE&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;hd=1&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/6-HYSXamHwE&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;hd=1&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="660" height="405"></embed></object></p>

<p>Highlights of this demonstration reel:</p>

<table>
  <tr>
    <th>Time (M:SS)</th>
    <th>Notes</th>
  </tr>
  <tr>
    <td>0:29</td>
    <td>List of default hosted repositories.  Nexus ships with three hosted repositories: releases, snapshots, and 3rd party.</td>
  </tr>
  <tr>
    <td>0:45</td>
    <td>Artifact Upload &#8211; Nexus allows you to upload artifacts or collections of related artifacts under the same GAV to a hosted repository.</td>
  </tr>
  <tr>
    <td>1:30</td>
    <td>Browsing storage &#8211; When you browse storage for a hosted repository, you are browsing the contents that are stored locally in the Nexus instance.</td>
  </tr>
  <tr>
    <td>1:45</td>
    <td>Browsing archives &#8211; this is a feature that is available in Nexus Professional.  Just click on an archive under Browse Storage and Nexus will open up a Browse Archive tab.</td>
  </tr>
  <tr>
    <td>1:57</td>
    <td>Browsing the repository index &#8211; each repository in Nexus is associated with an index. This Nexus index allows tools like Nexus and m2eclipse to quickly locate artifacts in a repository.</td>
  </tr>
  <tr>
    <td>2:05</td>
    <td>Manipulating Artifact Metadata &#8211; you can modify, view, and search repository metadata that is associated with each repository artifact.</td>
  </tr>
  <tr>
    <td>2:13</td>
    <td>Custom Metadata &#8211; you can define your own custom metadata</td>
  </tr>
  <tr>
    <td>2:40</td>
    <td>Walkthrough of the Nexus Hosted Repository configuration options.</td>
  </tr>
  <tr>
    <td>3:05</td>
    <td>Defining available mirrors for Hosted Repositories</td>
  </tr>
  <tr>
    <td>3:23</td>
    <td>Hosted repository summary information</td>
  </tr>
  <tr>
    <td>3:35</td>
    <td>Searching custom metadata</td>
  </tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2010/02/nexus-hosted-repositories-video-walkthrough-of-major-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Documenting the Nexus REST API with Enunciate</title>
		<link>http://blog.sonatype.com/people/2010/02/documenting-the-nexus-rest-api-with-enunciate/</link>
		<comments>http://blog.sonatype.com/people/2010/02/documenting-the-nexus-rest-api-with-enunciate/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 17:31:15 +0000</pubDate>
		<dc:creator>Tamas Cservenak</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[enunciate]]></category>
		<category><![CDATA[nexus pro]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=4301</guid>
		<description><![CDATA[Nexus OSS Core has more than 120 REST Resources published. And that number is just increasing with new Nexus Plugins. Not to mention Nexus Pro that comes with even more plugins and more REST resources.    Everything you do in Nexus, whether you use the Maven Nexus plugin or the Nexus UI, is interacting with [...]]]></description>
				<content:encoded><![CDATA[<p><strong><a href="http://www.sonatype.com/people/wp-content/uploads/2010/01/nexus-small.png"><img class="alignright size-full wp-image-3683" title="nexus-small" src="http://www.sonatype.com/people/wp-content/uploads/2010/01/nexus-small.png" alt="" width="250" height="62" /></a>Nexus OSS Core has more than 120 REST Resources</strong> published. And that number is just increasing with new Nexus Plugins. Not to mention Nexus Pro that comes with even more plugins and more REST resources.    Everything you do in Nexus, whether you use the Maven Nexus plugin or the Nexus UI, is interacting with a REST service that is available to you if you want to write your own customizations and scripts.   It has been this way since we started the project in 2007.  In this post, I&#8217;m going to discuss how this came to be, how Nexus was developed with REST in mind from the beginning.</p>

<h3>Nexus: A Core of REST Services</h3>

<p>When we started the Nexus project, I called it a &#8220;blind&#8221; application.  A &#8220;blind&#8221; webapp is one with no UI technology whatsoever built-in.   All it publishes is a few static files, and a REST API.   All of the UI that you see in Nexus is Javascript.   Your browser executes Javascript which, in turn, interacts with a set of services.   The only presentation technology on the server side is a trivial Velocity template used to render the initial &#8220;shell&#8221; of the page.<span id="more-4301"></span></p>

<p>The server-side application you call Nexus, doesn&#8217;t generate the UI, that is all Javascript.   It is a completely separate and standalone application, that runs in your browser! A self contained JavaScript application (powered by ExtJS), that communicates with Nexus server, using REST calls only.  This has one very important consequence: whatever Nexus functionality you are able to reach using the Nexus User Interface (and I do mean <em>all</em>), you can do with a plain REST client.     If you want to automate a task, you can use a tool like <tt>curl</tt>, or some Ruby script, or any HTTP capable client.   You can even start to implement your own custom interface if you would like a completely customized UI.</p>

<p>As I said, it was like this since day one. But, we always had one major issue that prevented wider acceptance of Nexus&#8217; REST API: <strong>we had no up-to-date documentation for it</strong>.    It wasn&#8217;t a priority, we spent much of our time trying to integrate the only existing REST framework (restlet.org) with Plexus, and since we were moving so quickly to implement new features, we didn&#8217;t think it made sense to stop and document an ever-changing interface.  We did maintain a <a rel="nofollow" href="https://docs.sonatype.com/display/NX/Nexus+Rest+API">wiki page</a> which described the REST services from the beginning of the project, it always provided stale information given our aggressive development pace.</p>

<h3>REST Documentation: Using Enunciate</h3>

<p>I&#8217;ve been looking at the <a rel="nofollow" href="http://enunciate.codehaus.org/">Enunciate</a> project for some time, and it appears to be the solution to our REST document issues.  Enunciate is a cool project hosted on <a href="http://codehaus.org"><span style="color: #003366;">Codehaus</span></a>, with a bold promise:</p>

<p><em>Enunciate is designed to make your life easier. Enunciate deals with your deployment difficulties, documentation, and client-side code. By using Enunciate to publish your service interfaces, not only will you have all three Web service interfaces (SOAP, REST, and AMF), but you&#8217;ll also have full up-to-date documentation generated, strongly typed ActionScript code that you can use to invoke your remote services from your Flex code, and rich client-side libraries that can be used to access your Web services from a variety of platforms (including Mac/iPhone).</em></p>

<p>Our initial plans are to use Enunciate in a &#8220;lite&#8221; mode to <strong>generate documentation</strong> (and potentially client side code) for our current REST API. Later, we plan to integrate it more closely into new Nexus &#8220;Remoting API&#8221; implementation, and it will be the backbone of our REST services when we will implement version 2.0 of our API.</p>

<p>Here is just a taste of what is to come.  We&#8217;ve used Enunciate to generate documentation for our REST services, and the work is proceeding very quickly.   Here is a snapshot of the documentation we will be releasing soon.</p>

<p><a href="http://www.sonatype.com/people/wp-content/uploads/2010/02/tim1.png"><img class="aligncenter size-medium wp-image-4303" title="Nexus Enunciate Sample #1" src="http://www.sonatype.com/people/wp-content/uploads/2010/02/tim1-300x256.png" alt="" width="300" height="256" /></a></p>

<p><a href="http://www.sonatype.com/people/wp-content/uploads/2010/02/tim2.png"><img class="aligncenter size-medium wp-image-4304" title="Nexus Enunciate Sample #2" src="http://www.sonatype.com/people/wp-content/uploads/2010/02/tim2-300x230.png" alt="" width="300" height="230" /></a></p>

<p><a href="http://www.sonatype.com/people/wp-content/uploads/2010/02/tim3.png"><img class="aligncenter size-medium wp-image-4316" title="Enunciated Nexus REST API Sample #3" src="http://www.sonatype.com/people/wp-content/uploads/2010/02/tim3-300x263.png" alt="" width="300" height="263" /></a></p>

<h3>Remaining Problems to Solve</h3>

<p>When our REST API was concieved in Q4 of 2007 we didn&#8217;t have the rich array of options that we have today.   One major REST library was available, and that was <a rel="nofollow" href="http://www.restlet.org/">Restlet</a>.  JSR311 wasn&#8217;t around back then, so we were forced to code directly to the Restlet API.  Back in 2007, it was very cool to create Plexus components that were then automatically published as REST Resources in Nexus. But today, the same thing looks very cumbersome and is not what one would call a &#8220;state of the art&#8221;. Back then, we had these goals in mind:</p>

<ul>
    <li>have complete REST API published on Nexus</li>
    <li>have a decoupled UI application</li>
    <li>provide XML/JSON serialized transport to REST Resource without any effort, with proper content negotiation (XML was kept as &#8220;Plan B&#8221;)</li>
    <li>make our REST Resources as Plexus components (to enjoy all the benefits of IoC, and later pluggability)</li>
</ul>

<p>While we fulfilled much of these goals above, we did that at a high cost.  For a Nexus core developer (or Nexus plugin developer), it is very cumbersome to create a new REST Resource using our classes, compared to what REST libraries are available today. Current state-of-the-art REST libraries make our initial implementation seem somewhat naive (hence the need to move toward new libraries like Enunciate). Our 1st and biggest mistake was a very deep class hierarchy in our current API.  While all the &#8220;defaults&#8221; are properly configured, it is often difficult to create a non-trivial Resource in the current API if you are not intimately familiar with the system.</p>

<p>Also, in the initial design, we use XStream with a custom driver to produce JSON. Back then, it was a real pain to produce proper JSON out of Java.   Today, we have libraries like Jackson.   In the next interation of refactoring, you&#8217;ll see update the infrastructure used to produce our REST services to bring it up to speed with what is available today.</p>

<h3>The Benefits of &#8220;enunciating&#8221; a REST API</h3>

<p>At first, we will use Enunciate with Nexus during build time only, to generate HTML documentation of our REST API. This documentation will be available publicly, but will also be bundled with every Nexus instance!   Our work to modify our own REST infrastructure is going to require some &#8220;invasive&#8221; work, but I have to emphasize that Enunciate is not invasive if you use it on a modern JSR311 based REST applications. Enunciate is invasive for us only, since we are about to use it on a home grown, non-JSR311 REST application.</p>

<p>Enunciate gathers and builds your services model using your sources and all the metadata it finds (Java5 annotations, Javadoc).  To &#8220;enunciate&#8221; the Nexus REST API, we had to add JSR311 annotations to our existing REST Resources.  There was one more problem to solve: our method signatures are more &#8220;servlet like&#8221;, and they didn&#8217;t fit the model of a JSR311 REST Application. While a JSR311 application method signature completely describes the method expectations about payload, parameters, and response type, our methods – whether GET, PUT, POST or DELETE – have almost same signature: RestRequest, RestResponse, Variant. Hence, we had to add more metainformation describing what a method does: what it expects as input, if any, and what it sends out as response.</p>

<p>Luckily, it turned out that this was the only piece missing, and Enunciate was happy to generate documentation for us. Ryan added the new annotation that describes the &#8220;alternate REST Signature&#8221; of the method, and Enunciate got all the information it needed to generate documentation for us.</p>

<p>Another painful step yet to be completed is &#8220;freeing&#8221; our REST DTOs from Modello. Initially, we knew we wanted to <em>version</em> the DTOs used in REST. Hence, we used Modello to generate the DTOs. Later, problems with Modello and Restlet forced us to always use version 1.0 of our REST DTOs. Since Enunciate requires that DTOs have JAXB2 annotations, we decided to store our DTOs as code and ditch Modello in our builds.</p>

<p>All this looks like a lot of work, but it is actually pretty straightforward.   While this might seem dull to someone not developing Nexus, this work is going to bring real value once it is completed.    In addition to solving our documentation problems, Enunciate is going to open up a world of possibilities once we migrate our REST services over to the framework.</p>

<p>For more information about Enunciate, the <a rel="nofollow" href="http://docs.codehaus.org/display/ENUNCIATE/Enunciate">Enunciate Wiki</a> contains a nice example of how to use Enunciate in case like ours is, without JAX-RS. Example is shown <a rel="nofollow" href="http://docs.codehaus.org/display/ENUNCIATE/Leveraging+Enunciate+Without+JAX-*S">here</a>.  Examples of Enunciate generated documentation can be seen on it&#8217;s <a rel="nofollow" href="http://enunciate.codehaus.org/">site</a>. There is a great walk-through, with <a rel="nofollow" href="http://enunciate.codehaus.org/wannabecool/step4/index.html">static examples</a>.</p>

<h3>Expect More Changes in the Next Few Months</h3>

<p>As Nexus graduated from alphas, betas and now is at a 1.5.0 version, we realize we have to change gears to keep up. Enunciate is the 1st &#8220;newcomer&#8221; technology to Nexus stack.  There will be more to come.   Think of this as the Nexus 100,000 mile checkup.  We&#8217;re taking a look at the stack and taking this as an opportunity to upgrade where necessary.</p>

<p>One last note, this post is not about any deficiencies in Restlet.  Restlet is a great framework, and it served us well.  We – the Nexus Project team – are <strong>very thankful</strong> to Restlet.org project with all the help we got from them and for the great library they made.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2010/02/documenting-the-nexus-rest-api-with-enunciate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
