<?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>414C485649 &#187; Alhvi</title>
	<atom:link href="http://alhvi.balcarcel.com/blog/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://alhvi.balcarcel.com/blog</link>
	<description>Alhvi Balcarcel&#039;s blog</description>
	<lastBuildDate>Thu, 10 Nov 2011 18:39:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Using Spring Security Plugin in Grails</title>
		<link>http://alhvi.balcarcel.com/blog/2011/06/using-spring-security-plugin-in-grails/</link>
		<comments>http://alhvi.balcarcel.com/blog/2011/06/using-spring-security-plugin-in-grails/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 06:37:12 +0000</pubDate>
		<dc:creator>Alhvi</dc:creator>
				<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://alhvi.balcarcel.com/blog/?p=162</guid>
		<description><![CDATA[During my quest on using the Spring Security Plugin in Grails I&#8217;ve faced some difficulties.  I&#8217;m documenting what I&#8217;ve done here to future reference and hoping someone else find it useful. 1. Tutorial Here&#8217;s a good tutorial about how to setup and start with the spring security plugin http://blog.springsource.com/2010/08/11/simplified-spring-security-with-grails/ And the complete guide about the [...]]]></description>
			<content:encoded><![CDATA[<p>During my quest on using the Spring Security Plugin in Grails I&#8217;ve faced some difficulties.  I&#8217;m documenting what I&#8217;ve done here to future reference and hoping someone else find it useful.</p>
<h3>1. Tutorial</h3>
<p>Here&#8217;s a good tutorial about how to setup and start with the spring security plugin</p>
<p><a href="http://blog.springsource.com/2010/08/11/simplified-spring-security-with-grails/">http://blog.springsource.com/2010/08/11/simplified-spring-security-with-grails/</a></p>
<p>And the complete guide about the plugin</p>
<p><a href="http://burtbeckwith.github.com/grails-spring-security-core/docs/manual/guide/single.html">http://burtbeckwith.github.com/grails-spring-security-core/docs/manual/guide/single.html</a></p>
<h5>2. Field or property  cannot be found on object of type &#8216;org.springframework.security.web.access.expression.WebSecurityExpressionRoot&#8217;  Caused by: Failed to evaluate expression.  Is ROLE_ prefix mandatory?</h5>
<p>According to what I&#8217;ve read Spring Security uses two modes.  A traditional mode and a mode based on Spring Expression Language (SpEL).</p>
<p><a href="http://burtbeckwith.github.com/grails-spring-security-core/docs/manual/guide/single.html#5.4%20Using%20Expressions%20to%20Create%20Descriptive,%20Fine-Grained%20Rules">http://burtbeckwith.github.com/grails-spring-security-core/docs/manual/guide/single.html#5.4%20Using%20Expressions%20to%20Create%20Descriptive,%20Fine-Grained%20Rules</a></p>
<p>I&#8217;m not sure if its possible to specify which mode the plugin will use,  as it&#8217;s done in Spring-Security</p>
<p><a href="http://forum.springsource.org/showthread.php?78426-Failed-to-evaluate-expression-sec-intercept-url">http://forum.springsource.org/showthread.php?78426-Failed-to-evaluate-expression-sec-intercept-url</a></p>
<p>But according to this post</p>
<p><a href="http://permalink.gmane.org/gmane.comp.lang.groovy.grails.user/107548">http://permalink.gmane.org/gmane.comp.lang.groovy.grails.user/107548</a></p>
<p>and my experience,  if you intend to work using the traditional config, you have to name your authorities with the prefix &#8220;ROLE_&#8221;.   If you don&#8217;t do so the plugin will assume you&#8217;re working with SpEL and try to parse your authority name as an expression,  throwing an exception.</p>
<h3>3. UI</h3>
<p>I was thinking on how to create the views and controller to support user registration and administration,  when I found out there is a Spring-Security-UI plugin that does this for you.  Here&#8217;s an example on how to do this</p>
<p><a href="http://www.objectpartners.com/2011/05/24/customizing-the-grails-spring-security-ui-plugin/">http://www.objectpartners.com/2011/05/24/customizing-the-grails-spring-security-ui-plugin/</a></p>
<p>and the complete documentation</p>
<p><a href="http://burtbeckwith.github.com/grails-spring-security-ui/docs/manual/index.html">http://burtbeckwith.github.com/grails-spring-security-ui/docs/manual/index.html</a></p>
<h3>4.  Installing Spring-Security-UI plugin.  Failed to install plugin [mail-1.0-SNAPSHOT]. Plugin has missing JAR dependencies.</h3>
<p>The Spring-Security-UI plugin depends on the Mail plugin which I could not install in my first attempt,  because  it&#8217;s dependencies cannot be resolved using the default grails repositories.   So I had to uncomment the mavenCentral()  repository in BuildConfig.groovy,  uninstalled the previous plugin and reinstalled again.   I found the answer in this thread:</p>
<p><a href="http://grails.1312388.n4.nabble.com/spring-security-ui-depending-on-mail-plugin-gt-dependency-resolution-fails-td3238433.html">http://grails.1312388.n4.nabble.com/spring-security-ui-depending-on-mail-plugin-gt-dependency-resolution-fails-td3238433.html</a></p>
<h3>5. Persistent cookies</h3>
<p>To enable persistent cookie support you have to create a specific domain class as explained here</p>
<p><a href="http://burtbeckwith.github.com/grails-spring-security-core/docs/manual/ref/Scripts/s2-create-persistent-token.html">http://burtbeckwith.github.com/grails-spring-security-core/docs/manual/ref/Scripts/s2-create-persistent-token.html</a></p>
<p>&nbsp;</p>
<p>That&#8217;s all for the moment.  I&#8217;ll continue working and updating this post <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://alhvi.balcarcel.com/blog/2011/06/using-spring-security-plugin-in-grails/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I&#8217;ve learned about GORM</title>
		<link>http://alhvi.balcarcel.com/blog/2011/03/what-ive-learned-about-gorm/</link>
		<comments>http://alhvi.balcarcel.com/blog/2011/03/what-ive-learned-about-gorm/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 05:09:44 +0000</pubDate>
		<dc:creator>Alhvi</dc:creator>
				<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://alhvi.balcarcel.com/blog/?p=149</guid>
		<description><![CDATA[I&#8217;m starting to learn Grails and I&#8217;m working in a project where I have to connect an existing database to Grails by custom mapping. While working on this I&#8217;ve had some difficulties and questions, here&#8217;s a summary of what I&#8217;ve learned about them Problem 1: Is there a tool that generates Groovy classes from existing [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m starting to learn Grails and I&#8217;m working in a project where I have to connect an existing database to Grails by custom mapping.   While working on this I&#8217;ve had some difficulties and questions,  here&#8217;s a summary of what I&#8217;ve learned about them <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Problem 1:  Is there a tool that generates Groovy classes from existing tables?</h3>
<p>Yes. It&#8217;s called <a href="http://grag.sourceforge.net/">GRAG</a> and does a pretty decent job.  I still had to tweak somethings by hand,  but GRAG saved me a lot of time <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<h3>Problem 2: Is the id field mandatory in GORM?   How do I map a table in where the primary key is made of various fields and has no id of its own?</h3>
<p>The identification field is mandatory.   Tables with composite keys can be mapped using the  &#8216;composite&#8217;  atributte in this way:</p>

<div class="wp_syntax"><div class="code"><pre class="groovy" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Person <span style="color: #66cc66;">&#123;</span>
  <span style="color: #aaaadd; font-weight: bold;">String</span> firstName
  <span style="color: #aaaadd; font-weight: bold;">String</span> lastName
  <span style="color: #000000; font-weight: bold;">static</span> mapping <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#123;</span>
      id composite:<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'firstName'</span>, <span style="color: #ff0000;">'lastName'</span><span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20%28GORM%29.html#5.5.2.5%20Composite%20Primary%20Keys</p>
<h3>Problem 3:  I didn&#8217;t realize &#8216;composite&#8217; field&#8217;s  parameters were referring to  field names and not column names.</h3>
<p>So in my first attempt to create the composite key I did this</p>

<div class="wp_syntax"><div class="code"><pre class="groovy" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Person <span style="color: #66cc66;">&#123;</span>
  <span style="color: #aaaadd; font-weight: bold;">String</span> firstName
  <span style="color: #aaaadd; font-weight: bold;">String</span> lastName
  <span style="color: #000000; font-weight: bold;">static</span> mapping <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#123;</span>
      id composite:<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'First'</span>, <span style="color: #ff0000;">'Last'</span><span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Assumnig First and last were the names of the columns on the table. (Compare this with the section above)</p>
<p>http://grails.1312388.n4.nabble.com/DataSources-Plugin-with-Read-Only-Database-Unable-to-map-a-composite-key-No-property-found-for-name&#8211;td1391729.html</p>
<h3>Problem 4:  Domain objects with composite keys must implement serializable</h3>
<p>The compiler told me so XD</p>
<h3>Problem 5:  &#8216;properties&#8217;  is a reserved word</h3>
<p>I couldn&#8217;t give the name &#8216;properties&#8217; to one of my fields.  Apparently it is a reserved word and cannot be used.</p>
<p>I wrote something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="groovy" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Item <span style="color: #66cc66;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">static</span> hasMany <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#91;</span>properties: ItemProperties<span style="color: #66cc66;">&#93;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>And the compiler gave me this error:</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">No such property: id for class: groovy.util.MapEntry</pre></div></div>

<p>Googling I found this link</p>
<p>http://archive.codehaus.org/lists/org.codehaus.grails.user/msg/84b9b45c0806050258n118a1d66v82b9bdda4e4ed2b1@mail.gmail.com</p>
<p>and rewrote my code to:</p>

<div class="wp_syntax"><div class="code"><pre class="groovy" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Item <span style="color: #66cc66;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">static</span> hasMany <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#91;</span>itemProperties: ItemProperties<span style="color: #66cc66;">&#93;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>which runs without problems <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>That&#8217;s all at the moment.  Hope someone would find this useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://alhvi.balcarcel.com/blog/2011/03/what-ive-learned-about-gorm/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>World of Warcraft Patch 4.0 Installation Issues</title>
		<link>http://alhvi.balcarcel.com/blog/2010/10/world-of-warcraft-patch-4-0-installation-issues/</link>
		<comments>http://alhvi.balcarcel.com/blog/2010/10/world-of-warcraft-patch-4-0-installation-issues/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 09:10:40 +0000</pubDate>
		<dc:creator>Alhvi</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://alhvi.balcarcel.com/blog/?p=140</guid>
		<description><![CDATA[I do not play WOW but my brother does. He was getting trouble installing the new patch (4.0). The symptoms were the following, 1. The Launcher was unable to get the information of the new patch. It showed the normal Lich King display. I checked the log file and it said, #----------------------------------------------------------- # System started [...]]]></description>
			<content:encoded><![CDATA[<p>I do not play WOW but my brother does.  He was getting trouble installing the new patch (4.0).</p>
<p>The symptoms were the following,</p>
<p>1. The Launcher was unable to get the information of the new patch.  It showed the normal Lich King display.  I checked the log file and it said,</p>
<pre lang=txt>
#-----------------------------------------------------------
# System started at 2010-10-13 21:27:03.7500
# system: COMPUTERNAMEHERE
#-----------------------------------------------------------
21:27:03.7656 Launcher version 1.8.0.394
21:27:04.0937 Fetch version information from
us.version.worldofwarcraft.com
(http://206.18.98.54/update/PatchSequenceFile.txt).
21:27:04.5312 Received version information from

http://206.18.98.54/update/PatchSequenceFile.txt.

21:27:04.5312 No update is required.
</pre>
<p>2. When my brother logged in to his account the game showed him a list of WOW realms all in red (like they were unavailable),  after selecting one of those, the game froze with the &#8220;Connecting&#8221; status.</p>
<p>3. When we tried to run the Repair tool it responded with the following error &#8220;Cannot connect to server to download repair information. Please try again later&#8221;</p>
<p>So&#8230; after looking for a while in the World of Warcraft forums we found the solution in <a href="http://forums.worldofwarcraft.com/thread.html?topicId=27188062658&amp;postId=271530212996&amp;sid=1#9">this post</a>.</p>
<p>We only had to download a new Repair tool from <a href="http://us.blizzard.com/support/article.xml?locale=en_US&amp;articleId=21465">here</a> and let it fix it all <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .  Now he&#8217;s happily downloading the patch.</p>
<p>I&#8217;m pasting the new information found in the log after the fix,  just for reference.</p>
<pre lang=txt>
#-----------------------------------------------------------
# System started at 2010-10-13 21:44:10.8883
# system: COMPUTERNAMEHERE
#-----------------------------------------------------------
21:44:11.0156 Launcher version 2.1.1.1462
21:44:11.0156 Found incorrect InstallPath registry key entry for World
of Warcraft ('D:\World of Warcraft\').
21:44:11.0157 Found incorrect GamePath registry key entry for World of
Warcraft ('D:\World of Warcraft\Launcher.exe').
21:44:11.0158 Fixed incorrect InstallPath registry key entry for World
of Warcraft (now 'D:\Copy of World of Warcraft\').
21:44:11.0159 Fixed incorrect GamePath registry key entry for Launcher
(now 'D:\Copy of World of Warcraft\Launcher.exe').
21:44:11.4584 Reverting to old PSF patching system.
21:44:11.6755 Fetch version information from
us.version.worldofwarcraft.com
(http://206.18.98.51/update/PatchSequenceFile.txt).
21:44:12.1748 Fetch version information from
us.version.worldofwarcraft.com
(http://12.129.254.54/update/PatchSequenceFile.txt).
21:44:12.4277 Fetch version information from
us.version.worldofwarcraft.com
(http://12.129.222.52/update/PatchSequenceFile.txt).
21:44:12.6777 Fetch version information from
us.version.worldofwarcraft.com
(http://12.129.254.51/update/PatchSequenceFile.txt).
21:44:12.9155 Received version information from

http://12.129.222.52/update/PatchSequenceFile.txt.

21:44:12.9193 A tools update is required.
21:44:21.7756 Timeout from http://206.18.98.51/update/PatchSequenceFile.txt.
21:44:22.1968 Timeout from http://12.129.254.54/update/PatchSequenceFile.txt.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://alhvi.balcarcel.com/blog/2010/10/world-of-warcraft-patch-4-0-installation-issues/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RedDwarf Project Configuration (Video)</title>
		<link>http://alhvi.balcarcel.com/blog/2010/10/reddwarf-project-configuration-video/</link>
		<comments>http://alhvi.balcarcel.com/blog/2010/10/reddwarf-project-configuration-video/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 07:03:22 +0000</pubDate>
		<dc:creator>Alhvi</dc:creator>
				<category><![CDATA[GameDev]]></category>
		<category><![CDATA[Project Darkstar]]></category>
		<category><![CDATA[RedDwarf Server]]></category>

		<guid isPermaLink="false">http://alhvi.balcarcel.com/blog/?p=132</guid>
		<description><![CDATA[Hello!! I recently found a compilation of video tutorials  about Project Darkstar here. The compilation includes a video tutorial of how to setup a project under Netbeans.   This one was very useful to me.  Because the same steps are valid for RedDwarf. Darkstar: NetBeans Project Configuration from Project Darkstar on Vimeo. Also there&#8217;s a version [...]]]></description>
			<content:encoded><![CDATA[<p>Hello!!</p>
<p>I recently found a compilation of video tutorials  about Project Darkstar <a href="http://vimeo.com/darkstar/videos">here</a>.</p>
<p>The compilation includes a video tutorial of how to setup a project under Netbeans.   This one was very useful to me.  Because the same steps are valid for RedDwarf.</p>
<p><iframe src="http://player.vimeo.com/video/5297926" width="400" height="225" frameborder="0"></iframe>
<p><a href="http://vimeo.com/5297926">Darkstar: NetBeans Project Configuration</a> from <a href="http://vimeo.com/darkstar">Project Darkstar</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Also there&#8217;s a version of how to set up the project under eclipse.</p>
<p><iframe src="http://player.vimeo.com/video/5298363" width="400" height="225" frameborder="0"></iframe>
<p><a href="http://vimeo.com/5298363">Darkstar Eclipse Project Configuration</a> from <a href="http://vimeo.com/darkstar">Project Darkstar</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Many thanks to &#8220;Peter&#8221;  who was the person who created the tutorials <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Tip:  You can watch the videos in HD @ Vimeo</p>
]]></content:encoded>
			<wfw:commentRss>http://alhvi.balcarcel.com/blog/2010/10/reddwarf-project-configuration-video/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some resources for RedDwarf newcomers</title>
		<link>http://alhvi.balcarcel.com/blog/2010/09/some-resources-for-reddwarf-newcomers/</link>
		<comments>http://alhvi.balcarcel.com/blog/2010/09/some-resources-for-reddwarf-newcomers/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 22:42:24 +0000</pubDate>
		<dc:creator>Alhvi</dc:creator>
				<category><![CDATA[GameDev]]></category>
		<category><![CDATA[Project Darkstar]]></category>
		<category><![CDATA[RedDwarf Server]]></category>

		<guid isPermaLink="false">http://alhvi.balcarcel.com/blog/?p=122</guid>
		<description><![CDATA[Hello everyone!  As you may know,  I&#8217;m learning how to develop applications for the RedDwarf server.  At the beginning it was very difficult for me because I didn&#8217;t know where to start.  But I&#8217;m finally understanding . FYI I&#8217;m posting some resources that I think are  useful for all the people starting with RedDwarf. 1.  [...]]]></description>
			<content:encoded><![CDATA[<p>Hello everyone!  As you may know,  I&#8217;m learning how to develop applications for the RedDwarf server.  At the beginning it was very difficult for me because I didn&#8217;t know where to start.  But I&#8217;m finally understanding <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>FYI I&#8217;m posting some resources that I think are  useful for all the people starting with RedDwarf.</p>
<p>1.  <span style="text-decoration: underline;"><a title="Project Snowman Hands On Lab" href="http://developers.sun.com/learning/javaoneonline/j1lab.jsp?lab=LAB-5562&amp;yr=2009&amp;track=1">Project Snowman Hands On Lab</a></span>.   This is a tutorial created by Sun,  specifically designed to teach how to use Project Darkstar.  I think following this tutorial  is one of the best things to do to learn RedDwarf.  By doing it  you can get a pretty good understanding of the basic principles of Darkstar/RedDwarf  and  how everything works.  I found it while searching at the <a title="RedDwarf forums" href="http://sourceforge.net/apps/phpbb/reddwarf/viewtopic.php?f=7&amp;t=194">RedWarf forums</a>.</p>
<p>2.  <span style="text-decoration: underline;"><a href="http://groups.google.com/group/project-darkstar-community?pli=1">Server Tutorial and Client Tutorial -  Original Version by Sun</a></span>.  I had some problems when I started reading the <a href="http://sourceforge.net/apps/trac/reddwarf/wiki/Documentation">tutorials published at RedDwarf&#8217;s site</a> because the Server Tutorial referred to a script which I could not find within the downloaded files.  So again, searching in the forums I found<a href="http://sourceforge.net/apps/phpbb/reddwarf/viewtopic.php?f=7&amp;t=180&amp;p=1309&amp;hilit=copyright#p1309"> this post </a>and the original tutorials.  With those in hand I was able to happily finish what I was doing (that was only trying to run the server XP).</p>
<p>Now whit the help from the information above I can look at the <a href="http://sourceforge.net/apps/trac/reddwarf/">RedDwarf documentation</a> more confidently.  I&#8217;m  still learning and I hope to learn more and share with you here. XD.  Meanwhile check out <a href="http://sourceforge.net/apps/trac/reddwarf/">RedDwarf documentation</a> and the <a href="http://sourceforge.net/apps/phpbb/reddwarf/index.php">forums</a>.  Good Luck!! <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://alhvi.balcarcel.com/blog/2010/09/some-resources-for-reddwarf-newcomers/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing Jira on Glassfish.  A Step by Step Guide.</title>
		<link>http://alhvi.balcarcel.com/blog/2010/07/installing-jira-on-glassfish-a-step-by-step-guide/</link>
		<comments>http://alhvi.balcarcel.com/blog/2010/07/installing-jira-on-glassfish-a-step-by-step-guide/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 01:40:30 +0000</pubDate>
		<dc:creator>Alhvi</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://alhvi.balcarcel.com/blog/?p=73</guid>
		<description><![CDATA[For this installation we will be using: Ubuntu Server 10.04 Glassfish V3 Jira 4.1.2 MySQL 5.1 Glassfish is not officially supported as a Jira Application Server, so we need to make some changes to get it to work. This guide is a compilation of several posts and information I&#8217;ve read over the internet.  It&#8217;s the [...]]]></description>
			<content:encoded><![CDATA[<p>For this installation we will be using:</p>
<ul>
<li>Ubuntu Server 10.04</li>
<li>Glassfish V3</li>
<li>Jira 4.1.2</li>
<li>MySQL 5.1</li>
</ul>
<p>Glassfish is not officially supported as a Jira Application Server,  so we need to make some changes to get it to work. This guide is a compilation of several posts and information I&#8217;ve read over the internet.  It&#8217;s the first time I work with most of this technologies so what I did was just follow the instructions and do a little of research on my own,  but there are some things I barely understand.  So please  if you know a better way of how to do things, leave a comment,  so we all can learn and improve the guide.</p>
<p>Special thanks to:  </p>
<ul>
<li>Jason Lee for <a href="http://blogs.steeplesoft.com/2006/04/jira-and-glassfish/">this </a>tutorial</li>
<li>Michał Lipski for all the information shared <a href="http://jira.atlassian.com/browse/JRA-14604">here</a></li>
<li>Risky and Jordi for pointing out some mistakes I made</a></li>
</ul>
<p>Now, lets start with the tutorial.</p>
<p>First of all,  we need to download  the WAR/EAR version of  Jira.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>www.atlassian.com<span style="color: #000000; font-weight: bold;">/</span>software<span style="color: #000000; font-weight: bold;">/</span>jira<span style="color: #000000; font-weight: bold;">/</span>downloads<span style="color: #000000; font-weight: bold;">/</span>binary<span style="color: #000000; font-weight: bold;">/</span>atlassian-jira-enterprise-4.1.2.tar.gz</pre></div></div>

<p>Untar the document</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xjvf</span> atlassian-jira-enterprise-4.1.2.tar.gz</pre></div></div>

<p>We will identify the newly created directory:  ./atlassian-jira-enterprise-4.1.2 as $JIRA_ROOT in this tutorial.</p>
<h2>Fixing the Seraph Library</h2>
<p>We need to change some code in one of Jira&#8217;s  libraries called Seraph and create a new jar file for it.  I&#8217;ve uploaded a copy of the modified jar <a href="http://alhvi.balcarcel.com/files/blog/jira/atlassian-seraph-2.1.4.jar">here</a>,  you can use it and skip this section.  If you want to do it by yourself follow the incoming instructions.  </p>
<p>Get the Seraph code from here:</p>
<p>https://svn.atlassian.com/svn/public/atlassian/seraph/tags/atlassian-seraph-2.1.4</p>
<p>Use your favorite SVN client to get the source. The directory of the project: atlassian-seraph-2.1.4 will be called $SERAPH_ROOT from now on.</p>
<p>To compile it we need to install the <a title="Apache Maven" href="http://maven.apache.org/">maven tool</a>.  For Ubuntu type:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> maven2</pre></div></div>

<p>We also need to configure Atlassian Repositories in our <a title="Maven settings" href="http://maven.apache.org/settings.html">maven settings</a>.  To do this edit the file  /etc/maven2/settings.xml and add the following lines within the profiles section <sup class='footnote'><a href='#fn-73-1' id='fnref-73-1'>1</a></sup></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;profile<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>AtlassianProfile<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activation<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activeByDefault<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activeByDefault<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activation<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repositories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>atlassian-public<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>https://m2proxy.atlassian.com/repository/public<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;updatePolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>daily<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/updatePolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;checksumPolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>warn<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/checksumPolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;checksumPolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>warn<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/checksumPolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 	      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 	        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>atlassian-plugin-sdk<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>file://${env.ATLAS_HOME}/repository<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;checksumPolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>warn<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/checksumPolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repositories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pluginRepositories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pluginRepository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>atlassian-public<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>https://m2proxy.atlassian.com/repository/public<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;checksumPolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>warn<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/checksumPolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
             <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;checksumPolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>warn<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/checksumPolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pluginRepository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pluginRepositories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;downloadSources<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/downloadSources<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;downloadJavadocs<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/downloadJavadocs<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/profile<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Now change the method init(), from the file BaseLoginFilter.java located in $SERAPH_ROOT/src/com/atlassian/seraph/filter,  to look like this:  <sup class='footnote'><a href='#fn-73-2' id='fnref-73-2'>2</a></sup></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> init<span style="color: #009900;">&#40;</span>FilterConfig config<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">//log.warn(&quot;LoginFilter.init&quot; + config.getFilterName());</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">filterConfig</span> <span style="color: #339933;">=</span> config<span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #003399;">String</span> configFileLocation <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>config.<span style="color: #006633;">getInitParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;config.file&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            configFileLocation <span style="color: #339933;">=</span> config.<span style="color: #006633;">getInitParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;config.file&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #666666; font-style: italic;">//log.warn(&quot;Security config file location: &quot; + configFileLocation);</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        securityConfig <span style="color: #339933;">=</span> SecurityConfigFactory.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span>configFileLocation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        config.<span style="color: #006633;">getServletContext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setAttribute</span><span style="color: #009900;">&#40;</span>SecurityConfig.<span style="color: #006633;">STORAGE_KEY</span>, securityConfig<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">//log.warn(&quot;SecurityFilter.init completed successfully.&quot;);</span>
    <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Change directory to $SERAPH_ROOT.  A file named pom.xml should be there.  To compile execute</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mvn package</pre></div></div>

<p>This command should build atlassian-seraph-2.1.4.jar inside the $SERAPH_ROOT/target folder.</p>
<p>Create a folder in $JIRA_ROOT/edit-webapp/WEB-INF/ called lib</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #007800;">$JIRA_ROOT</span><span style="color: #000000; font-weight: bold;">/</span>edit-webapp<span style="color: #000000; font-weight: bold;">/</span>WEB-INF<span style="color: #000000; font-weight: bold;">/</span>lib</pre></div></div>

<p>Copy the new seraph library to there</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #007800;">$SERAPH_ROOT</span><span style="color: #000000; font-weight: bold;">/</span>target<span style="color: #000000; font-weight: bold;">/</span>atlassian-seraph-2.1.4.jar  <span style="color: #007800;">$JIRA_ROOT</span><span style="color: #000000; font-weight: bold;">/</span>edit-webapp<span style="color: #000000; font-weight: bold;">/</span>WEB-INF<span style="color: #000000; font-weight: bold;">/</span>lib</pre></div></div>

<h2>The ejb-3_0-api.jar Library</h2>
<p>I&#8217;m not sure about this step.  But in this <a href="http://jira.atlassian.com/browse/JRA-14604">bug thread </a>they said its solves a problem.</p>
<p>Download the library ejb-3_0-api.jar</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>www.java2s.com<span style="color: #000000; font-weight: bold;">/</span>Code<span style="color: #000000; font-weight: bold;">/</span>JarDownload<span style="color: #000000; font-weight: bold;">/</span>ejb-<span style="color: #000000;">3</span>_0-api.jar.zip</pre></div></div>

<p>Unzip and copy ejb-3_0-api.jar to $JIRA_ROOT/edit-webapp/WEB-INF/lib <sup class='footnote'><a href='#fn-73-3' id='fnref-73-3'>3</a></sup></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> ejb-<span style="color: #000000;">3</span>_0-api.jar <span style="color: #007800;">$JIRA_ROOT</span><span style="color: #000000; font-weight: bold;">/</span>edit-webapp<span style="color: #000000; font-weight: bold;">/</span>WEB-INF<span style="color: #000000; font-weight: bold;">/</span>lib</pre></div></div>

<h2>The sun-web file</h2>
<p>Classloader Delegation should be switched off for Jira to run properly.  This can be configured in the sun-web.xml  flie. <sup class='footnote'><a href='#fn-73-4' id='fnref-73-4'>4</a></sup></p>
<p>Put this file in $JIRA_ROOT/edit-webapp/WEB-INF/</p>
<p>The file should contain the following text</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #00bbdd;">&lt;!DOCTYPE sun-web-app PUBLIC '-//Sun Microsystems, Inc.//DTD </span>
<span style="color: #00bbdd;">  Application Server 9.0 Servlet 2.5//EN' </span>
<span style="color: #00bbdd;">  'http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd'&gt;</span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sun-web-app<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;class-loader</span> <span style="color: #000066;">delegate</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sun-web-app<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h2>The Jira user</h2>
<p>We will create a user called jira with a home directory in /usr/local/jira</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>useradd <span style="color: #660033;">--create-home</span> <span style="color: #660033;">--home-dir</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>jira <span style="color: #660033;">--shell</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">bash</span> jira</pre></div></div>

<p>Before generating the WAR file we need to tell jira where it&#8217;s home directory is located and how it will be connected to a database.</p>
<h2>Setting Jira Home</h2>
<p>Edit the file $JIRA_ROOT/edit-webapp/WEB-INF/classes/jira-application.properties.  Locate the line referring to jira home and change it</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">jira.home = /usr/local/jira</pre></div></div>

<h2>Setting up the Database Connection</h2>
<p>Edit the file $JIRA_ROOT/edit-webapp/WEB-INF/classes/entityengine.xml<br />
In the transaction-factory section change jndi-name from java:comp/env/UserTransaction to UserTransaction.  As follows.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;transaction-factory</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;org.ofbiz.core.entity.transaction.JNDIFactory&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;user-transaction-jndi</span> <span style="color: #000066;">jndi-server-name</span>=<span style="color: #ff0000;">&quot;default&quot;</span> <span style="color: #000066;">jndi-name</span>=<span style="color: #ff0000;">&quot;UserTransaction&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;transaction-manager-jndi</span> <span style="color: #000066;">jndi-server-name</span>=<span style="color: #ff0000;">&quot;default&quot;</span> <span style="color: #000066;">jndi-name</span>=<span style="color: #ff0000;">&quot;UserTransaction&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/transaction-factory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>In the datasource section change to the following</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;datasource</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;defaultDS&quot;</span> <span style="color: #000066;">field-type-name</span>=<span style="color: #ff0000;">&quot;mysql&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">helper-class</span>=<span style="color: #ff0000;">&quot;org.ofbiz.core.entity.GenericHelperDAO&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">check-on-start</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">use-foreign-keys</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">use-foreign-key-indices</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">check-fks-on-start</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">check-fk-indices-on-start</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">add-missing-on-start</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">check-indices-on-start</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;jndi-jdbc</span> <span style="color: #000066;">jndi-server-name</span>=<span style="color: #ff0000;">&quot;default&quot;</span> <span style="color: #000066;">jndi-name</span>=<span style="color: #ff0000;">&quot;jdbc/JiraDS&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/datasource<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Notice the removal of the line</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">schema-name=&quot;PUBLIC&quot;</pre></div></div>

<p>And the jndi-name again is changed from java:comp/env/jdbc/JiraDS to only jdbc/JiraDS <sup class='footnote'><a href='#fn-73-5' id='fnref-73-5'>5</a></sup><br />
Later in this tutorial we will create the correspondent DataSource within Glassfish.</p>
<h2>Creating the DB and DBuser</h2>
<p>We need to create a jira specific database and a database user.  To do this we use MySQL console.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysql <span style="color: #660033;">-u</span> root <span style="color: #660033;">-p</span></pre></div></div>

<p>Inside the console type</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">DATABASE</span> jiradb CHARACTER <span style="color: #990099; font-weight: bold;">SET</span> UTF8<span style="color: #000033;">;</span></pre></div></div>

<p>To create the user and give it the appropriate permissions execute the following</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">GRANT</span> <span style="color: #990099; font-weight: bold;">SELECT</span><span style="color: #000033;">,</span><span style="color: #990099; font-weight: bold;">INSERT</span><span style="color: #000033;">,</span><span style="color: #990099; font-weight: bold;">UPDATE</span><span style="color: #000033;">,</span><span style="color: #990099; font-weight: bold;">DELETE</span><span style="color: #000033;">,</span><span style="color: #990099; font-weight: bold;">CREATE</span><span style="color: #000033;">,</span><span style="color: #990099; font-weight: bold;">DROP</span><span style="color: #000033;">,</span><span style="color: #990099; font-weight: bold;">ALTER</span><span style="color: #000033;">,</span><span style="color: #990099; font-weight: bold;">INDEX</span> <span style="color: #990099; font-weight: bold;">on</span>  jiradb.<span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">TO</span> <span style="color: #008000;">'jirauser'</span>@<span style="color: #008000;">'localhost'</span> IDENTIFIED BY <span style="color: #008000;">'jirauserpasswd'</span><span style="color: #000033;">;</span></pre></div></div>

<p><sup class='footnote'><a href='#fn-73-6' id='fnref-73-6'>6</a></sup></p>
<h2>Downloading MySQL Connector For Java</h2>
<p>To be able to use MySQL from Java,  as Jira does,  we need a special connector.<br />
Download it from MySQL site</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>dev.mysql.com<span style="color: #000000; font-weight: bold;">/</span>get<span style="color: #000000; font-weight: bold;">/</span>Downloads<span style="color: #000000; font-weight: bold;">/</span>Connector-J<span style="color: #000000; font-weight: bold;">/</span>mysql-connector-java-5.1.13.tar.gz<span style="color: #000000; font-weight: bold;">/</span>from<span style="color: #000000; font-weight: bold;">/</span>http:<span style="color: #000000; font-weight: bold;">//</span>mirror.services.wisc.edu<span style="color: #000000; font-weight: bold;">/</span>mysql<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Untar the files</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-zxvf</span> mysql-connector-java-5.1.13.tar.gz</pre></div></div>

<p>Copy the required library to your Glassfish external library directory.  My GF installation directory is: /usr/local/glassfishv3/glassfish/.   I&#8217;ll name it $GF_ROOT,  so the ext lib directory is in: $GF_ROOT/domains/domain1/lib/ext  or the one for your specific domain.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> mysql-connector-java-5.1.13<span style="color: #000000; font-weight: bold;">/</span>mysql-connector-java-5.1.13-bin.jar <span style="color: #007800;">$GF_ROOT</span><span style="color: #000000; font-weight: bold;">/</span>domains<span style="color: #000000; font-weight: bold;">/</span>domain1<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>ext</pre></div></div>

<p>Restart Glassfish<br />
Change the working directory to your Glassfish bin folder.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$GF_ROOT</span><span style="color: #000000; font-weight: bold;">/</span>bin</pre></div></div>

<p>Stop and start again the domain</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>asadmin stop-domain domain1
.<span style="color: #000000; font-weight: bold;">/</span>asadmin start-domain domain1</pre></div></div>

<h2>Creating the Data Source on Glassfish</h2>
<p>Open your Glassfish web console.  If you left the default port set,  it should be accessible through  http://yoursite:4848,  for example</p>
<p><a href="http://localhost:4848">http://localhost:4848</a></p>
<p>Inside Glassfish Web Console Select Resources &gt; Connection Pools</p>
<p><a href="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/connection-pool.png"><img class="aligncenter size-medium wp-image-85" title="connection pool" src="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/connection-pool-207x300.png" alt="" width="207" height="300" /></a></p>
<p>Click on new and fill out the form with the following values</p>
<p><a href="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/jira-jdbc.png"><img class="aligncenter size-medium wp-image-87" title="jira jdbc" src="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/jira-jdbc-300x150.png" alt="" width="300" height="150" /></a></p>
<p>Click on next.  In the second step of the Connection Pool creation, scroll down to Additional Properties. Erase all properties loaded by default and leave only the following:</p>
<p><a href="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/additional-properties.png"><img class="aligncenter size-medium wp-image-90" title="additional properties" src="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/additional-properties-300x86.png" alt="" width="300" height="86" /></a><br />
Select the new connection pool and click ping to test it</p>
<p><a href="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/ping-connection-pool.png"><img class="aligncenter size-medium wp-image-88" title="ping connection pool" src="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/ping-connection-pool-300x197.png" alt="" width="300" height="197" /></a></p>
<p>You should see a &#8220;Ping Succeeded&#8221; message like this</p>
<p><a href="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/ping-succeeded.png"><img class="aligncenter size-medium wp-image-89" title="ping succeeded" src="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/ping-succeeded-300x110.png" alt="" width="300" height="110" /></a></p>
<p>Now, we need to create a JDBC Resource named JiraDS as we specified in the file entityengine.xml.  To do this,  click in JDBC resources.  And fill out the form with the following information,</p>
<p><a href="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/jdbc-resource-jira.png"><img class="aligncenter size-medium wp-image-91" title="jdbc resource jira" src="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/07/jdbc-resource-jira-300x204.png" alt="" width="300" height="204" /></a></p>
<h2>Constructing the WAR File and Deploying</h2>
<p>Change the current working directory to $JIRA_ROOT,  and execute</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>build.sh war</pre></div></div>

<p>The builder generates two WAR files,  one intended to be used on Tomcat,  and other dist-generic.  We will use the last one.<br />
Copy the WAR file to your Glassfish autodeploy directory.  For example,</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> .<span style="color: #000000; font-weight: bold;">/</span>dist-generic<span style="color: #000000; font-weight: bold;">/</span>atlassian-jira-4.1.2.war <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>glassfishv3<span style="color: #000000; font-weight: bold;">/</span>glassfish<span style="color: #000000; font-weight: bold;">/</span>domains<span style="color: #000000; font-weight: bold;">/</span>domain1<span style="color: #000000; font-weight: bold;">/</span>autodeploy<span style="color: #000000; font-weight: bold;">/</span>jira.war</pre></div></div>

<p>Now Jira should be accessible through   http://yourserver:yourport/jira</p>
<p><a href="http://localhost:8080/jira">http://localhost:8080/jira</a></p>
<h2>About warnings&#8230;</h2>
<p>Thanks to my new friend Benny Neugebauer I&#8217;ve know that Jira has some issues with the OpenJDK.  Here&#8217;s a post in how to uninstall it and install the Sun version.</p>
<p><a href="http://www.bennyn.de/webanwendungen/virtual-server/openjdk-deinstallieren.html">http://www.bennyn.de/webanwendungen/virtual-server/openjdk-deinstallieren.html</a></p>
<p>Also Benny wrote a post in how to properly set the mail.mime.decodeparameters  to true.  The post can be found here.</p>
<p><a href="http://www.bennyn.de/webanwendungen/virtual-server/mail-mime-decodeparameters-setzen.html">http://www.bennyn.de/webanwendungen/virtual-server/mail-mime-decodeparameters-setzen.html</a></p>
<p>Both posts are in German,  but it&#8217;s easy to understand what you have to do by reading the commands and files involved.  Thank you Benny <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h2>Edits</h2>
<p>Edit 20100824:  Added a copy of the modified <a href="http://alhvi.balcarcel.com/files/blog/jira/atlassian-seraph-2.1.4.jar">atlassian-seraph-2.1.4.jar </a>.<br />
Edit 20100831:  Added links about how to solve Jira&#8217;s warnings.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 1240px; width: 1px; height: 1px; overflow: hidden;">
<pre class="jive-pre"><code class="jive-code jive-java">&lt;profile&gt;
       &lt;id&gt;AtlassianProfile&lt;/id&gt;
       &lt;activation&gt;
         &lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
       &lt;/activation&gt;

       &lt;repositories&gt;
         &lt;repository&gt;
           &lt;id&gt;atlassian-public&lt;/id&gt;
           &lt;url&gt;https:<span style="color: darkgreen;">//m2proxy.atlassian.com/repository/public&lt;/url&gt;</span>
           &lt;snapshots&gt;
             &lt;enabled&gt;true&lt;/enabled&gt;
             &lt;updatePolicy&gt;daily&lt;/updatePolicy&gt;
             &lt;checksumPolicy&gt;warn&lt;/checksumPolicy&gt;
           &lt;/snapshots&gt;
           &lt;releases&gt;
             &lt;enabled&gt;true&lt;/enabled&gt;
             &lt;checksumPolicy&gt;warn&lt;/checksumPolicy&gt;
           &lt;/releases&gt;
         &lt;/repository&gt;
 	      &lt;repository&gt;
 	        &lt;id&gt;atlassian-plugin-sdk&lt;/id&gt;
           &lt;url&gt;file:<span style="color: darkgreen;">//${env.ATLAS_HOME}/repository&lt;/url&gt;</span>
           &lt;snapshots&gt;
             &lt;enabled&gt;false&lt;/enabled&gt;
           &lt;/snapshots&gt;
           &lt;releases&gt;
             &lt;enabled&gt;true&lt;/enabled&gt;
             &lt;checksumPolicy&gt;warn&lt;/checksumPolicy&gt;
           &lt;/releases&gt;
         &lt;/repository&gt;
       &lt;/repositories&gt;

       &lt;pluginRepositories&gt;
         &lt;pluginRepository&gt;
           &lt;id&gt;atlassian-public&lt;/id&gt;
           &lt;url&gt;https:<span style="color: darkgreen;">//m2proxy.atlassian.com/repository/public&lt;/url&gt;</span>
           &lt;releases&gt;
             &lt;enabled&gt;true&lt;/enabled&gt;
             &lt;checksumPolicy&gt;warn&lt;/checksumPolicy&gt;
           &lt;/releases&gt;
           &lt;snapshots&gt;
             &lt;checksumPolicy&gt;warn&lt;/checksumPolicy&gt;
           &lt;/snapshots&gt;
         &lt;/pluginRepository&gt;
       &lt;/pluginRepositories&gt;
       &lt;properties&gt;
         &lt;downloadSources&gt;true&lt;/downloadSources&gt;
         &lt;downloadJavadocs&gt;true&lt;/downloadJavadocs&gt;
       &lt;/properties&gt;
    &lt;/profile&gt;
</code></pre>
</div>
<div class='footnotes'>
<div class='footnotedivider'></div>
<ol>
<li id='fn-73-1'><a href="http://forums.atlassian.com/message.jspa?messageID=257336532">http://forums.atlassian.com/message.jspa?messageID=257336532</a> <span class='footnotereverse'><a href='#fnref-73-1'>&#8617;</a></span></li>
<li id='fn-73-2'><a href="http://forums.atlassian.com/message.jspa?messageID=257329197#257329197">http://forums.atlassian.com/message.jspa?messageID=257329197#257329197</a> <span class='footnotereverse'><a href='#fnref-73-2'>&#8617;</a></span></li>
<li id='fn-73-3'><a href="http://jira.atlassian.com/browse/JRA-14604">http://jira.atlassian.com/browse/JRA-14604</a> <span class='footnotereverse'><a href='#fnref-73-3'>&#8617;</a></span></li>
<li id='fn-73-4'><a href="http://jira.atlassian.com/browse/CONF-18094">http://jira.atlassian.com/browse/CONF-18094</a> <span class='footnotereverse'><a href='#fnref-73-4'>&#8617;</a></span></li>
<li id='fn-73-5'><a href="http://blogs.steeplesoft.com/2006/04/jira-and-glassfish/">http://blogs.steeplesoft.com/2006/04/jira-and-glassfish/</a> <span class='footnotereverse'><a href='#fnref-73-5'>&#8617;</a></span></li>
<li id='fn-73-6'><a href="http://confluence.atlassian.com/display/JIRA/Setting+up+JIRA+Standalone+and+MySQL+on+Linux">http://confluence.atlassian.com/display/JIRA/Setting+up+JIRA+Standalone+and+MySQL+on+Linux</a> <span class='footnotereverse'><a href='#fnref-73-6'>&#8617;</a></span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://alhvi.balcarcel.com/blog/2010/07/installing-jira-on-glassfish-a-step-by-step-guide/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Project Snowman Installation Guide</title>
		<link>http://alhvi.balcarcel.com/blog/2010/06/project-snowman-installation-guide/</link>
		<comments>http://alhvi.balcarcel.com/blog/2010/06/project-snowman-installation-guide/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 00:15:01 +0000</pubDate>
		<dc:creator>Alhvi</dc:creator>
				<category><![CDATA[GameDev]]></category>
		<category><![CDATA[Project Darkstar]]></category>
		<category><![CDATA[Project Snowman]]></category>
		<category><![CDATA[RedDwarf Server]]></category>

		<guid isPermaLink="false">http://alhvi.balcarcel.com/blog/?p=64</guid>
		<description><![CDATA[Today I was trying to install Project Snowman. I downloaded the distribution package, followed the instructions in Snowman&#8217;s wiki and got this error: [java] SEVERE: DataService initialization failed [java] java.lang.UnsatisfiedLinkError: no libdb_java45 in java.library.path After founding the library and pasting it in the right folder&#8230; another error&#8230; [java] SEVERE: DataService initialization failed [java] com.sun.sgs.impl.service.data.store.DataStoreException: DataStore [...]]]></description>
			<content:encoded><![CDATA[<p>Today I was trying to install <a title="Project Snowman" href="https://project-snowman.dev.java.net/">Project Snowman.</a> I downloaded the distribution package, followed the instructions in <a href="http://wiki.java.net/bin/view/Games/ProjectSnowman">Snowman&#8217;s wiki </a>and got this error:<br />
<code><br />
[java] SEVERE: DataService initialization failed<br />
[java] java.lang.UnsatisfiedLinkError: no libdb_java45 in java.library.path</code></p>
<p>After founding the library and pasting it in the right folder&#8230; another error&#8230;</p>
<p><code>[java] SEVERE: DataService initialization failed<br />
[java] com.sun.sgs.impl.service.data.store.DataStoreException: DataStore initialization failed: Unexpected database exception: com.sleepycat.db.DatabaseException: Bad address: Bad address</code></p>
<p>So I looked up google,  and found an installation guide for snowman in a <a href="http://webcache.googleusercontent.com/search?q=cache:ppbB9PNlph8J:timadorus.org/index.php%3Foption%3Dcom_content%26view%3Dcategory%26layout%3Dblog%26id%3D2%26Itemid%3D2+snowman+libdb_java45">cached page</a> from <a href="http://timadorus.org/">www.timadorus.org</a>.  I&#8217;m afraid the cached page could be lost so I&#8217;m copying and pasting the guide here. If you know who can be the author please post a comment so I can give him or her credit.</p>
<p>The guide says it&#8217;s for Windows XP.  I tried in Windows 7 32 bits and it worked perfectly.<br />
Update 20100913:  Today I tried in Windows 7 64 bit and it gives me the following error:<br />
<code><br />
[java] SEVERE: DataStore initialization failed<br />
[java] java.lang.UnsatisfiedLinkError: C:\Users\Alhvi\Desktop\snowman-dist-<br />
0.1\snowman-dist\natives\bdb\win32-x86\libdb_java45.dll: Can't load IA 32-bit .d<br />
ll on a AMD 64-bit platform<br />
</code></p>
<p>Anyway&#8230; for the rest of the people who uses a 32 bit Windows Version, or another OS   here is the guide:</p>
<h2>Installation Guide for Snowman version 0.1</h2>
<h4>The game:</h4>
<p>Download link: <a title="Project Snowman" href="https://project-snowman.dev.java.net/">https://project‐snowman.dev.java.net/</a></p>
<h4>Requirements:</h4>
<ul>
<li>Apache Ant (Download link: <a title="Ant" href="http://ant.apache.org/bindownload.cgi">http://ant.apache.org/bindownload.cgi</a>)</li>
<li>Java SDK 6</li>
<li>Current OpenGL driver for used video card</li>
</ul>
<h4>Installation process:</h4>
<h6>Step 1:</h6>
<p>Unzip the file snowman-dist.01.zip</p>
<h6>Step 2:</h6>
<p>After unzipping the file two new folders will be created:<br />
/natives/<br />
/snowman-dist/</p>
<p>To get the client running on Windows XP you have to copy libdb_java45.dll from<br />
Path:<strong> </strong>/natives/bdb/win32 –x86<br />
to the following folder:<br />
path: /snowman-dist/natives/bdb/win32  –x86/</p>
<p>The next step is to create a new folder named “win32 –x86”.<br />
Path: /snowman-dist/lwjgl-binaries/win32  –x86<br />
Now copy the file “lwjgl.dll” from win32 to your new created folder.<br />
Path: /snowman-dist/natives/lwjgl-binaries/win32</p>
<h6>*Step 3:</h6>
<p>Change dir to the folder snowman-dist<br />
Path:/snowman-dist/<br />
A file called build.xml<strong> </strong>should be found there</p>
<h6>Step 4:</h6>
<p>Open console and enter the following commands:<br />
ant run-single<br />
ant run-client</p>
<p>…and enjoy your snowball fight!!</p>
<h6>Step 5:</h6>
<p>If the game does not start please check the output for “Bad address” warnings like this:<br />
Notice the missing slashes!<br />
[java] WARNUNG: Database error message: Z:\xp-pro\Desktop\snowman-dist-0.1\<br />
snowman-dist\xp-proDesktopsnowman-dist-0.1snowman-dist  mpsnowman\dsdb:  Bad addr</p>
<p>If so open the build.xml file and look for these lines:<br />
&#8230;</p>
<p>&#8230;</p>
<p>com.sun.sgs.app.name=Snowman<br />
com.sun.sgs.app.root=${app.dir}<br />
com.sun.sgs.app.port=${server.port}<br />
com.sun.sgs.impl.service.transport.udp.port=1234<br />
com.sun.sgs.impl.service.data.store.db.environment.class=${bdb.env}</p>
<p>&#8230;</p>
<p>Replace “${app.dir}” with the snowman path.  *The line to change should be 168.<br />
Example:<br />
com.sun.sgs.app.root=c:\\snowman-dist\\tmp\\snowman</p>
<p>*Dont forget the double backslashes <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>*Run again:</p>
<p>ant run-single<br />
ant run-client<br />
Now the game should start without any problems.</p>
<h4>Further commands for the console:</h4>
<p>ant run-single:         starts a local server<br />
ant run-client:        starts a client<br />
ant run-server:        starts a server<br />
ant run-editor:        starts the editor</p>
<h4>Download Source Code:</h4>
<p>svn url : https://project-snowman.dev.java.net/svn/project-snowman/trunc</p>
<p>Name: guest<br />
Password: empty</p>
<h4>Comment by Alhvi:</h4>
<p>After following the guide everything works as it should. The only thing I didn&#8217;t knew is that you need to run two clients to be able to play.</p>
<p style="text-align: center;">
<p>Update 20100913:  Changed the format to make the guide a little bit more understandable.  Added some comments to the post (marked with *).  Happy programmers day!! <img src='http://alhvi.balcarcel.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div id="attachment_65" class="wp-caption aligncenter" style="width: 310px"><a href="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/06/snowman.png"><img class="size-medium wp-image-65 " title="Project Snowman" src="http://alhvi.balcarcel.com/blog/wp-content/uploads/2010/06/snowman-300x235.png" alt="Project Snowman Client" width="300" height="235" /></a><p class="wp-caption-text">Project Snowman Client</p></div>
]]></content:encoded>
			<wfw:commentRss>http://alhvi.balcarcel.com/blog/2010/06/project-snowman-installation-guide/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ekoparty 2009</title>
		<link>http://alhvi.balcarcel.com/blog/2009/12/ekoparty-2009/</link>
		<comments>http://alhvi.balcarcel.com/blog/2009/12/ekoparty-2009/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 09:18:37 +0000</pubDate>
		<dc:creator>Alhvi</dc:creator>
				<category><![CDATA[InfoSec]]></category>

		<guid isPermaLink="false">http://alhvi.balcarcel.com/blog/?p=4</guid>
		<description><![CDATA[Here&#8217;s the list of talks and links to the slides/papers presented at Ekoparty Security Conference -  Buenos Aires Argentina 2009. - Mostrame la guita! Adventures in buying vulnerabilities (blog post, slides).   Pedram Amini (profile, twitter, linkedin). - Ten Things Everyone Should Know About Lockpicking &#38; Physical Security (blog post, slides).  Deviant Ollam. (website). - [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the list of talks and links to the slides/papers presented at Ekoparty Security Conference -  Buenos Aires Argentina 2009.</p>
<ul>
<li>- Mostrame la guita! Adventures in buying vulnerabilities (<a href="http://dvlabs.tippingpoint.com/blog/2009/10/29/mostrame-la-guita">blog post</a>, <a href="http://docs.google.com/present/view?id=dcc6wpsd_20ghbpjxcr">slides</a>).   Pedram Amini (<a href="http://dvlabs.tippingpoint.com/team/pamini">profile</a>, <a href="http://twitter.com/pedramamini">twitter</a>, <a href="http://www.linkedin.com/in/pedramamini">linkedin</a>).</li>
<li>- Ten Things Everyone Should Know About Lockpicking &amp; Physical Security (<a href="http://deviating.net/lockpicking/slides.html">blog post</a>, <a href="http://deviating.net/lockpicking/slides/2009-09-17-ekoparty-talk.ppt">slides</a>).  Deviant Ollam. (<a href="http://deviating.net/">website</a>).</li>
<li>- Abusando Bitmask (Turbo Talk).  Nicolás Waisman. (<a href="http://eticanicomana.blogspot.com/">blog</a>, <a href="http://ar.linkedin.com/pub/nicolas-waisman/15/152/489">linkedin</a>).</li>
<li>- WiFi Power Save DoS (Turbo Talk)  (<a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=view&amp;type=publication&amp;name=WiFi_Power_Save_DoS">blog post</a>, <a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=attachment&amp;type=publication&amp;page=WiFi_Power_Save_DoS&amp;file=EKO-PS_DoS.pdf">slides</a>, <a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=attachment&amp;type=publication&amp;page=WiFi_Power_Save_DoS&amp;file=PS_DoS.pdf">paper</a>).  Leandro Federico Meiners (<a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=view&amp;type=researcher&amp;name=Leandro_Meiners">profile</a>).</li>
<li>- Heurísticas Aplicadas a la Comparación (Diffeo) de Binarios (<a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=view&amp;type=publication&amp;name=Heuristicas_aplicadas_a_la_comparacion_%28_diffeo_%29_de_binarios">blog post</a>, <a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=attachment&amp;type=publication&amp;page=Heuristicas_aplicadas_a_la_comparacion_%28_diffeo_%29_de_binarios&amp;file=Economou_2009-binary_diffing.pdf">slides</a>).  Nicolás Economou (<a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=view&amp;type=researcher&amp;name=Nicolas_Economou">profile</a>).</li>
<li>- Connection String Attacks (<a href="http://elladodelmal.blogspot.com/2009/09/conection-string-attacks-i-de-vi.html">blog post</a>, <a href="http://www.slideshare.net/chemai64/connection-string-parameter-pollution">slides</a>).  Chema Alonso. (<a href="http://elladodelmal.blogspot.com/">blog</a>).</li>
<li>- Attacking SMS (<a href="www.blackhat.com/presentations/bh-usa-09/LACKEY/BHUSA09-Lackey-AttackingSMS-SLIDES.pdf">slides</a>). Luis Miras (<a href="http://www.linkedin.com/in/luism">linkedin</a>).</li>
<li>- Playing in a Satellite Environment 1.2 (<a href="http://docs.google.com/present/view?id=dzsw638_128dbbtsswt">slides</a>).  Leonardo Nve (<a href="http://es.linkedin.com/pub/leonardo-nve-egea/17/420/412">linkedin</a>).</li>
<li>- Opening Intranets to Attacks by Using Internet Explorer (<a href="http://nomoreroot.blogspot.com/2009/04/opening-intranets-to-attacks-by-using.html">blog post</a>, <a href="http://www.argeniss.com/research/HackingIntranets.pdf">paper</a>). Cesar Cerrudo (<a href="http://nomoreroot.blogspot.com/">blog</a>, <a href="http://ar.linkedin.com/in/cesarcerrudo">linkedin</a>).</li>
<li>- SCCP hacking, attacking the SS7 &amp; SIGTRAN applications one step further and mapping the phone system (<a href="http://www.p1sec.com/corp/wp-content/uploads/2009/10/Attacking-SS7-v6-Philippe-Langlois.pdf">slides</a>). Philippe Langlois (<a href="http://fr.linkedin.com/in/langlois">linkedin</a>) .</li>
<li>- Emisoras de Números (Turbo Talk).  Lucas.</li>
<li>- Hack Labs (Turbo Talk). Philippe Langlois (<a href="http://fr.linkedin.com/in/langlois">linkedin</a>) .</li>
<li>- POSIX Meterpreter. Sebastián N. Fernandez.</li>
<li>- iPhone Hacking: Fuzzing and Payloads. Charlie Miller (<a href="http://en.wikipedia.org/wiki/Charlie_Miller_%28security_researcher%29">wikipedia</a>).</li>
<li>- Deactivate the Rootkit (<a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=view&amp;type=publication&amp;name=Deactivate_the_Rootkit">blog post original</a>, <a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=view&amp;type=publication&amp;name=Deactivate_the_Rootkit_%28ekoparty_edition%29">blog post ekoparty edition</a>, <a href="http://www.coresecurity.com/files/attachments/Paper-Deactivate-the-Rootkit-AOrtega-ASacco.pdf">paper</a>, <a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=attachment&amp;type=publication&amp;page=Deactivate_the_Rootkit_%28ekoparty_edition%29&amp;file=Slides-Deactivate-the-rootkit-Sacco-Aortega-Ekoparty.pdf">slides</a>) .  Alfredo Ortega (<a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=view&amp;type=researcher&amp;name=Alfredo_Ortega">profile</a>, <a href="http://ar.linkedin.com/pub/alfredo-adrian-ortega/5/20a/7a6">linkedin</a>/Anibal Sacco (<a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=view&amp;type=researcher&amp;name=Anibal_Sacco">profile</a>, <a href="http://ar.linkedin.com/in/asacco">linkedin</a>, <a href="http://twitter.com/hannibals">twitter</a>).</li>
<li>- More Tricks For Defeating SSL in Practice(<a href="http://www.blackhat.com/presentations/bh-usa-09/MARLINSPIKE/BHUSA09-Marlinspike-DefeatSSL-PAPER1.pdf">paper ssl</a>, <a href="http://www.blackhat.com/presentations/bh-usa-09/MARLINSPIKE/BHUSA09-Marlinspike-DefeatOCSP-PAPER2.pdf">paper ocsp</a>, <a href="http://www.blackhat.com/presentations/bh-usa-09/MARLINSPIKE/BHUSA09-Marlinspike-DefeatSSL-SLIDES.pdf">slides</a>, <a href="https://media.blackhat.com/bh-usa-09/video/MARLINSPIKE/BHUSA09-Marlinspike-DefeatSSL-VIDEO.mov">video</a>).  Moxie Marlinspike (<a href="http://en.wikipedia.org/wiki/Moxie_Marlinspike">wikipedia</a>, <a href="http://www.thoughtcrime.org/">website</a>).</li>
</ul>
<p>Ekoparty Reviews from other people (spanish).</p>
<ul>
<li>Alexa (<a href="http://alexav8.livejournal.com/103407.html">day 1</a>, <a href="http://alexav8.livejournal.com/103046.html">day 2</a>)</li>
<li><a href="http://blog.s21sec.com/2009/10/ekoparty-2009.html">Leonardo</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://alhvi.balcarcel.com/blog/2009/12/ekoparty-2009/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

