<?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>Andy Gibson &#187; Maven</title>
	<atom:link href="http://www.andygibson.net/blog/tag/maven/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andygibson.net/blog</link>
	<description>Open Source Projects &#38; Technical Writings</description>
	<lastBuildDate>Fri, 30 Jul 2010 02:42:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Installing libraries into Maven from source</title>
		<link>http://www.andygibson.net/blog/tutorial/installing-libraries-into-maven-from-source/</link>
		<comments>http://www.andygibson.net/blog/tutorial/installing-libraries-into-maven-from-source/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 14:18:39 +0000</pubDate>
		<dc:creator>Andy Gibson</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=1119</guid>
		<description><![CDATA[This article describes how to install artifacts into Maven from the source code. To start with you should have installed Maven and downloaded the source code you want to install.  This same mechanism can be used for library jar files to archetypes that you want to install.

Open a command prompt and navigate to the [...]]]></description>
			<content:encoded><![CDATA[<p>This article describes how to install artifacts into Maven from the source code. To start with you should have installed Maven and downloaded the source code you want to install.  This same mechanism can be used for library jar files to archetypes that you want to install.<span id="more-1119"></span></p>
<ol>
<li>Open a command prompt and navigate to the directory where the Maven source code is. This is usually indicated by the presence of a <code>pom.xml</code> file in that directory.
<pre class="brush: plain;">

&gt; cd dev\projects\myproject
</pre>
</li>
<li>Once in the maven project folder, there are a number of different commands you can use to install the project depending on what you need. The simplest form will compile, test, and install the artifacts into Maven.
<pre class="brush: plain;">

&gt;mvn install
</pre>
</li>
</ol>
<p>In some cases, you want to install the source and java doc files as well as the main jar file. This can be done by adding it onto the command line.</p>
<pre class="brush: plain;">

&gt;mvn javadoc:jar source:jar install
</pre>
<p>There may be times you want to make sure your build is completely clean before you start.  You can do this by adding the <code>clean</code> target onto the command. This deletes any current compiled sources so they will be regenerated from scratch. </p>
<pre class="brush: plain;">

&gt;mvn clean javadoc:jar source:jar install
</pre>
<p>While we added it at the start of the command, you don&#8217;t need to, you can put it at the end and it will still be executed first.</p>
<h2>Skipping Tests</h2>
<p>If you need to skip tests, you can do so by setting a command line parameter on the command line depending on how you want to skip the tests. While skipping tests is not advised, there are many cases where you might need to do so.</p>
<pre class="brush: plain;">
-Dmaven.test.skip=true
</pre>
<p>This will skip the compilation and execution of the tests.</p>
<pre class="brush: plain;">
-DskipTests=true
</pre>
<p>This will compile the tests, but skip the execution of them.</p>
<p>See <a href="http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html"> here</a> for more information on controlling test skipping in the <code>pom.xml</code> file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygibson.net/blog/tutorial/installing-libraries-into-maven-from-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install DataValve into Maven</title>
		<link>http://www.andygibson.net/blog/tutorial/install-datavalve-into-maven/</link>
		<comments>http://www.andygibson.net/blog/tutorial/install-datavalve-into-maven/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 14:16:56 +0000</pubDate>
		<dc:creator>Andy Gibson</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[DataValve]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=1122</guid>
		<description><![CDATA[This tutorial will show you how to install DataValve into your local Maven repository. You should already have Maven installed locally on your machine into which we will be installing the DataValve libraries.


Prerequisites
Install Maven



First, download the DataValve framework and unzip it into a temporary folder of your choice.
Open a command prompt and change directory to [...]]]></description>
			<content:encoded><![CDATA[<p>This tutorial will show you how to install DataValve into your local Maven repository. You should already have Maven installed locally on your machine into which we will be installing the DataValve libraries.<br />
<span id="more-1122"></span></p>
<div class="prereq">
<ul><lh>Prerequisites</lh></p>
<li>Install Maven</li>
</ul>
</div>
<ol>
<li>First, <a href="http://kenai.com/projects/datavalve/downloads">download</a> the DataValve framework and unzip it into a temporary folder of your choice.</li>
<li>Open a command prompt and change directory to the <code>&lt;install-dir&gt;\modules\</code> folder</li>
<li>in the modules folder, type the command :
<pre class="brush: plain;">
mvn clean javadoc:jar source:jar install
</pre>
</li>
<li>This will compile the code, source and javadocs and install them into the local maven repository for use in your local maven applications.</li>
</ol>
<p>Once installed, to use DataValve in a Maven project you will need to add the necessary DataValvel modules as dependencies :</p>
<pre class="brush: xml;">
		&lt;dependency&gt;
			&lt;groupId&gt;org.fluttercode.datavalve&lt;/groupId&gt;
			&lt;artifactId&gt;datavalve-dataset&lt;/artifactId&gt;
			&lt;version&gt;0.9.0.CR2&lt;/version&gt;
		&lt;/dependency&gt;
</pre>
<p>Typically, adding the <code>datavalve-dataset</code> artifact pulls in the core module also. From there, you just need to add modules that your development environment will be dependent on (Wicket, JSF, Swing etc).</p>
<div class="notes">
<ul>
<lh>See Also :</lh></p>
<li><a href="http://www.andygibson.net/blog/tutorials/installing-libraries-into-maven-from-source">Installing libraries into Maven from source</a></li>
<li><a href="http://www.andygibson.net/blog/projects/datavalve/">DataValve project page</a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.andygibson.net/blog/tutorial/install-datavalve-into-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>See Java EE 6 in action</title>
		<link>http://www.andygibson.net/blog/news/see-java-ee-6-in-action/</link>
		<comments>http://www.andygibson.net/blog/news/see-java-ee-6-in-action/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 20:32:02 +0000</pubDate>
		<dc:creator>Andy Gibson</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Fluttercode]]></category>
		<category><![CDATA[Knappsack]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=933</guid>
		<description><![CDATA[I&#8217;ve just released a new project called Knappsack which is a set of Maven archetypes for Java EE 6. In addition to the usual starter projects, these archetypes provide complete example applications so you can see the features of JEE 6 and play around with it without having to butcher existing demo applications.


Knappsack Sandbox Application


JEE, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released a new project called <a href="http://www.fluttercode.com/projects/knappsack/">Knappsack</a> which is a set of Maven archetypes for Java EE 6. In addition to the usual starter projects, these archetypes provide complete example applications so you can see the features of JEE 6 and play around with it without having to butcher existing demo applications.<br />
<span id="more-933"></span></p>
<div class="diagram" style="width:360px">
<h1>Knappsack Sandbox Application</h1>
<p><a href="http://www.andygibson.net/blog/wp-content/uploads/2010/07/screenshot.png"><img src="http://www.andygibson.net/blog/wp-content/uploads/2010/07/screenshot-300x248.png" alt="Knappsack Application Screenshot" title="Knappsack Archetype Screenshot" width="300" height="248" border="0"/></a>
</div>
<h1 style="font-size : 120%">JEE, JSF, JPA and CDI demo</h1>
<p>The archetypes are based on the Weld Maven Archetypes and have been extended to contain a project that comes complete with a sandbox data model and pre-populated data, and also a full demo application that makes use of a number of Java EE 6 features. The projects have been tested and works with Glassfish (with a Weld update) and JBoss 6 Milestone 3.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygibson.net/blog/news/see-java-ee-6-in-action/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Guide to Spigot For Seam Developers</title>
		<link>http://www.andygibson.net/blog/article/spigot-for-seam-developers/</link>
		<comments>http://www.andygibson.net/blog/article/spigot-for-seam-developers/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 17:00:57 +0000</pubDate>
		<dc:creator>Andy Gibson</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[CDI]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Project Kenai]]></category>
		<category><![CDATA[Seam]]></category>
		<category><![CDATA[Spigot]]></category>
		<category><![CDATA[Weld]]></category>
		<category><![CDATA[Wicket]]></category>

		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=874</guid>
		<description><![CDATA[Note : Spigot has been renamed to DataValve.
(Edit : I renamed this post so it doesn&#8217;t seem like Spigot is just for Seam, Spigot can be used with different frameworks or without any at all. However, I wrote this post since Spigot is so familiar to the Seam EntityQuery that it should be easy for [...]]]></description>
			<content:encoded><![CDATA[<p><b>Note</b> : Spigot has been renamed to <a href="http://www.fluttercode.com/projects/datavalve/">DataValve</a>.</p>
<p>(<small><b>Edit </b>: I renamed this post so it doesn&#8217;t seem like Spigot is just for Seam, Spigot can be used with different frameworks or without any at all. However, I wrote this post since Spigot is so familiar to the Seam EntityQuery that it should be easy for Seam users to get the idea</small>)</p>
<p>Seam developers should become familiar with <a href="http://kenai.com/projects/spigot/">Spigot</a> concepts fairly quickly since they are very similar to those found in the Seam <code>EntityQuery</code> which was one of the main inspirations for the framework. If you imagine taking the entity query class and splitting it in two, one part to keep hold of state and the other to actually fetch the data. The stateful part is the <code>Paginator</code> that keeps track of what the current ordering of the data is, what is the current page and how big the pages are. The stateless part takes the Ejbql and the pagination information and returns a subset of the data. Now imaging that the data provider has the JPA pieces taken out and replaced with an abstract <code>fetchResults</code> method. This method is implemented in subclasses for specific data providers for text files, sql queries, jpa queries, native jpa queries, xml files, comma delimited or just an in memory dataset.<br />
<span id="more-874"></span><br />
I also abstracted the concepts of parameterization and parameter resolution so you can have parameters on data providers that are no t query based and your parameters can be resolved using different mechanisms such as EL, reflection, a map, or using custom parameter resolution.<br />
So really, for Seam developers, its like a Seam <code>EntityQuery</code> that doesn&#8217;t just use JPA, but uses any kind of data source you want but still returns just a list of objects.</p>
<p>Spigot works nicely with CDI and there is even a demo of it in the distribution that uses JSF and was generated using the Weld maven archetypes. Also, there is a Seam Jpa Dataset Adapter that you can use as a direct replacement for the <code>EntityQuery</code> which will adapt the entity query calls to the underlying data provider calls so you can have a seam-less transition if you want to switch over. This is still a little in-progress, but works. The one area that isn&#8217;t implemented is the sorting, which may not be possible, but I still need to add in the methods to the adapter even if they don&#8217;t do anything. The other issue is of course the configuration of the query from components.xml using the Seam Framework tags. However, you can define the query using regular component xml tags to define the Ejbql, restrictions and page sizes.</p>
<p>Two things to note if you start using Spigot in place of the entity query. All rows are returned by default, and you need to specify both a select statement and a count statement. I separated those two out so you can put join fetch phrases in the select statement without it breaking the count statement. There is an <code>init</code> method that you can use to set both of these statements for a class type.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygibson.net/blog/article/spigot-for-seam-developers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Spigot 0.9.CR1 released</title>
		<link>http://www.andygibson.net/blog/news/spigot-0-9-cr1-released/</link>
		<comments>http://www.andygibson.net/blog/news/spigot-0-9-cr1-released/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 13:07:55 +0000</pubDate>
		<dc:creator>Andy Gibson</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[CDI]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Seam]]></category>
		<category><![CDATA[Spigot]]></category>
		<category><![CDATA[Weld]]></category>
		<category><![CDATA[Wicket]]></category>

		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=861</guid>
		<description><![CDATA[Note : Spigot has been renamed to DataValve and is hosted over on FlutterCode.com.
It&#8217;s been a while since I&#8217;ve posted anything new as I&#8217;ve been busy with a new Open Source software project called Spigot. It&#8217;s a java library that sits between your application code and your data sources (Hibernate, JPA, JDBC or any arbitrary [...]]]></description>
			<content:encoded><![CDATA[<p><b>Note</b> : Spigot has been renamed to <a href="http://www.fluttercode.com/projects/datavalve/">DataValve</a> and is hosted over on <a href="http://www.fluttercode.com">FlutterCode.com</a>.</p>
<p>It&#8217;s been a while since I&#8217;ve posted anything new as I&#8217;ve been busy with a new Open Source software project called Spigot. It&#8217;s a java library that sits between your application code and your data sources (Hibernate, JPA, JDBC or any arbitrary source of data) and helps with things like pagination and sorting using a common interface so you can switch out data providers and use alternatives. </p>
<p>For query language data providers, Spigot also facilitates excluding restrictions from WHERE clauses when parameters are resolved to null. Parameters are handled using parameter resolvers so there is more than one way to parameterize the query including EL expressions, reflection or a value map on the data provider.</p>
<p>Spigot also provides a few other add-ins like converting any dataset into an in-memory dataset that can itself be paginated and sorted and shared across an application (such as commonly used data in a web application). The <code>IndexedDataProviderCache</code> can give you random access into a dataset with caching and look ahead loading. This lets you hook a dataset with thousands of rows up to a Swing JTable with an instant response and a very small memory footprint since it doesn&#8217;t need to load all the objects at once as the provider will load the records as needed and cache the results. This is demonstrated in the Swing Demo in the download. There are also demos for Wicket and CDI with JSF.</p>
<p>You can ready about why I created Spigot in the <a href="http://spigot.kenai.com/docs/html/pr01.html">documentation</a></p>
<p>Spigot is currently hosted on <a href="http://www.projectkenai.com/projects/spigot/">Project Kenai</a>, where you can download the release, view documentation online or read about <a href="http://kenai.com/projects/spigot/pages/10WaysSpigotHelpsDevelopers">10 ways Spigot helps developers</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygibson.net/blog/news/spigot-0-9-cr1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Glassfish, Netbeans and JSF 2.0 Test Drive</title>
		<link>http://www.andygibson.net/blog/article/glassfish-netbeans-and-jsf-2-0-test-drive/</link>
		<comments>http://www.andygibson.net/blog/article/glassfish-netbeans-and-jsf-2-0-test-drive/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 04:32:44 +0000</pubDate>
		<dc:creator>Andy Gibson</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[EJB]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=611</guid>
		<description><![CDATA[I&#8217;ve spent some time in the last couple of weeks playing around with Glassfish, Netbeans 6.8 Beta (and milestone 2 before it) and JSF 2.0, and I have to say that this is turning out to be a really good set of development libraries and tools.

(note This post relates to both the milestone 2 and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent some time in the last couple of weeks playing around with Glassfish, Netbeans 6.8 Beta (and milestone 2 before it) and JSF 2.0, and I have to say that this is turning out to be a really good set of development libraries and tools.<br />
<span id="more-611"></span></p>
<p>(<b>note</b> This post relates to both the milestone 2 and beta versions of Netbeans 6.8 which I have been tinkering with over the duration of this article being written.)</p>
<p>The <a href="http://www.netbeans.org/community/releases/68/">download for Netbeans 6.8 </a> comes with <a href="https://glassfish.dev.java.net/">Glassfish v3 </a> which implements JEE 6 including <a href="http://jcp.org/en/jsr/detail?id=314">JSF 2.0</a> and <a href="http://jcp.org/en/jsr/detail?id=317">JPA 2.0</a>.</p>
<p>Glassfish now has <b>really</b> fast hot deployment so you can change a line of code, save it, and it re-deploys instantly which in my opinion, this is a huge productivity booster. This isn&#8217;t limited to Netbeans, the eclipse plugins also provide this feature, and it works with pretty much any framework. I tried it with Wicket and Spring MVC and it was fantastic to get a wicket error where I had forgotten to add a component, so I go back to the java page code, add the component, refresh my browser and it works. Glassfish now has support for JEE 6 so you can make a pojo a local EJB just by adding the <code>@stateless</code> annotation to it. You can also deploy EJBs in war files as well without needing the whole EAR setup. One problem I did see was that when you used the EAR project setup with an EJB and War project, the hot deploy didn&#8217;t appear to work as well. Changes to the war file didn&#8217;t appear to redeploy, maybe because it is the EAR file that is deployed and not the war. However, still fantastic stuff.</p>
<p>Netbeans 6.8 beta was released in the last week or so. Feature-wise it is a great product with better tooling for JSF, including JSF 2.0, facelets support, and auto-completion for JSF backing beans in the JSF page. It also includes support for JEE 6, EJB 3.1, JPA 2.0 and development with Glassfish v3. It also improves upon the existing Maven support by providing for mavenized Ear projects. </p>
<p>While the features are impressive, Netbeans still seems hindered by performance issues and some minor bugs (although it is a milestone/beta release). Personally, I found this release no more sluggish that other releases although some people in the forums have had worse experiences. Netbeans strength has always been that it offers one standard solution without the plugin nightmares that eclipse has. While Netbeans has plugins they are more like installable features, they have a higher granularity than Eclipse plugins which is more like DLL hell. That said, I use Eclipse at work and it is always hard to shift from one keyboard mapping to another, and Eclipse does seem faster without the intermittent pauses. However, right now, Netbeans is a superior product in terms of features, especially for a JSF developer. I&#8217;d keep an eye out for the 6.8 final release to see how it comes out, and give 6.8 milestone 2 a go just to enjoy the experience if you are interested in using a standards based stack because thats obviously where the Netbeans folks are focused. </p>
<p>One big issue I have with Netbeans is the oddness of some of the key mappings. I think in nearly every application I use I press Alt+F and then C to close the currently edited document. Whether is it in MS Office, Borland Delphi, Eclipse, Firefox, while in the file menu, the C key always closes the currently open document you are editing. In Netbeans, it closes the currently edited project which means suddenly my project disappears when I want to close an edited file. Another is the use of Ctrl+Space for invoking auto completion which in Netbeans sends focus to the project manager or something like that. Sure, I can change the keymappings, such as to the Eclipse profile, but then I&#8217;m using some arbitrary weird key mapping which isn&#8217;t Netbeans and it isn&#8217;t completely the same as Eclipse. It is probably this way for legacy reasons, but some of these key presses are de facto standards.</p>
<p>Lastly, we come to JSF 2.0 which was forged from JSF 1.2 and the litany of complaints about it. The JSR group looked at the solutions out in the wild that already work around those problems (many of which were written by people in that very group) and incorporates those fixes in a standard JSF API type of way. Primarily we have the dropping of JSP as the default view in exchange for the Facelets / JSF templating solution. This also lent itself very well to easier component creation including no-code components. There is now zero configuration required except for the servlet in <code>web.xml</code> and managed beans can now be defined using annotations. Navigation which also used to be in the <code>faces-config.xml</code> is also more convention of configuration. Another big request was the inclusion of AJAX awareness in the JSF lifecycle . It provides the bare minimum features that 3rd party developers can build upon using the standard API instead of their own AJAX solutions. There is better support for GET requests and page parameters as well as invoking actions on page requests which is a feature often used in Seam.<br />
There is also some performance boosts with regards to re-working state saving and the resource access mechanisms have been improved a great deal.</p>
<p>Also noteworthy is the inclusion of <a href="http://www.seamframework.org/Weld">Weld CR 1</a> which is the reference implementation of <a href="http://jcp.org/en/jsr/detail?id=299"> JSR 299 &#8211; Java Contexts and Dependency Injection </a> from JBoss. Admittedly, I haven&#8217;t really gotten round to taking a look at it, but from what I have seen and read so far, it looks like it fills some gaps in the JEE 6 platform and is up to par with the new found simplicity and strength that JEE 6 is promoting right now.</p>
<p>Overall, this is a pretty exciting set of tools and framworks and well worth a look if you are interested in adopting a standards based stack. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygibson.net/blog/article/glassfish-netbeans-and-jsf-2-0-test-drive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source is Hard</title>
		<link>http://www.andygibson.net/blog/article/open-source-is-hard/</link>
		<comments>http://www.andygibson.net/blog/article/open-source-is-hard/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 05:45:32 +0000</pubDate>
		<dc:creator>Andy Gibson</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JTexgen]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Project Kenai]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=328</guid>
		<description><![CDATA[I&#8217;ve been working on getting my procedural texture library completed and released to the public which should be ready next week. I&#8217;m currently going through the difficulties that always go with getting that last bit of polish on a project to get it ready for public consumption. In particular, I&#8217;ve just switched over to maven [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on getting my procedural texture library completed and released to the public which should be ready next week. I&#8217;m currently going through the difficulties that always go with getting that last bit of polish on a project to get it ready for public consumption. In particular, I&#8217;ve just switched over to maven as a build process and moved it into Project Kenai.<br />
<span id="more-328"></span><br />
Even though it doesn&#8217;t have any dependencies, Maven does help shape project structure and lets me deploy it in a structure that includes the source and lets users easily build the jar or the documentation. I&#8217;ve also had to deal with getting it into a subversion repository on Project Kenai. Originally I had it at Sourceforge (without source storage) but I decided to move it to Kenai.</p>
<p>Granted, source control and build management  should have been done early on but this is a small project where I already make regular informal backups and the IDE handles building the single jar so I didn&#8217;t bother. Also, I wasn&#8217;t planning on making it open source originally but since I did, I wanted to get everything tidied away.</p>
<p>On top of that, I&#8217;ve had to produce documentation, more so than if I was just using the library myself, and produce wiki pages, provide uploads, test the downloads to make sure they work, check that the download will work when installed to a maven repository, and provide instruction on how to use it from a maven repository etc. It&#8217;s a lot of work all for the sake of sharing a project with the world. I wouldn&#8217;t have to do most of that if I were keeping it to myself!</p>
<p>However, it has taught me two things. One is to appreciate all the extra work that goes into managing an open source project above and beyond just putting a jar file on a web page for download. The other is a reminder to always start out with good practices (build processes and source control) from scratch if you even think the project might go public. This is a no-brainer if you know the project will be open source in advance, but probably should be followed just in case you decide to open source it later on. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygibson.net/blog/article/open-source-is-hard/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Writing Multi-Maven Module Hibernate JPA Web apps</title>
		<link>http://www.andygibson.net/blog/links/writing-multi-maven-module-hibernate-jpa-web-apps/</link>
		<comments>http://www.andygibson.net/blog/links/writing-multi-maven-module-hibernate-jpa-web-apps/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 22:46:52 +0000</pubDate>
		<dc:creator>Andy Gibson</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=308</guid>
		<description><![CDATA[Here&#8217;s a couple of links regarding building Multi Module Apps with the Hibernate JPA Implementation. It was a subject I was starting to look at and these two articles just happened to cover both areas that I was interested in. Thought I&#8217;d share them and if nothing else, I know where to find them the [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a couple of links regarding building <a href="http://today.java.net/pub/a/today/2007/03/01/building-web-applications-with-maven-2.html">Multi Module Apps</a> with the <a href="http://www.stripesbook.com/blog/index.php?/archives/34-Java-Persistence-Maven-2,-JPA,-and-Hibernate-Quickstart.html">Hibernate JPA Implementation</a>. It was a subject I was starting to look at and these two articles just happened to cover both areas that I was interested in. Thought I&#8217;d share them and if nothing else, I know where to find them the next time I need them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygibson.net/blog/links/writing-multi-maven-module-hibernate-jpa-web-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
