<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>sonatype &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/sonatype/</link>
	<description>Feed of posts on WordPress.com tagged "sonatype"</description>
	<pubDate>Mon, 20 May 2013 05:20:59 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Don’t blame security breaches on open source technology – the problem is lack of oversight ]]></title>
<link>http://gigaom.com/2013/03/17/dont-blame-security-breaches-on-open-source-technology-the-problem-is-lack-of-oversight/</link>
<pubDate>Sun, 17 Mar 2013 17:30:37 +0000</pubDate>
<dc:creator>Guest Column</dc:creator>
<guid>http://gigaom.com/2013/03/17/dont-blame-security-breaches-on-open-source-technology-the-problem-is-lack-of-oversight/</guid>
<description><![CDATA[A hacker attack recently shut down the ad service OnRamp completely. In an official statement posted]]></description>
<content:encoded><![CDATA[<p>A hacker attack recently <a href="http://lvsys.com/openx-on-ramp-is-down">shut down the ad service OnRamp</a> completely. In an <a href="http://forum.openx.org/index.php?showtopic=503521180">official statement posted on its forums a few weeks ago, OpenX</a>, the parent company of OnRamp, questioned the security of open source technology.</p>
<p><span style="font-size:13px;line-height:19px;">Let me be clear about this: This isn’t an open source issue, and we shouldn’t level blame on open source users and producers (Full disclosure: my company Sonatype is an open source software development firm).  Economic and production efficiencies of open source have made it an almost compulsory component of any modern software application. We’ve all reaped tremendous benefits from open source – we develop fast, re-use proven components, and can focus more time on the functionality that’s truly valuable to our employers. </span></p>
<p><span style="font-size:13px;line-height:19px;">It’s not just that open source is good – it’s necessary. That’s why more than 70,000 organizations made nearly 8 billion requests for open source components from the Central Repository last year for use in all the major categories of applications, including the web, cloud, mobile and critical infrastructure.</span></p>
<p>The hard truth is that today more than 80 percent of a typical software application is assembled from existing components – and the vast majority of those are open source, coming from dozens, if not hundreds, of individual projects. All industry verticals, both regulated and unregulated, are using tremendous amounts of open source components in both internal and consumer-facing applications.</p>
<h2 id="open-source-is-essential">Open source is essential</h2>
<p>Think of software development organizations today the same way you would think of car manufacturers. Developers assemble applications using existing components or parts rather than writing applications from scratch. But unlike manufacturing, the software industry lacks the tools to manage the intricacy and risk associated with a complex and distributed software supply chain.</p>
<p>Component-based development needs to be managed, for sure; security problems arise when oversight is incomplete. Simply put, a flawed software supply chain means flawed applications. Our research indicates that at least 71 percent of applications contain components with known security flaws that are classified as severe or critical.</p>
<p>According to one study, “<a href="http://www.digitalforensicsassociation.org/storage/The_Leaking_Vault_2011-Six_Years_of_Data_Breaches.pdf">The Leaking Vault 2011</a>” by the Digital Forensics Association, more than $156 billion in direct losses can be attributed to data breaches in just a five-year period. The <a href="http://www.net-security.org/secworld.php?id=7307">Application Risk Management in Business Survey</a> by Forrester and Veracode found that 62 percent of surveyed organizations reported breaches in the past year due to flaws in their critical applications.</p>
<h2 id="mitigating-inevitable-risks">Mitigating inevitable risks</h2>
<p>The question becomes then how to mitigate the risks associated with component consumption while realizing the benefits of open source. Certainly there are constant and sophisticated threats to open source software; this is true with proprietary software too. We know where danger lies: it comes from using outdated components with known vulnerabilities. It comes from not having an enforceable open source policy. And it comes from not managing component licenses or the licenses of dependencies.</p>
<p>It is important to understand that this is a supply chain problem: You need to manage components at each phase of the software development lifecycle &#8212; at consumption, in development, during integration and within production.</p>
<h2 id="decreasing-security-exposure">Decreasing security exposure</h2>
<p>Decisive security measures at the component layer strengthen the entire software development lifecycle and increase the integrity of the overall software supply chain. Imagine the risk of a vulnerability in a popular open source component. Because the component is used in many applications, within and across various organizations, it becomes a rich target for exploitation. History has shown that an attacker only needs to gain a foothold in an organization and often attacks the weakest link, so the risk of component-based software development could not be greater.</p>
<p>Here are the keys to decreasing this type of exposure:</p>
<ul>
<li>Institute an open source policy if your organization doesn’t already have one. If you do have one, review it, and often.  Make sure it’s clear to both those on the development team and those responsible for managing the security process – whether it’s risk management, legal or Jim the senior developer – to get buy-in from everyone.</li>
<li>Ensure your policy includes key guidelines for component security, licensing and quality attributes. Beyond the over-arching open source policy that outlines the organization’s standards and values, create additional guidelines to drive usage decisions (e.g. age of component at download, license-type, level of documentation.)</li>
<li>Be sure your policies are enforceable. Without the ability to enforce, honestly, what’s the point?  Paper-based policies will be ignored, so look for ways to integrate enforcement into the software development process itself.</li>
<li>Give developers the information they need to make good choices. Your developers are on the front lines so give them the ability to fight. Detecting flaws or non-compliance early on in the process saves time and money down the line.</li>
<li>Before going to production, inventory components and their dependencies. Knowing the makeup of your application is half the battle in troubleshooting vulnerabilities that may be discovered later.</li>
<li>Continuously monitor for newly discovered flaws. New vulnerabilities emerge all the time (just like in proprietary software). You need to know when a new flaw is surfaced, and where exactly the component is being used.</li>
<li>Have a remediation plan. Know how you can fix problems regardless of where they occur in the lifecycle.  Fixing flaws isn’t always easy, and having a plan helps.</li>
</ul>
<p>Open source or proprietary, free or paid, remember this: If we can safeguard the component layer by instituting good component practice it will pays dividends across the lifecycle.</p>
<p><i>Ryan Berg is Chief Security Officer of Sonatype and former Cloud security strategy lead at IBM</i></p>
<p><em>Have an idea for a post you’d like to contribute to GigaOm? Click <a href="http://gigaom.com/2012/11/28/have-an-idea-for-a-great-guest-post-heres-what-you-need-to-know/">here for our guidelines</a> and contact info.</em></p>
<p><em>Photo courtesy pryzmat/Shutterstock.com.</em></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[How to Deploy Nexus Repository Manager to the Cloud]]></title>
<link>http://blog.jelastic.com/2012/10/15/how-to-deploy-nexus-repository-manager-to-the-cloud/</link>
<pubDate>Mon, 15 Oct 2012 14:55:23 +0000</pubDate>
<dc:creator>Marina Sprava</dc:creator>
<guid>http://blog.jelastic.com/2012/10/15/how-to-deploy-nexus-repository-manager-to-the-cloud/</guid>
<description><![CDATA[If you are developing software without a repository manager you are likely missing a number of oppor]]></description>
<content:encoded><![CDATA[<p style="text-align:justify;">If you are developing software without a repository manager you are likely missing a number of opportunities to reduce some pretty obvious inefficiencies. If everyone in your team has to hit Central to download artifacts you are loosing speed and efficiency. If you don&#8217;t have a local place to deploy artifacts you are forced to share binary artifacts using half-measures and compromises such as storing binaries in source control. Stop developing in the Dark Ages and start using a repository manager. Once you start using <a href="http://www.sonatype.org/nexus/">Nexus</a>, you&#8217;ll wonder how you have ever functioned without it. <a href="http://www.sonatype.org/nexus/">Sonatype Nexus</a> sets the standard for repository management providing development teams with the ability to proxy remote repositories and share software artifacts.</p>
<p style="text-align:justify;">Follow the simple steps below to get one of the best repository managers on the market up and running in a few minutes.</p>
<h2><strong>Create the environment</strong></h2>
<p style="text-align:justify;">1. Go to <a href="http://jelastic.com">jelastic.com</a> and sign up if you haven&#8217;t done it yet or log in with your Jelastic credentials by clicking the<strong> Sign In</strong> link on the page.</p>
<p style="text-align:justify;">2. Ask Jelastic to create a new environment.</p>
<p><a href="http://jelastic.files.wordpress.com/2011/10/alf-11.png"><img class="aligncenter" title="alf-1" alt="" src="http://jelastic.files.wordpress.com/2011/10/alf-11.png?w=286&#038;h=109" height="109" width="286" /></a></p>
<p style="text-align:justify;">3. Choose <strong>Tomcat 7 </strong>as your application server and set the cloudlets limit. Then type your environment name, for example, <em>nexus, </em>and click <strong>Create</strong>.</p>
<p><a href="http://jelastic.files.wordpress.com/2012/10/nexus1.png"><img class="size-full wp-image-6496 aligncenter" title="nexus1" alt="" src="http://jelastic.files.wordpress.com/2012/10/nexus1.png?w=497&#038;h=284" height="284" width="497" /></a></p>
<p style="text-align:justify;">Wait just a minute for your environment to be created.</p>
<p><a href="http://jelastic.files.wordpress.com/2012/10/nexus2.png"><img class="size-full wp-image-6497 aligncenter" title="nexus2" alt="" src="http://jelastic.files.wordpress.com/2012/10/nexus2.png?w=497&#038;h=72" height="72" width="497" /></a></p>
<h2>Upload Java package</h2>
<p style="text-align:justify;">1. Go to<a href="http://www.sonatype.org/nexus/go?__utma=246996102.562673285.1349251061.1349251061.1350287109.2&#38;__utmb=246996102.5.9.1350287384252&#38;__utmc=246996102&#38;__utmx=-&#38;__utmz=246996102.1349251061.1.1.utmcsr=(direct)&#124;utmccn=(direct)&#124;utmcmd=(none)&#38;__utmv=-&#38;__utmk=44657319"> Sonatype web site</a><strong> </strong>and<strong> </strong>copy the link to<strong> </strong>the latest Nexus release WAR archive.</p>
<p><a href="http://jelastic.files.wordpress.com/2012/10/nexus3.png"><img class="size-full wp-image-6498 aligncenter" title="nexus3" alt="" src="http://jelastic.files.wordpress.com/2012/10/nexus3.png?w=497&#038;h=380" height="380" width="497" /></a></p>
<p style="text-align:justify;">2. Switch back to the Jelastic dashboard and upload the java package to the <strong>Deployment manager </strong>using copied URL.</p>
<p style="text-align:center;"><a href="http://jelastic.files.wordpress.com/2012/10/nexus4.png"><img class=" wp-image-6499 aligncenter" title="nexus4" alt="" src="http://jelastic.files.wordpress.com/2012/10/nexus4.png?w=358&#038;h=139" height="139" width="358" /></a></p>
<p style="text-align:justify;">3. Once the package is in <a href="http://jelastic.com">Jelastic</a>, deploy it to the environment you have created earlier.</p>
<p style="text-align:center;"><a href="http://jelastic.files.wordpress.com/2012/10/nexus5.png"><img class=" wp-image-6500 aligncenter" title="nexus5" alt="" src="http://jelastic.files.wordpress.com/2012/10/nexus5.png?w=318&#038;h=109" height="109" width="318" /></a></p>
<p style="text-align:justify;">4. Open your application in a web browser and start managing your artifacts!</p>
<p><a href="http://jelastic.files.wordpress.com/2012/10/nexus6.png"><img class="size-full wp-image-6501 aligncenter" title="nexus6" alt="" src="http://jelastic.files.wordpress.com/2012/10/nexus6.png?w=497&#038;h=70" height="70" width="497" /></a></p>
<p><a href="http://jelastic.files.wordpress.com/2012/10/nexus7.png"><img class="size-full wp-image-6502 aligncenter" title="nexus7" alt="" src="http://jelastic.files.wordpress.com/2012/10/nexus7.png?w=497&#038;h=191" height="191" width="497" /></a></p>
<p>Cheers!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Enterprise Open Source Usage Is Up, But Challenges Remain]]></title>
<link>http://techcrunch.com/2012/04/22/enterprise-open-source-usage-is-up-but-challenges-remain/</link>
<pubDate>Sun, 22 Apr 2012 21:30:43 +0000</pubDate>
<dc:creator>Scott Merrill</dc:creator>
<guid>http://techcrunch.com/2012/04/22/enterprise-open-source-usage-is-up-but-challenges-remain/</guid>
<description><![CDATA[I think we can all safely agree that open source software development is here to stay. Open, collabo]]></description>
<content:encoded><![CDATA[<p>I think we can all safely agree that <a href="http://www.techcrunch.com/tag/open-source">open source</a> software development is here to stay. Open, collaborative development has fundamentally changed not only how we code, but also the code we produce. It&#8217;s easier than ever to build complex solutions by reusing existing components. A new <a href="http://www.sonatype.com/people/wp-content/uploads/2012/03/2012-sonatype-survey-findings-PDF.pdf">report</a> from <a href="http://www.sonatype.com/">Sonatype</a> examines the current state of open source in the enterprise. Although heavily slanted toward open source Java consumption, the trends are interesting. It&#8217;s also worth pointing out that Sonatype provides a solution for open source software management, so they have a stake in the game here. Their data is worth a look, though.</p>
<p>Nearly 80% of the enterprises surveyed consume open source software. Most interesting to me: two thirds of them are actively contributing code back to the upstream projects they consume. Also interesting to note is that just shy of half of all surveyed companies have a formal open source policy in place. And of those with formal policies, half of the respondents cite those policies as detrimental to the success of development.</p>
<p>The top complaints about formalized open source policies are:</p>
<ul>
<li>it slows down development</li>
<li>we find out about problems too late in the process</li>
<li>it&#8217;s not clear what&#8217;s expected of us</li>
<li>there is no enforcement</li>
</ul>
<p>Some organizations further restrict open source software usage by license, going so far as to verify the license of all components and their dependencies. At first blush that might sound like a big waste of time, but in reality that&#8217;s <em>a good thing</em>: open source license compliance is important, and fundamentally important to the longevity of open source in general. Of course, if these enterprises aren&#8217;t distributing their applications to others then license compliance with copyleft licenses like the GNU Public License isn&#8217;t as big of a deal.</p>
<p>Sonatype&#8217;s primary product, <a href="http://www.sonatype.com/Products/Nexus-Professional">Nexus Professional</a> is a repository manager that aims to solve many of the licensing, dependency, and procurement problems identified in the Sonatype survey (again, with a specific focus on Java). The survey highlights that 73% of enterprises stay informed on new releases of the open source components they use by manual web searches, or by directly visiting the projects&#8217; websites. That&#8217;s clearly inefficient. Even established code sharing services like GitHub, Google Code, and SourceForge aren&#8217;t being as heavily utilized as they could be by the companies surveyed.</p>
<p>The primary motivation for this report is to demonstrate the need for Sonatype&#8217;s products, obviously. That focus, though, reveals useful general information. For example, the financial industry is the most likely to completely lock down open source developers to using specific approved resources. Another interesting revelation: the aspects of open source software most important to the companies surveyed are maturity, security, and overall code quality. License type is only of interest to a comparatively smaller portion of survey respondents.</p>
<p>Regardless of any challenges introduced by open source software, it&#8217;s clear that open source is gainin more popularity within traditional enterprises. Anything that can be done to simplify the consumption and compliance issues identified by Sonatype &#8212; for Java and every other language &#8212; is a good thing.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[How to develop open-source software within any kind of company]]></title>
<link>http://venturebeat.com/2012/03/19/how-to-develop-open-source-software-within-any-kind-of-company/</link>
<pubDate>Mon, 19 Mar 2012 18:04:16 +0000</pubDate>
<dc:creator>Jolie O'Dell</dc:creator>
<guid>http://venturebeat.com/2012/03/19/how-to-develop-open-source-software-within-any-kind-of-company/</guid>
<description><![CDATA[For businesses and other organizations today, open-source software (OSS) is transformative in terms]]></description>
<content:encoded><![CDATA[<p><img src="http://venturebeat.files.wordpress.com/2012/03/open-source-software-development.jpg?w=655&#038;h=310" alt="" title="open-source-software-development" width="655" height="310" class="aligncenter size-full wp-image-405236" /></p>
<p>For businesses and other organizations today, open-source software (OSS) is transformative in terms of its ability to allow organizations to write software very quickly and to leverage innovation very aggressively. </p>
<p>OSS component-based development has reached a strategic tipping point, having moved from a cost-effective solution to a competitive advantage capable of delivering rapid and substantial return on investment for organizations that use it.</p>
<p>And use it they do. More than <a href="http://arstechnica.com/open-source/news/2008/02/gartner-80-percent-of-commercial-software-programs-will-include-open-source-by-2012.ars" target="_blank">80 percent of modern software includes open sourcecomponents</a>. </p>
<p>Typical organizations, including Global 2000 enterprises, use thousands of OSS components, often in mission-critical software portfolios. Startups can quickly bring applications to market by focusing creative development on their core competency and relying on OSS for everything else. My company&#8217;s <a href="http://www.sonatype.org/central" target="_blank">Central Repository</a>, containing nearly 90 percent of open source Java projects, serves more than four billion requests per year to more than 61,000 organizations per year, including more than half of the Global 2000.</p>
<h2>A vibrant ecosystem with a fundamental flaw</h2>
<hr />
<p>The same core advantage of OSS &#8211;its free availability, rapid innovation, and highly interdependent projects &#8212; introduces risks that can sabotage the IT or business value of key applications.</p>
<p>The issue really boils down to two interrelated concerns:</p>
<p><strong>Complex dependencies:</strong> The open source ecosystem is comprised of hundreds of thousands of components, each of which may depend on tens or hundreds of other components.  The whole ecosystem is interdependent.  As a result, the properties (good or bad) of any one component are inherited across many others.  </p>
<p>A simple, but potent example might help. Version 2.5.6 of the Spring-beans contained a severe, remotely exploitable security flaw.  Spring-beans is a commonly used component, and 1,447 others depend on it.  So the security vulnerability was inherited by all 1,447 other components, and untold thousands of applications that rely Spring-beans directly or indirectly.</p>
<p>Intellectual property issues add another dimension.  Every component and dependency added to an application has specific and enforceable licensing and copyright requirements.  This is true even if those dependencies are added unwittingly.  This is troubling for software and embedded systems vendors who might inadvertently include a copyleft license such as the GPL in their shipping products.    </p>
<p>This exact issue has resulted in numerous and expensive lawsuits including the well-publicized instance of Cisco’s unknowing inclusion of GPL code in their Linksys routers.  In this case, the Free Software Foundation sued Cisco and forced the company, among other things, to make their source code publicly available. </p>
<p><strong>Lack of update notification infrastructure:</strong> Components are updated frequently; the average component in Central is updated four times year.  And yet, with all this change, there is no automated mechanism for update notification.    </p>
<p>Take the Spring-beans example. Once the security vulnerability was fixed, there was no automated mechanism for the projects that depend on the old version to be updated to the new, fixed version.  Taking it one step further, absent automated update notification, none of the direct or indirect users of the flawed Spring-beans components would have any idea that their applications were at risk.  </p>
<p>In this wild West sort of lawlessness, many organizations are clearly taking chances and hoping for the best.  A <a href="http://www.sonatype.com/people/2012/03/the-results-are-in-sonatype-2012-open-source-development-survey/" target="_blank">2012 survey we conducted</a> among 2,550 developers, architects, and managers found that only 20 percent of organizations have put effective open source management policies in place.</p>
<h2>Order out of chaos: A strategy for optimization</h2>
<hr />
<p>Strategizing to yield the greatest ROI in using OSS demands a high-level awareness of how, why, and where OSS is used, along with consistent knowledge of OSS benefits, risks, and policies. </p>
<p>To this end, several vendors offer software composition analysis tools that apply data mining technology for use in inspecting OSS components for security and functionality issues, known fixes, IP ownership, and versioning. The best of these tools enable organizations to govern development processes, continuously monitor the health of their repositories, and retrieve real-time alerts when critical applications are affected by newly discovered threats.</p>
<p>To maximize the business value of OSS while minimizing risks:</p>
<ul>
<li>Assess your current usage of OSS components to grasp where you’re starting from, as an aid to setting realistic goals.</li>
<li>Establish an open source governance program to filter, audit, track and manage open-source assets in the organization, and deploy mechanisms to monitor the effectiveness of your governance program.</li>
<li>Build open source management into your entire software development process, evaluating OSS components before and while using them in development .</li>
<li>Analyze and continuously monitor all deployed applications for newly discovered security vulnerabilities and stability issues.</li>
<li>Establish well-defined channels of acquisition (such as the Central Repository) for each OSS component you leverage.</li>
<li>Engage with the OSS community and establish routes to service and support for key components and frameworks.</li>
</ul>
<p>Properly managing the use of OSS in development will let you focus not merely on the cost savings it can bring you, but also on the wealth of innovation ongoing in the open source domain. It will help make OSS a catalyst for change in your organization.</p>
<p><img src="http://venturebeat.files.wordpress.com/2012/03/wayne-jackson-sonatype.jpg?w=100&#038;h=101" alt="" title="wayne-jackson-sonatype" width="100" height="101" class="alignleft size-full wp-image-405231" /><em>Wayne Jackson is CEO of <a href="http://www.sonatype.com/" target="_blank">Sonatype</a>, a company that is transforming software development with tools, information, and services that enable organizations to build better software faster using open-source components. Contact him at wjackson@sonatype.com.</em></p>
<p><em>Image courtesy of <a href="http://www.shutterstock.com/cat.mhtml?lang=en&#38;search_source=search_form&#38;version=llv1&#38;anyorall=all&#38;safesearch=1&#38;searchterm=man+laptop+serious&#38;search_group=&#38;orient=&#38;search_cat=&#38;searchtermx=&#38;photographer_name=&#38;people_gender=&#38;people_age=&#38;people_ethnicity=&#38;people_number=&#38;commercial_ok=&#38;color=&#38;show_color_wheel=1#id=87036080&#38;src=c65018077fa8bae2eed737b3dc9ffbd6-1-1" target="_blank">olly</a>, Shutterstock</em></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Central Maven Repository Publish Experience]]></title>
<link>http://gibaholms.wordpress.com/2012/03/13/central-maven-repository-publish-experience/</link>
<pubDate>Tue, 13 Mar 2012 13:12:42 +0000</pubDate>
<dc:creator>gibaholms</dc:creator>
<guid>http://gibaholms.wordpress.com/2012/03/13/central-maven-repository-publish-experience/</guid>
<description><![CDATA[This week I published an Open Source Project that I maintain, to the Sonatype OSS Repository Hosting]]></description>
<content:encoded><![CDATA[<p>This week I published an Open Source Project that I maintain, to the Sonatype OSS Repository Hosting Service, with the objective of make the project available in the Central Maven Repository. </p>
<p>The project that I published is the <a title="FFPOJO Project" href="https://github.com/ffpojo" target="_blank">FFPOJO Project</a>, which is a Flat-File Parser, POJO based, library for Java applications. </p>
<p>The objective of this post is to comment my experience in the publishing process and provide some tips and points to people who are in this process to.</p>
<ul>
<li>It’s quite obvious but you must own the domain in your GroupId and the package names must start with this domain too;</li>
<li>If you host your project at <a title="GitHub WebSite" href="https://github.com/" target="_blank">GitHub</a>, you can create a free account and turn it on an organizational account, then link this account to your personal user as an organization member. This can provide you an domain like &#8220;<a href="https://github.com/projectname&#038;#8221" rel="nofollow">https://github.com/projectname&#038;#8221</a>;, which let you to use the group id and package names like “com.github.projectname”;</li>
<li>Create a parent-pom and use inheritance and multi-modules to concentrate project-specific pom tags into the parent-pom and facilitate the release process. Remember that the nested project structure is more compatible than flat structure;</li>
<li>Follow strictly the instructions in the official <a title="Sonatype Guide" href="https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide" target="_blank">Sonatype repository usage guide</a>;</li>
<li>Use the javadoc pluging and the source plugin to generate the “-javadoc.jar” and “-sources.jar”;</li>
<li>Use the maven release plugin to facilitate the release management;</li>
<li>If you use GitHub and Windows for development, you might get an error on release:prepare that maven stucks after the push command. This happens when you use passphrase in your GitHub SSH certificate. The best solution I found is to use other certificate with no passphrase. I found other solutions like use putty pageant/plink to cache the certificate and passphrase and use it as ssh client, but not worked for me. The easiest is not use passphrase at all;</li>
<li>If you use GitHub and Windows for development, when you call release:prepare on Cygwin Git Bash, you might see an error like “pom.xml is outside repository”. It’s a relative/absolute path trouble in the maven git scm plugin. The best solution I found is to run maven from cmd.exe instead of Git Bash. Then the ssh.exe and git.exe folders must be in the PATH variable;</li>
<li>Don’t forget to publish your GPG public key at the public keyservers (hkp://pool.sks-keyservers.net, hkp://keyserver.ubuntu.com, hkp://pgp.mit.edu). This is verified by the central at release promotion time.</li>
</ul>
<p>That’s it. I have not found any other trouble in the process, it is very fast and the JIRA administrators are very attentive. Finally, the FFPOJO framework can be found in the Maven Central like any other open source framework:</p>
<pre class="brush: xml; title: ; notranslate" title="">
&#60;dependencies&#62;
	&#60;dependency&#62;
		&#60;groupId&#62;com.github.ffpojo&#60;/groupId&#62;
		&#60;artifactId&#62;ffpojo&#60;/artifactId&#62;
		&#60;version&#62;1.0&#60;/version&#62;
	&#60;/dependency&#62;
&#60;/dependencies&#62; 
</pre>
<p>If you want to know better the FFPOJO library, please visit the <a title="FFPOJO Project" href="https://github.com/ffpojo" target="_blank">project website on GitHub</a>.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Working with Maven multi-module projects in RTC Jazz SCM with m2]]></title>
<link>http://mikemacd.wordpress.com/2012/02/11/working-with-maven-multi-module-projects-in-rtc-jazz-scm-with-m2/</link>
<pubDate>Sat, 11 Feb 2012 01:02:42 +0000</pubDate>
<dc:creator>mikemacd</dc:creator>
<guid>http://mikemacd.wordpress.com/2012/02/11/working-with-maven-multi-module-projects-in-rtc-jazz-scm-with-m2/</guid>
<description><![CDATA[I&#8217;ve been working with Maven projects with m2 for a while in RTC Jazz SCM so thought I&#8217;d]]></description>
<content:encoded><![CDATA[<p>I&#8217;ve been working with <a href="http://maven.apache.org/">Maven</a> projects with <a href="http://eclipse.org/m2e/">m2</a> for a while in RTC Jazz SCM so thought I&#8217;d post some notes. For reference this post covers using RTC v3.x things may change in the future. If you&#8217;re not using m2 then I&#8217;d suggest you read <a href="http://phkrief.wordpress.com/2010/09/24/when-maven-meets-rational-team-concert/">this blog by </a><a title="Philippe Krief's Blog" href="http://phkrief.wordpress.com/">Philippe Krief</a><a href="http://phkrief.wordpress.com/2010/09/24/when-maven-meets-rational-team-concert/">.</a></p>
<p>First of all it&#8217;s important to understand that RTC v3 has limited support for Maven. You can setup a build definition which can call a maven goal (such as a local install) easily enough but that&#8217;s about it. The RTC build mechanism is basically a cron job with a nice web (like Hudson/Jenkins without the plugins) and Eclipse front end, it doesn&#8217;t have a deep understanding of Maven.</p>
<p>The whole point of Maven over Ant is that it does a lot by convention rather than specification, however in most advanced Maven project I&#8217;ve seen pom files are as big as equivalent <a href="http://ant.apache.org/">Ant</a> + <a href="http://ant.apache.org/ivy/">Ivy</a> files. Regardless I still think Maven with the excellent <a href="http://www.sonatype.com/">Sonatype Nexus</a> is awesome (although I also like the structured bash/batch like nature of Ant as well).</p>
<p>Most serious Maven projects are multi-module. This is because <a href="http://www.ivarjacobson.com/Software_Component_Essentials.aspx">component based development</a> is a good thing (shameless employer plug, but it&#8217;s true, it is a good thing). Most (tending to all) multi-module projects have the following structure where &#8220;O&#8221; is a folder and &#8220;-&#8221; is a file, considering a hypothetical ProductX:</p>
<blockquote><p>- pom.xml (the parent pom for the master/uber/product build, lists child modules)</p>
<p>- various files at the root of ProductX</p>
<p>O ModuleA</p>
<p>- pom.xml (for ModuleA)</p>
<p>- various ModuleA root files</p>
<p>O various ModuleA folders of stuff (such as src)</p>
<p>O Module B</p>
<p>- pom.xml (for ModuleB)</p></blockquote>
<p>- various ModuleB root files</p>
<p>O various ModuleB folders of stuff</p>
<p>If you want to work with this stuff in RTC Jazz SCM then you need to balance the constraints of Maven m2, RTC and Eclipse. If you&#8217;re considering doing this then you&#8217;ll probably be considering moving existing Maven projects to RTC, in which case you may find a <a title="How to migrate source to Jazz RTC SCM" href="http://mikemacd.wordpress.com/2011/09/19/how-to-migrate-source-to-jazz-rtc-scm/">previous blog on a manual migration script</a> useful. The only edit to this I make for Maven is to separately import the parent from the children if flattening the structure (although in most cases I wouldn&#8217;t recommend flattening).</p>
<p>The constraints playing against each other are:</p>
<ul>
<li>Maven and plugins expect sub-modules to be in child directories as in the tree above</li>
<li>RTC doesn&#8217;t allow both an Eclipse project and root files to be at the root of a component</li>
<li>The simple case of Eclipse and RTC SCM interacting during a load from the server restricts Eclipse to only seeing projects which are represented as folders at the root of the local Eclipse workspace containing .project files.</li>
<li>Eclipse doesn&#8217;t really support parent and child projects.</li>
</ul>
<p>I&#8217;ve found there are a number of approaches, none are perfect:</p>
<p><strong>1. Flatten the structure (my opinion the worst option)</strong></p>
<p>You can edit the parent pom.xml to reference the sub-modules as ../ModuleA etc. although the Maven release plugin (amongst others) don&#8217;t play well with this. Also, and somewhat fundamentally, you shouldn&#8217;t have to restructure your code based on your SCM tool.</p>
<p><strong>2. Only load the relevant bits (my opinion is it&#8217;s sometimes ok)</strong></p>
<p>You could just load the child modules you&#8217;re currently working on and then unload (remember to delete local files or you hit a bug) and then reload the parent when you want to do a &#8220;big&#8221; parent build. Frankly this is unacceptable from a developers perspective and will fail anyway if there&#8217;s a dependency on the parent from the children. Although in theory this may be frowned upon it&#8217;s quite common and so needs supporting by the scm tool.</p>
<p><strong>3. Load then import, with auto-refresh (my preferred option)</strong></p>
<p>This one is going to be more than one paragraph&#8230;.</p>
<p>Prediction fulfilled ;p Anyway&#8230; Currently your developers may be used to a scm system where they load/copy/access files from the scm system on the local filesystem and then do an Eclipse -&#62; Import Existing Maven projects to get all of the various goodies.</p>
<p>If you import the multi-module project as above but with a root folder (as an eclipse project) so it has the following structure:</p>
<blockquote><p>O Product X</p>
<p>.project</p>
<p>- pom.xml modules)</p>
<p>- various files at the root of ProductX</p>
<p>O ModuleA</p>
<p>- pom.xml (for ModuleA)</p>
<p>- various ModuleA root files</p>
<p>O various ModuleA folders of stuff</p>
<p>O Module B</p>
<p>- pom.xml (for ModuleB)</p></blockquote>
<p>- various ModuleB root files</p>
<p>O various ModuleB folders of stuff</p>
<p>Then when you do a load from Jazz SCM you&#8217;ll get in the Eclipse Project Explorer (or equivalent) ProductX correctly detected as a Maven project (or an Eclipse project with a Maven nature for the pedantic amongst you).</p>
<p>You can then do a normal Eclipse -&#62; Import Existing Maven Projects based on your workspace/ProductX/&#8230; (taking care <em>not</em> to select &#8220;Copy projects into workspace&#8221;) You&#8217;ll then get in Project Explorer (or whatever):</p>
<blockquote><p>ProductX (info about rtc scm links)</p>
<p>ModuleA</p>
<p>ModuleB</p></blockquote>
<p>In this view ModuleA and ModuleB exist in two places: as projects referenced in the workspace but apparently outside of RTC SCM control; as a folder structure under ProductX/ModuleA and ProductX/ModuleB.</p>
<p>This has the following advantages:</p>
<ul>
<li>Cross-project dependencies resolve</li>
<li>You can run the parent/uber pom goals <em>and</em> the child pom goals without reloading anything</li>
<li>You can shift focus between the child-modules and parent structure without reloading anything</li>
</ul>
<p>If you edit files in ModuleA and ModuleB under the folder hierarchy of ProductX then Pending Changes will keep track in the normal way but if you edit a file under the apparent &#8220;root level&#8221; ModuleA and ModuleB then Pending Changes won&#8217;t unless you do a &#8220;deep refresh&#8221;.</p>
<p>Alternatively just go to Eclipse -&#62; Window -&#62; Preferences -&#62;  General -&#62; Workspaces -&#62; Refresh automatically (er&#8230; I think, I&#8217;m doing this from memory, hence the lack of screenshots). You can then add &#8220;edit files tracked by Pending Changes at either Product or child module level&#8221; to the advantages above.</p>
<p>So this option sounds great so far, what are the downsides?</p>
<p>This solution maintains the hierarchical structure between ProductX and it&#8217;s child modules and as such constrains everything from ProductX downwards to be in the same Jazz SCM component as eclipse projects can only be seen (without far too much fiddling) if they&#8217;re root folders in components. This may not seem like such a big deal but components are the lowest level of baseline (or label) in Jazz SCM. In a tightly coupled cohesive single architecture this might not be a problem but if you want to reuse any of these modules (at a code level) or have a separate ownership it will be a problem. It&#8217;s also very common to have dependencies from child modules to parent projects (which may <em>initially</em> seem to resolve if they&#8217;re in the local ~/.m2 repository).</p>
<p>Having said that source code dependencies between components lead to brittle architectures, binary dependencies are far superior, and made much easier by the use of things like Ivy/Maven and Nexus.</p>
<p><strong>Other considerations</strong></p>
<p>The point above above binary vs. code dependencies can be argued until the cows come home and go out again (<a title="Direct, Indirect and complex metaphors" href="http://mikemacd.wordpress.com/2011/10/14/direct-indirect-and-complex-metaphors/">an extended metaphor</a>), especially if you consider project/product/team/release boundaries. I&#8217;m not going to pretend to answer those with an academic silver bullet here, the important thing I hope you take away from this blog is that there are pros and cons to all of these approaches, balancing those with the needs of your team/architecture/project/organisation are not easy. Shameless plug: Give me a call if you need help</p>
<p>Eclipse refactoring isn&#8217;t dealt with well by Jazz SCM, especially between Eclipse projects in and &#8220;out&#8221; of source control (advocated by option 3 above). Expect a lot of &#8220;remove/add&#8221; combinations if you are doing anything more than a trivial set of file changes. This is also a problem for the <a title="Automatic bidirectional synchronisation between RTC and ClearCase" href="http://mikemacd.wordpress.com/2011/10/10/automatic-bidirectional-synchronisation-between-rtc-and-clearcase/">ClearCase &#60;-&#62; RTC automatic synchroniser</a> developed by the excellent <a href="http://www.samecs.com/">Samecs</a> however I know that I, others and Samecs are pushing for improvements on this from IBM.</p>
<p>This post has been very scm focussed but what about build and release? The RTC build engine understands maven to a limited degree and can easily invoke maven builds for information on integating the maven release process see<a title="How to do maven releases with Jazz SCM" href="http://mikemacd.wordpress.com/2012/04/30/how-to-do-maven-releases-with-jazz-scm/"> How to do maven releases with Jazz SCM</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Host projects on Maven Central]]></title>
<link>http://scrtchpad.wordpress.com/2011/09/09/host-projects-on-maven-central/</link>
<pubDate>Thu, 08 Sep 2011 20:10:42 +0000</pubDate>
<dc:creator>Kapil Viren Ahuja</dc:creator>
<guid>http://scrtchpad.wordpress.com/2011/09/09/host-projects-on-maven-central/</guid>
<description><![CDATA[Image via CrunchBase Recently, when I decided to make my projects available to the Java Community un]]></description>
<content:encoded><![CDATA[<div class="zemanta-img">
<div class="wp-caption alignright" style="width: 340px"><a href="http://www.crunchbase.com/company/sonatype" target="_blank"><img title="Image representing Sonatype as depicted in Cru..." src="http://www.crunchbase.com/assets/images/resized/0006/7994/67994v1-max-450x450.png" alt="Image representing Sonatype as depicted in Cru..." width="330" height="80" /></a><p class="wp-caption-text">Image via CrunchBase</p></div>
</div>
<p>Recently, when I decided to make my projects available to the Java Community under Open Source license, I did a lot of things like Hosting my code on Google Code, using Maven to build and test the code and also making sure that I have a project site up and running. However, even after all of this, there was one thing that was missing which was the most essential &#8211; &#8220;Hosting the project files on a repository so that users who may find these utilities useful may use it&#8221;.</p>
<p>I found out that Sonatype would allow me to deploy my code to Maven Central Repository. However, after 3 days of trial and error, I have finally been able to release a version of my code to the Central Repo. I am writing this post so that if you ever want to do this, you will not have to go through the same pain as I did.</p>
<p>Read the full article <a href="http://scratchpad101.com/2011/09/08/project-files-maven-central/" target="_blank">here</a> (<a href="http://scratchpad101.com/2011/09/08/project-files-maven-central/" target="_blank">http://scratchpad101.com/2011/09/08/project-files-maven-central/</a>).</p>
		<div id="geo-post-333" class="geo geo-post" style="display: none">
			<span class="latitude">0.000000</span>
			<span class="longitude">0.000000</span>
		</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Autodesk Vasari Project &amp; Nucleus project]]></title>
<link>http://dkor.wordpress.com/2011/05/20/autodesk-vasari-project-nucleus-project/</link>
<pubDate>Fri, 20 May 2011 14:43:11 +0000</pubDate>
<dc:creator>dkor</dc:creator>
<guid>http://dkor.wordpress.com/2011/05/20/autodesk-vasari-project-nucleus-project/</guid>
<description><![CDATA[The last few days, I visited the Autodesk Labs web site in order to know which projects the company]]></description>
<content:encoded><![CDATA[The last few days, I visited the Autodesk Labs web site in order to know which projects the company]]></content:encoded>
</item>
<item>
<title><![CDATA[Your Hometown &amp; the United Nations’ Agenda 21]]></title>
<link>http://goldcountrypatriots.com/2011/03/07/your-hometown-the-united-nations%e2%80%99-agenda-21/</link>
<pubDate>Tue, 08 Mar 2011 06:58:04 +0000</pubDate>
<dc:creator>goldcountrypatriots</dc:creator>
<guid>http://goldcountrypatriots.com/2011/03/07/your-hometown-the-united-nations%e2%80%99-agenda-21/</guid>
<description><![CDATA[Thousands of businesses have already fled the “protection racket” of government in what was once kno]]></description>
<content:encoded><![CDATA[<address><img class="alignleft" src="http://www.thenewamerican.com/images/stories2011/11aFebruary/2704-agnda21.jpg" alt="" width="116" height="160" />Thousands of businesses have already fled the “protection racket” of  government in what was once known as the Golden State; thousands more  are following, taking with them hundreds of thousands of jobs.</address>
<address><a href="http://www.thenewamerican.com/index.php/tech-mainmenu-30/environment/6235-your-hometown-a-the-united-nations-agenda-21" target="_blank">Read more&#8230;</a><br />
</address>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Sonatype Nexus aufsetzen...]]></title>
<link>http://tetanuss.wordpress.com/2009/06/12/sonatype-nexus-aufsetzen/</link>
<pubDate>Fri, 12 Jun 2009 20:28:29 +0000</pubDate>
<dc:creator>tetanuss</dc:creator>
<guid>http://tetanuss.wordpress.com/2009/06/12/sonatype-nexus-aufsetzen/</guid>
<description><![CDATA[&#8230; erstmal ganz erfreulich die Installation unter Mac OS X &#8211; wie immer eben . Downloaden,]]></description>
<content:encoded><![CDATA[<p>&#8230; erstmal ganz erfreulich die Installation unter Mac OS X &#8211; wie immer eben <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Downloaden, Auspacken und Starten. Fertig? Nein. Denn blöderweise sind nicht die aktuellen Repository Adressen in der ausgelieferten Version 1.3.4 enthalten, was zu dem <a href="http://nexus.sonatype.org/mailing-list-archives.html#nabble-td22448582">hier</a> beschriebenen Problem führt. ReIndex hat keinerlei Wirkung &#8211; es passiert einfach gar nichts. Am besten die bereits konfigurierten Repositories löschen und die Repositories neu anlegen (mit korrekter URL!) wichtig beim ausführen des ReIndex &#8211; das dauert etwas &#8211; also kurz warten.</p>
<p>Ansonsten beschreibt das Vimeo auf <a href="http://nexus.sonatype.org/using/documentation.html">dieser</a> Seite die Installation sehr gut. Und das downloaden der Artefakte beschleunigt sich erheblich!</p>
<p>Noch ein kurzer Nachtrag:<br />
Nach ein Paar Tagen ging&#8217;s mir ziemlich auf den Keck&#8217;s den Nexus immer von Hand starten zu müssen. Daher hier noch der Tipp wie man den Nexus unter OS X auf dem Mac beim einloggen hochfahren kann.</p>
<p>Als erstes brauchen wir hierzu eine .plist Datei</p>
<pre class="brush: xml; title: ; notranslate" title="">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE plist PUBLIC &quot;-//Apple Computer//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
&lt;plist version=&quot;1.0&quot;&gt;
	&lt;dict&gt;
		&lt;key&gt;Label&lt;/key&gt;
		&lt;string&gt;sonatype.nexus&lt;/string&gt;
		&lt;key&gt;Program&lt;/key&gt;
		&lt;!-- Enter the path to your nexus installation here --&gt;
		&lt;string&gt;/usr/local/nexus/nexus-current/bin/jsw/macosx-universal-32/nexus&lt;/string&gt;
		&lt;key&gt;ProgramArguments&lt;/key&gt;
		&lt;array&gt;
			&lt;string&gt;nexus&lt;/string&gt;
			&lt;string&gt;start&lt;/string&gt;
		&lt;/array&gt;
		&lt;key&gt;RunAtLoad&lt;/key&gt;
		&lt;true/&gt;
	&lt;/dict&gt;
&lt;/plist&gt;
</pre>
<p>Diese speichern wir unter dem Verzeichnis<br />
<code>~/Library/LauchAgents/sonatype.nexus.plist</code><br />
Als Nächstes tragen wir das Ganze mit dem <code>launchctl</code> Kommando auf der Console ein<br />
<code>launchctl start sonatype.nexus</code></p>
<p>Das war&#8217;s dann auch schon. Ab jetzt sollte nach dem einloggen des Users im Browser unter <code>localhost:8081/nexus</code> die Adminconsole von Nexus erscheinen.</p>
<p>Die Idee hab ich übrigens von <a href="http://macstrac.blogspot.com/2008/08/running-nexus-with-launchd-on-os-x.html">hier</a>. Aber die .plist Datei von dort funktioniert absolut nicht &#8211; sieht auch sehr experimentell aus. Würd&#8217; dem Autor auch gern in seinem Blog schreiben, aber extra dafür anmelden??? :s</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Crunch Time]]></title>
<link>http://discursive.com/2008/05/05/crunch-time/</link>
<pubDate>Mon, 05 May 2008 00:48:00 +0000</pubDate>
<dc:creator>Tim O'Brien</dc:creator>
<guid>http://discursive.com/2008/05/05/crunch-time/</guid>
<description><![CDATA[Argh! So much &amp;*^% to get one before tomorrow and I&#8217;m not even going to J1 until Tuesday.]]></description>
<content:encoded><![CDATA[<p>Argh!  So much &#38;*^% to get one before tomorrow and I&#8217;m not even going to J1 until Tuesday.   Right now, I am furiously trying to &#8220;complete&#8221; the Maven Book for two masters: it was due to production on Friday *and* I&#8217;m trying to time the next release to CommunityOne.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Making an Ass of Myself: Episode I]]></title>
<link>http://discursive.com/2008/04/19/making-an-ass-of-myself-episode-i/</link>
<pubDate>Sat, 19 Apr 2008 21:39:00 +0000</pubDate>
<dc:creator>Tim O'Brien</dc:creator>
<guid>http://discursive.com/2008/04/19/making-an-ass-of-myself-episode-i/</guid>
<description><![CDATA[Today, I recorded my first podcast, you can see the result over on the Sonatype blog. In the first m]]></description>
<content:encoded><![CDATA[<p>Today, I recorded my first podcast, you can see the result over <a href="http://blogs.sonatype.com/book/2008/04/19/1208635140000.html">on the Sonatype blog</a>.    In the first minute, I sound like Wharf from Star Trek: The Next Generation, and during the book update I just sound like a jerk.    </p>
<p>I&#8217;ll be regularly making an ass of myself for &#8220;Sonatype Week in Review&#8221; over the coming months, if you would like to subscribe to the Podcast feed in iTunes <a href="http://www.switchpod.com/users/sonatype/feed.xml">click here</a>.</p>
]]></content:encoded>
</item>

</channel>
</rss>
