<?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://www.sonatype.com/people/tag/nexus-pro/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>Sizing Nexus: How much space do you need?</title>
		<link>http://www.sonatype.com/people/2012/01/sizing-nexus-how-much-space-do-you-need/</link>
		<comments>http://www.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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2012/01/sizing-nexus-how-much-space-do-you-need/' addthis:title='Sizing Nexus: How much space do you need? '  ><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>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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2012/01/sizing-nexus-how-much-space-do-you-need/' addthis:title='Sizing Nexus: How much space do you need? '  ><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>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://www.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://www.sonatype.com/people/2011/08/nexus-gets-a-stop-button/</link>
		<comments>http://www.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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2011/08/nexus-gets-a-stop-button/' addthis:title='Nexus Gets a Stop Button '  ><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 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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2011/08/nexus-gets-a-stop-button/' addthis:title='Nexus Gets a Stop Button '  ><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 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://www.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://www.sonatype.com/people/2010/08/nexus-1-7-2-now-available-with-improved-search-interface/</link>
		<comments>http://www.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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/08/nexus-1-7-2-now-available-with-improved-search-interface/' addthis:title='Nexus 1.7.2 Now Available with Improved Search Interface '  ><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>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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/08/nexus-1-7-2-now-available-with-improved-search-interface/' addthis:title='Nexus 1.7.2 Now Available with Improved Search Interface '  ><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>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://www.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://www.sonatype.com/people/2010/07/multi-level-staging-and-build-promotion-with-nexus-pro-1-7/</link>
		<comments>http://www.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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/07/multi-level-staging-and-build-promotion-with-nexus-pro-1-7/' addthis:title='Multi-level Staging and Build Promotion with Nexus Pro 1.7 '  ><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>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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/07/multi-level-staging-and-build-promotion-with-nexus-pro-1-7/' addthis:title='Multi-level Staging and Build Promotion with Nexus Pro 1.7 '  ><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>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://www.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://www.sonatype.com/people/2010/02/nexus-scheduled-jobs-video-walkthrough-of-major-features/</link>
		<comments>http://www.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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/nexus-scheduled-jobs-video-walkthrough-of-major-features/' addthis:title='Nexus Scheduled Jobs: Video Walkthrough of Major Features '  ><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>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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/nexus-scheduled-jobs-video-walkthrough-of-major-features/' addthis:title='Nexus Scheduled Jobs: Video Walkthrough of Major Features '  ><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><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://www.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://www.sonatype.com/people/2010/02/nexus-system-feeds-and-log-files-video-walkthrough-of-major-features/</link>
		<comments>http://www.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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/nexus-system-feeds-and-log-files-video-walkthrough-of-major-features/' addthis:title='Nexus System Feeds and Log Files: Video Walkthrough of Major Features '  ><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>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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/nexus-system-feeds-and-log-files-video-walkthrough-of-major-features/' addthis:title='Nexus System Feeds and Log Files: Video Walkthrough of Major Features '  ><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/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://www.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://www.sonatype.com/people/2010/02/nexus-proxy-repositories-video-walkthrough-of-major-features/</link>
		<comments>http://www.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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/nexus-proxy-repositories-video-walkthrough-of-major-features/' addthis:title='Nexus Proxy Repositories: Video Walkthrough of Major Features '  ><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>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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/nexus-proxy-repositories-video-walkthrough-of-major-features/' addthis:title='Nexus Proxy Repositories: Video Walkthrough of Major Features '  ><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><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://www.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://www.sonatype.com/people/2010/02/nexus-hosted-repositories-video-walkthrough-of-major-features/</link>
		<comments>http://www.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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/nexus-hosted-repositories-video-walkthrough-of-major-features/' addthis:title='Nexus Hosted Repositories: Video Walkthrough of Major Features '  ><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 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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/nexus-hosted-repositories-video-walkthrough-of-major-features/' addthis:title='Nexus Hosted Repositories: Video Walkthrough of Major Features '  ><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><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://www.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://www.sonatype.com/people/2010/02/documenting-the-nexus-rest-api-with-enunciate/</link>
		<comments>http://www.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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/documenting-the-nexus-rest-api-with-enunciate/' addthis:title='Documenting the Nexus REST API with Enunciate '  ><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>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[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/documenting-the-nexus-rest-api-with-enunciate/' addthis:title='Documenting the Nexus REST API with Enunciate '  ><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><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://www.sonatype.com/people/2010/02/documenting-the-nexus-rest-api-with-enunciate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus Open Source Security: Video Walkthrough of Major Features</title>
		<link>http://www.sonatype.com/people/2010/02/security-jfokus/</link>
		<comments>http://www.sonatype.com/people/2010/02/security-jfokus/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 08:00:33 +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=4261</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/security-jfokus/' addthis:title='Nexus Open Source Security: Video Walkthrough of Major Features '  ><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 video was used as a demonstration reel at January&#8217;s Jfokus 2010 in Stockholm, Sweden. It provides a useful walk through of the major features of Nexus Security, including user roles, groups, and privileges. If you are new to Nexus, or if you are evaluating the tool, this five minute video gives you an overview [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.sonatype.com/people/2010/02/security-jfokus/' addthis:title='Nexus Open Source Security: Video Walkthrough of Major Features '  ><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/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 video was used as a demonstration reel at January&#8217;s Jfokus 2010 in Stockholm, Sweden.   It provides a useful walk through of the major features of Nexus Security, including user roles, groups, and privileges.  If you are new to Nexus, or if you are evaluating the tool, this five minute video gives you an overview of the UI used to manage Nexus Open Source security.</p>

<p><object width="660" height="405"><param name="movie" value="http://www.youtube.com/v/r6101sD7Kmo&#038;hl=en_US&#038;fs=1&#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/r6101sD7Kmo&#038;hl=en_US&#038;fs=1&#038;hd=1&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="660" height="405"></embed></object><span id="more-4261"></span></p>

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

<table>
  <tr>
    <th>Time (M:SS)</th>
    <th>Note</th>
  </tr>
  <tr>
    <td>0:20</td>
    <td>Logging into Nexus.</td>
  </tr>
  <tr>
    <td>0:29</td>
    <td>Listing and managing Nexus Users</td>
  </tr>
  <tr>
    <td>0:38</td>
    <td>Adding a Nexus User</td>
  </tr>
  <tr>
    <td>1:00</td>
    <td>Assigning User Roles</td>
  </tr>
  <tr>
    <td>1:18</td>
    <td>Browsing a User&#8217;s Role Tree</td>
  </tr>
  <tr>
    <td>1:40</td>
    <td>Tracing a Privilege to a Role</td>
  </tr>
  <tr>
    <td>2:04</td>
    <td>Listing Different Classes of Users</td>
  </tr>
  <tr>
    <td>2:26</td>
    <td>Managing Nexus Roles</td>
  </tr>
  <tr>
    <td>2:54</td>
    <td>Creating a Custom Nexus Role</td>
  </tr>
  <tr>
    <td>3:52</td>
    <td>Managing Nexus Privileges</td>
  </tr>
  <tr>
    <td>4:26</td>
    <td>Creating a Custom Privilege Set</td>
  </tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2010/02/security-jfokus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

