<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2445529843214641867</id><updated>2012-01-24T15:04:38.273-05:00</updated><category term='logging'/><category term='Red Hat'/><category term='.hgignore'/><category term='TestNG'/><category term='Fedora'/><category term='MacRoman'/><category term='Mapping'/><category term='Yum'/><category term='hbm2ddl'/><category term='Django Nonrel'/><category term='h2'/><category term='jRecruiter'/><category term='JBoss Web Services'/><category term='Hibernate'/><category term='Terracotta'/><category term='SELinux'/><category term='Twilight'/><category term='Mercurial'/><category term='PAE'/><category term='seam-gen'/><category term='Git'/><category term='extension'/><category term='Atlanta'/><category term='Safari'/><category term='Networking'/><category term='AJUG'/><category term='Debugging'/><category term='ssh_askpass'/><category term='CDI'/><category term='Apache'/><category term='xhtml'/><category term='Forms'/><category term='Gartner'/><category term='Classloader'/><category term='Intel AMT'/><category term='JBoss Tools'/><category term='M2Eclipse'/><category term='lifecycle'/><category term='lorem ipsum'/><category term='site-packages'/><category term='dbunit'/><category term='MySQL'/><category term='httpd'/><category term='Google Code'/><category term='xclip'/><category term='Web Services'/><category term='Hypersonic'/><category term='jBPM'/><category term='utf-8'/><category term='JBossTools'/><category term='OSX'/><category term='soapUI'/><category term='Gnome'/><category term='Groovy'/><category term='JUnit4'/><category term='Gnome Do'/><category term='Application Launcer'/><category term='yes_no'/><category term='JSFUnit'/><category term='Europa'/><category term='Firefox'/><category term='Fedora 13'/><category term='PostgreSQL'/><category term='build.xml'/><category term='django-tagging'/><category term='Django'/><category term='DB2'/><category term='mac'/><category term='Eclipse'/><category term='JSF'/><category term='Bash'/><category term='syncdb'/><category term='testing'/><category term='blogging'/><category term='plugins'/><category term='Devnexus'/><category term='JBoss 4.2.3.GA'/><category term='Python'/><category term='JAVA_HOME'/><category term='GWT'/><category term='JBoss Seam'/><category term='javascript'/><category term='Seam'/><category term='Calendar'/><category term='apple'/><category term='DZone'/><category term='AppEngine'/><category term='plugin.xml'/><category term='os x'/><category term='flatpages'/><category term='Oracle'/><category term='Log4j'/><category term='SOA'/><category term='JBossWorld'/><category term='Hibernate Search'/><category term='JBossRules'/><category term='KVM'/><category term='httpd.conf'/><category term='Xml'/><category term='Drools'/><category term='Django Templates'/><category term='Google AppEngine'/><category term='JBoss Operations Network'/><category term='svn+ssh'/><category term='settings.py'/><category term='leopard'/><category term='modprobe.d'/><category term='GqlQuery'/><category term='MeetUp'/><category term='SLF4j'/><category term='manage.py'/><category term='LinkageError'/><category term='XmlSlurper'/><category term='WebEx'/><category term='Grails'/><category term='productivity'/><category term='Terminal'/><category term='GQL'/><category term='Kay Framework'/><category term='gVim'/><category term='django-admin.py'/><category term='JBoss'/><category term='vi'/><category term='templatetags'/><category term='Practical Django Projects'/><category term='recycle bin'/><category term='mod_cluster'/><category term='reset'/><category term='Karmic Koala'/><category term='mockup'/><category term='HSQLDB'/><category term='JTA'/><category term='dashboard'/><category term='Java'/><category term='JBoss Developer Studio'/><category term='Google'/><category term='netbeans'/><category term='properties'/><category term='source'/><category term='jquery'/><category term='setfacl'/><category term='Quicksilver'/><category term='blogger'/><category term='Ruby'/><category term='Maven'/><category term='Linux'/><category term='Controller'/><category term='Ubuntu'/><category term='XmlUnit'/><category term='User&apos;s Group'/><category term='Ant'/><category term='Weld'/><title type='text'>Arrogant Programmer</title><subtitle type='html'>Useful (I hope) information from a JBoss Solution Architect.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default?start-index=101&amp;max-results=100'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>108</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4864115728342025473</id><published>2012-01-24T15:04:00.000-05:00</published><updated>2012-01-24T15:04:38.282-05:00</updated><title type='text'>Gradle</title><content type='html'>A few years ago I read &lt;a href="http://pragprog.com/titles/tpp/the-pragmatic-programmer"&gt;The Pragmatic Programmer&lt;/a&gt;.&amp;nbsp; The Pragmatic Programmer may not be the &lt;a href="http://en.wikipedia.org/wiki/Design_Patterns"&gt;GoF&lt;/a&gt; book, but it's almost as valuable.&lt;br /&gt;&lt;br /&gt;Andy Hunt and Dave Thomas recommend learning a new language every year.  I started with Groovy.&lt;br /&gt;&lt;br /&gt;Being a Java developer I thought Groovy would give me the most bang-for-the-buck.  After all Groovy is part of the Java spec so there is no excuse not to learn it.&lt;br /&gt;&lt;br /&gt;I think Groovy delivered.  I used to think that Groovy was worth learning for XML parsing/writing alone.  XMLSlurper and MarkupBuilder are by far the best things I've used for dealing with XML.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gradle.org/"&gt;Gradle&lt;/a&gt; changed my mind.  Gradle is a fantastic build tool.  Maven solves some problems, but it is a whole set of problems itself. Gradle can run Ant tasks so you keep Ant's functionality.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;As for the one language per year thing I picked up Python next and got a Django app into production.  I'm on Ruby now, but I'm behind schedule.  I'll get to Scala soon...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4864115728342025473?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4864115728342025473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4864115728342025473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4864115728342025473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4864115728342025473'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2012/01/gradle.html' title='Gradle'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6650967945347708310</id><published>2012-01-24T14:47:00.000-05:00</published><updated>2012-01-24T14:47:39.439-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Operations Network'/><title type='text'>No bundle plugin resource available to handle deployment for bundle type</title><content type='html'>The first time I tried deploying a bundle with a fresh server and JBoss Operations Network agent I got the following error :&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;java.lang.Exception:No bundle plugin resource available to handle deployment for bundle type [BundleType[id=10001,name=Ant Bundle]]. Ensure the bundle plugin is deployed and its resource is imported into inventory.&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;I restarted the agent and everything was fine.&lt;br /&gt;&lt;br /&gt;If I can reproduce this its time to login to Bugzilla.&amp;nbsp; I thought I'd post here first in case anyone Googles the Exception though.&lt;br /&gt;&lt;br /&gt;Happy coding&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6650967945347708310?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6650967945347708310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6650967945347708310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6650967945347708310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6650967945347708310'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2012/01/no-bundle-plugin-resource-available-to.html' title='No bundle plugin resource available to handle deployment for bundle type'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5022677845969169209</id><published>2011-12-15T08:14:00.000-05:00</published><updated>2011-12-15T08:14:55.694-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='PAE'/><title type='text'>PAE kernel</title><content type='html'>I use virtual machines a lot and really need more memory (more than 3.7GiB.) &lt;br /&gt;&lt;br /&gt;Unfortunately I'm still running 32 bit &lt;a href="http://fedoraproject.org/" target="_blank"&gt;Fedora&lt;/a&gt; 14.&amp;nbsp; I tried the 64 bit version, but had some problems with Firefox and Eclipse.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've put off upgrading because of &lt;a href="http://www.gnome.org/gnome-3/" target="_blank"&gt;Gnome 3&lt;/a&gt;.&amp;nbsp; I tried out the Live Disc for 15.&amp;nbsp; It didn't convince me.&lt;br /&gt;&lt;br /&gt;Since then I've heard enough good things about &lt;a href="http://live.gnome.org/GnomeShell" target="_blank"&gt;Gnome Shell&lt;/a&gt; that I'm willing to bite the bullet.&amp;nbsp; But just to play it safe I've been waiting until I have a few days with no meetings.&amp;nbsp; So meanwhile...&lt;br /&gt;&lt;br /&gt;I added memory and installed the &lt;a href="http://en.wikipedia.org/wiki/Physical_Address_Extension" target="_blank"&gt;PAE kernel&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;sudo yum install kernel-PAE&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Pretty simple and my machine immediately recognized the extra memory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5022677845969169209?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5022677845969169209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5022677845969169209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5022677845969169209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5022677845969169209'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2011/12/pae-kernel.html' title='PAE kernel'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6570280217324756509</id><published>2011-11-15T23:13:00.001-05:00</published><updated>2011-11-15T23:17:18.108-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebEx'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='SELinux'/><title type='text'>SELinux and WebEx playback</title><content type='html'>While trying to watch a &lt;a href="https://jboss.webex.com/cmp0306ld/webcomponents/docshow/docshow.do?isPluginInstalled=yes&amp;amp;siteurl=jboss&amp;amp;rnd=0.48699131708055454" target="_blank"&gt;WebEx&lt;/a&gt; recording I got only sound and an &lt;a href="http://fedoraproject.org/wiki/SELinux" target="_blank"&gt;SELinux&lt;/a&gt; alert.&lt;br /&gt;&lt;br /&gt;I had to set SELinux to "Permissive" :&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;# setenforce Permissive &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;A small price to pay.&lt;br /&gt;&lt;br /&gt;The WebEx, btw, was &lt;a href="http://kverlaen.blogspot.com/" target="_blank"&gt;Kris Verlaen&lt;/a&gt;'s presentation on &lt;a href="http://www.jboss.org/jbpm" target="_blank"&gt;jBPM5.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6570280217324756509?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6570280217324756509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6570280217324756509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6570280217324756509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6570280217324756509'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2011/11/selinux-and-webex-playback.html' title='SELinux and WebEx playback'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1960962938846732572</id><published>2011-11-14T15:30:00.000-05:00</published><updated>2011-11-14T15:30:02.835-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Atlanta'/><category scheme='http://www.blogger.com/atom/ns#' term='User&apos;s Group'/><category scheme='http://www.blogger.com/atom/ns#' term='MeetUp'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>JBUG ATL or Atlanta JBoss Users Group</title><content type='html'>The &lt;a href="http://www.meetup.com/ATL-JBUG"&gt;Atlanta JBug&lt;/a&gt; kicks off December 14.&lt;br /&gt;&lt;br /&gt;The meeting will be held at :&lt;br /&gt;Shadow-Soft&lt;br /&gt;&lt;span itemprop="stress-address"&gt;8200 Roberts Drive, Suite 201&lt;/span&gt;, &lt;span itemprop="locality"&gt;Atlanta&lt;/span&gt;, &lt;span itemprop="region"&gt;GA&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1960962938846732572?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1960962938846732572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1960962938846732572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1960962938846732572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1960962938846732572'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2011/11/jbug-atl-or-atlanta-jboss-users-group.html' title='JBUG ATL or Atlanta JBoss Users Group'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4614426954873676363</id><published>2011-10-27T20:27:00.001-04:00</published><updated>2011-10-27T20:29:56.939-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>How to change the ports that JBoss uses</title><content type='html'>The easiest way is to simply pass a command line argument. This takes care of any desktop/laptop/development purposes.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;run -Djboss.service.binding.set=ports-01&lt;br /&gt;run -Djboss.service.binding.set=ports-02&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&amp;nbsp;For more complete changes check out the official docs under, &lt;a href="http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/5/html/Getting_Started_Guide/The_Service_Binding_Manager.html"&gt;&lt;b&gt;1.7 The Service Binding Manager&lt;/b&gt;&lt;/a&gt; .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4614426954873676363?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4614426954873676363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4614426954873676363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4614426954873676363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4614426954873676363'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2011/10/how-to-change-ports-that-jboss-uses.html' title='How to change the ports that JBoss uses'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6054292139373123304</id><published>2011-10-26T14:54:00.000-04:00</published><updated>2011-10-26T14:54:39.263-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Developer Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Drools'/><title type='text'>Where did the drools-api.jar go?</title><content type='html'>JBoss BRMS 5.2 is out so naturally I started a new project in it.&lt;br /&gt;&lt;br /&gt;The first thing I noticed after updating my pom.xml was that there was no drools-api-&lt;i&gt;version&lt;/i&gt;.jar.&lt;br /&gt;&lt;br /&gt;All of the api classes are now in knowledge-api-&lt;i&gt;version&lt;/i&gt;.jar.&amp;nbsp; Be sure to update your pom!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6054292139373123304?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6054292139373123304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6054292139373123304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6054292139373123304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6054292139373123304'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2011/10/where-did-drools-apijar-go.html' title='Where did the drools-api.jar go?'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2842802321759106165</id><published>2011-08-24T05:11:00.000-04:00</published><updated>2011-08-24T05:11:19.178-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Red Hat'/><title type='text'>Architecting Solutions</title><content type='html'>&lt;br /&gt;Yesterday was my one year anniversary with &lt;a href="http://www.redhat.com/"&gt;Red Hat&lt;/a&gt; specifically with the &lt;a href="http://www.jboss.com/"&gt;JBoss&lt;/a&gt; the middleware division.&amp;nbsp; I am a Middleware Solutions Architect or "SA."&lt;br /&gt;&lt;br /&gt;I haven't blogged much since joining &lt;a href="http://www.redhat.com/"&gt;Red Hat&lt;/a&gt;.&amp;nbsp; The drop in output is partially due to time constraints.&amp;nbsp; In the past year I have been in&lt;br /&gt;Atlanta, Boston, Canton, GA, Franklin, TN, Ft. Lauderdale, Knoxville, Memphis, Miami, Mt. View, Nashville, Orlando, Pittsburgh, Raleigh, San Francisco, Tampa, and Washington D.C.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Another reason for the reduced output is that I had not written my disclaimer post either.&amp;nbsp; This is the disclaimer post.&lt;br /&gt;&lt;br /&gt;I have largely avoided opinionated posts focusing instead on solutions to real problems.&amp;nbsp; However, I don't get my hands dirty in code on a daily basis any more.&amp;nbsp; I still plan to focus on real solutions, but I might add some opinion, observations and predictions.&amp;nbsp; So be forewarned, the opinions that you read here belong to a &lt;a href="http://www.redhat.com/"&gt;Red Hat&lt;/a&gt; employee.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.redhat.com/"&gt;Red Hat&lt;/a&gt; is a great place to work, btw.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2842802321759106165?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2842802321759106165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2842802321759106165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2842802321759106165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2842802321759106165'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2011/08/architecting-solutions.html' title='Architecting Solutions'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2809555537698292423</id><published>2011-02-01T20:32:00.003-05:00</published><updated>2011-02-01T20:46:28.276-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><title type='text'>Rubykoans.com</title><content type='html'>A few years ago I decided to follow the Pragmatic Programmer's suggestion to learn a new language each year. &lt;br /&gt;&lt;br /&gt;I started with Groovy.  I make my living coding Java.  I figured that I would get the most bang for my buck with Groovy.  Groovy's XML utilities alone have saved me tons of time.  I've also done a project in Grails, and I would gladly do another one.&lt;br /&gt;&lt;br /&gt;I picked up Python next.  I like Python, and I have had some fun monkeying with Google AppEngine.  I have not had the chance to use it professionally.&lt;br /&gt;&lt;br /&gt;I had intended to pick up Ruby last year.  Several of the best people I've worked with, one of whom is &lt;a href="http://billsiggelkow.com/"&gt;a best selling Java author&lt;/a&gt;,  have extolled Ruby's virtues to me.  Hectic schedules and a job change threw a wrench into my plans so I'm picking up Ruby this year.&lt;br /&gt;&lt;br /&gt;I have been enjoying &lt;a href="http://www.rubykoans.com"&gt;rubykoans&lt;/a&gt; for the past couple of days.  The koans consist of a handful of ruby files full of assertions that don't pass.  By correcting and filling them in the files of course begin to work.&lt;br /&gt;&lt;br /&gt;Simply running "rake" in the directory tells you how many you have completed.  You are even rewarded with ASCII art upon completing a koan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2809555537698292423?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2809555537698292423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2809555537698292423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2809555537698292423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2809555537698292423'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2011/02/rubykoanscom.html' title='Rubykoans.com'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1875741936811874437</id><published>2011-01-31T21:37:00.004-05:00</published><updated>2011-01-31T22:24:14.335-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KVM'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel AMT'/><title type='text'>KVM : disabled by BIOS</title><content type='html'>I had no idea what Intel AMT was before I tried to fire up libvirt.&lt;br /&gt;&lt;br /&gt;While working through the &lt;a href="http://fedoraproject.org/wiki/Virtualization_Quick_Start"&gt;Fedora virtualization quick start&lt;/a&gt;, I ran :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;$ lsmod | grep kvm&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;which should have returned :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;$ lsmod | grep kvm&lt;br /&gt;kvm&lt;br /&gt;kvm_intel&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Unfortunately I had only, "kvm."  The troubleshooting guide suggested running :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;$ dmesg | grep -i kvm&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Which returned,&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;$ dmesg | grep -i kvm&lt;br /&gt;KVM: disabled by BIOS&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Happy day.  I booted into the BIOS ("Press the blue, ThinkVantage button!") and disabled AMT.  Unfortunately that didn't do it either.  I rebooted again, pressed "the blue, ThinkVantage button," chose "CPU" and enabled the two settings for virtualization,"Intel Virtualization Technology" and "Intel VT-d Feature."&lt;br /&gt;&lt;br /&gt;After the next reboot all was well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1875741936811874437?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1875741936811874437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1875741936811874437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1875741936811874437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1875741936811874437'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2011/01/intel-amt-and-kvm.html' title='KVM : disabled by BIOS'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5648565250670791764</id><published>2011-01-11T20:15:00.002-05:00</published><updated>2011-01-11T20:33:42.974-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><category scheme='http://www.blogger.com/atom/ns#' term='soapUI'/><title type='text'>SOAPui</title><content type='html'>This post is a shameless plug for &lt;a href="http://www.soapui.org/"&gt;soapUI&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I came across soapUI while running through the &lt;a href="http://www.jboss.com/developers/gettingstarted/"&gt;Self-Paced Workshop&lt;/a&gt; for the JBoss SOA Platform (&lt;a href="http://http//www.jboss.com/developers/gettingstarted/pdf/SOA-PWorkshop.pdf"&gt;pdf download&lt;/a&gt;.)  It is incredibly simple to create a test for a web service.  There is even an Eclipse plugin, but I haven't tried that yet.&lt;br /&gt;&lt;br /&gt;Happy coding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5648565250670791764?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5648565250670791764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5648565250670791764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5648565250670791764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5648565250670791764'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2011/01/soapui.html' title='SOAPui'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4455334611072489146</id><published>2010-11-29T22:13:00.003-05:00</published><updated>2010-11-29T22:34:23.596-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Git'/><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='setfacl'/><title type='text'>Recursive setfacl or how to add your PostgreSQL data directory to Git</title><content type='html'>This was an interesting annoyance.&lt;br /&gt;&lt;br /&gt;I was working on some examples and wanted to be able to delete everything cleanly after I was done.&lt;br /&gt;&lt;br /&gt;I had an instance of JBoss and wanted PostgreSQL to use a local directory for data.&lt;br /&gt;&lt;br /&gt;My directory structure was :&lt;br /&gt;example/&lt;br /&gt;data&lt;br /&gt;jboss-eap-5.1&lt;br /&gt;logs&lt;br /&gt;&lt;br /&gt;I had a user "postgres" to run PostgreSQL.  Since the rest of the directory was created by me, "jeremy," I used setfacl to add "postgres" to the data directory:&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;setfacl -m u:postgres:rwx ./data/&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;When I ran :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;initdb -D data/&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;It wasn't happy.  I got :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;"initdb: could not change permissions of directory"&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Next up was :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;sudo chown -R postgres:postgres data/&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;That worked for "initdb."   I was able to su to the "postgres" user and execute "initdb" in "data/."&lt;br /&gt;&lt;br /&gt;I was happy until I tried to add "data/" to Git :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;[jeremy@jeremy example]$ git add data&lt;br /&gt;error: open("data/PG_VERSION"): Permission denied&lt;br /&gt;error: unable to index file data/PG_VERSION&lt;br /&gt;fatal: adding files failed&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;setfacl to the rescue!&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;sudo setfacl -Rm u:jeremy:rwx ./data/&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Unfortunately I got the same error.&lt;br /&gt;I was missing the important "d" argument.  The following worked :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;sudo setfacl -Rm u:jeremy:rwx,d:u:jeremy:rwx ./data/&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;"sudo" was necessary because of changing the ownership to the "postgres" user.&lt;br /&gt;&lt;br /&gt;I added everything to Git.&lt;br /&gt;&lt;br /&gt;The moral of this rambling story : use the "d" flag with setfacl to cascade permissions to the files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4455334611072489146?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4455334611072489146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4455334611072489146' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4455334611072489146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4455334611072489146'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/11/recursive-setfacl-or-how-to-add-your.html' title='Recursive setfacl or how to add your PostgreSQL data directory to Git'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3540928560302869843</id><published>2010-10-12T11:10:00.003-04:00</published><updated>2010-10-12T11:20:17.732-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Terminal'/><category scheme='http://www.blogger.com/atom/ns#' term='Yum'/><category scheme='http://www.blogger.com/atom/ns#' term='xclip'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>xlcip or How to copy past from the command line to x-windows</title><content type='html'>Brain Ashburn, my colleague in the Atlanta Red Hat office, introduced me to the xclip utility today.  It copies output from the command line and puts it into x-windows.&lt;br /&gt;&lt;br /&gt;For example, to copy the current directory :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt; pwd | xclip -i -sel "clip"&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;There are of course more useful things that can be piped to it.  To try it out create a file, add some text and :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;cat newfile | xclip -i -sel "clip"&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Its available through yum :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;sudo yum install xclip&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3540928560302869843?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3540928560302869843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3540928560302869843' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3540928560302869843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3540928560302869843'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/10/xlcip-or-how-to-copy-past-from-command.html' title='xlcip or How to copy past from the command line to x-windows'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3264204454112763607</id><published>2010-10-05T09:43:00.003-04:00</published><updated>2010-10-05T09:52:50.888-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='Yum'/><title type='text'>Installing MySQL with Yum</title><content type='html'>A quick note on installing mysql with yum in case anyone else is lazy (like me) and runs :&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;sudo yum install mysql&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;That only installs half of what's needed. &lt;a href="http://www.cyberciti.biz/faq/how-to-install-mysql-under-rhel/"&gt; nixCraft&lt;/a&gt; sums it up nicely for &lt;a href="http://www.redhat.com/rhel/"&gt;RHEL&lt;/a&gt;.  It also works for Fedora :&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;$ sudo yum install mysql&lt;br /&gt;$ sudo yum install mysql-server&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;To start it up and set the root user/password :&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;$ sudo yum install mysql&lt;br /&gt;$ sudo chkconfig mysqld on&lt;br /&gt;$ sudo /etc/init.d/mysqld start&lt;br /&gt;$ mysqladmin -u root password PASSWORD&lt;br /&gt;$ mysql -u root -p&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3264204454112763607?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3264204454112763607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3264204454112763607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3264204454112763607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3264204454112763607'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/10/installing-mysql-with-yum.html' title='Installing MySQL with Yum'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1252780197060010677</id><published>2010-10-05T08:43:00.002-04:00</published><updated>2010-10-05T08:49:08.112-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='h2'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Code'/><title type='text'>H2 Connections in Eclipse</title><content type='html'>&lt;a href="http://www.h2database.com/html/main.html"&gt;H2&lt;/a&gt; is a great database for prototyping and local work.  Eclipse does not come with a default driver definition though.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://relation.to/Bloggers/Dan"&gt;Dan Allen&lt;/a&gt; has a nice &lt;a href="http://code.google.com/p/seaminaction/wiki/AddH2ConnectionInJBossTools"&gt;tutorial&lt;/a&gt; on Google code illustrating how to set one up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1252780197060010677?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1252780197060010677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1252780197060010677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1252780197060010677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1252780197060010677'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/10/h2-connections-in-eclipse.html' title='H2 Connections in Eclipse'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-213205731007493064</id><published>2010-10-01T14:47:00.002-04:00</published><updated>2010-10-01T14:55:11.218-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='httpd'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><category scheme='http://www.blogger.com/atom/ns#' term='mod_cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='SELinux'/><title type='text'>You don't have permission to access / on this server.</title><content type='html'>More fun with Apache.&lt;br /&gt;&lt;br /&gt;There was a time when I could configure Apache without the help of Google.  Alas, that time was years ago.&lt;br /&gt;&lt;br /&gt;I wanted several versions of Apache on my machine so that I could test different &lt;a href="http://www.jboss.org/mod_cluster"&gt;mod_cluster&lt;/a&gt; configurations side by side.&lt;br /&gt;&lt;br /&gt;I downloaded the Apache source, built it and put in "/examples" under my home directory.  After I started it I got :&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;You don't have permission to access / on this server.&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I immediately checked the directory permissions.  They looked okay.  I spent some time monkeying with the &lt;a href="http://fedoraproject.org/wiki/SELinux"&gt;SELinux&lt;/a&gt; security settings.&lt;br /&gt;&lt;br /&gt;The problem was simple: Apache needs execute permissions all the way up to the root directory.&lt;br /&gt;&lt;br /&gt;Simply moving my "examples" directory to the root fixed it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-213205731007493064?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/213205731007493064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=213205731007493064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/213205731007493064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/213205731007493064'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/10/you-dont-have-permission-to-access-on.html' title='You don&apos;t have permission to access / on this server.'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3349741322252661403</id><published>2010-09-24T12:05:00.003-04:00</published><updated>2010-09-24T12:09:05.345-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='httpd'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>httpd dead but subsys locked</title><content type='html'>While firing up apache this morning I got nothing.  A quick "httpd status" returned an interesting message :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;httpd dead but subsys locked&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;I have no idea when the lock got created.  I assume it was the last time I ran apache.  I don't use it as a daemon.&lt;br /&gt;&lt;br /&gt;The solution was simply to delete the lock :&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px dashed rgb(153, 153, 153); line-height: 14px; padding: 5px; overflow: auto; width: 100%;"&gt;&lt;code&gt;sudo rm /var/lock/subsys/httpd&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;All was well after that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3349741322252661403?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3349741322252661403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3349741322252661403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3349741322252661403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3349741322252661403'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/09/httpd-dead-but-subsys-locked.html' title='httpd dead but subsys locked'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1785338136252114946</id><published>2010-08-27T08:20:00.004-04:00</published><updated>2010-08-27T08:37:33.393-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome Do'/><category scheme='http://www.blogger.com/atom/ns#' term='Application Launcer'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora 13'/><category scheme='http://www.blogger.com/atom/ns#' term='Quicksilver'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Gnome Do</title><content type='html'>A Mac user by choice I am completely addicted to &lt;a href="http://www.blacktree.com/"&gt;Quicksilver&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've used &lt;a href="http://www.launchy.net/"&gt;Launchy&lt;/a&gt; on Windows.  Launchy is okay, but it requires a lot of babysitting.  Searchable folders have to be tweaked to get decent results.&lt;br /&gt;&lt;br /&gt;I've recently started using Fedora 13.  Naturally I wanted a launcher.  Wikipedia has a nice &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_application_launchers"&gt;comparison&lt;/a&gt; of launchers.  I installed &lt;a href="http://do.davebsd.com/"&gt;Gnome Do &lt;/a&gt;from yum :&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;sudo yum install gnome-do&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Its fast and returns meaningful results quickly.  Its also written in Mono which I find marginally interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1785338136252114946?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1785338136252114946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1785338136252114946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1785338136252114946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1785338136252114946'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/08/gnome-do.html' title='Gnome Do'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6108945559053383371</id><published>2010-08-26T20:57:00.002-04:00</published><updated>2010-08-26T21:03:04.089-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora 13'/><title type='text'>Hidden Gnome Panels in Fedora 13</title><content type='html'>I recently installed the new &lt;a href="http://fedoraproject.org/"&gt;Fedora&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I right clicked my top panel and chose "Add Panel."  Firefox, which had been maximized shrank about the size of a panel on the right side of the screen.&lt;br /&gt;&lt;br /&gt;Just for grins I right clicked and added another panel.  Firefox shrank on the left side.&lt;br /&gt;&lt;br /&gt;I added "Show Desktop" to the top panel and clicked it.  Panels appeared on each side of the desktop.  I right clicked and deleted them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6108945559053383371?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6108945559053383371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6108945559053383371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6108945559053383371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6108945559053383371'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/08/hidden-gnome-panels-in-fedora-13.html' title='Hidden Gnome Panels in Fedora 13'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1665283507001624312</id><published>2010-08-08T15:01:00.003-04:00</published><updated>2010-08-08T15:04:37.832-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>Debugging Grails Apps in Eclipse</title><content type='html'>This is pretty simple to accomplish.  Simply run "grails-debug run-app" instead of "grails run-app".&lt;br /&gt;&lt;br /&gt;However, be sure to start the debugger in Eclipse! The app doesn't finish starting up until the debugger is attached.  I spent some time wondering what was taking so long before putting that together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1665283507001624312?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1665283507001624312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1665283507001624312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1665283507001624312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1665283507001624312'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/08/debugging-grails-apps-in-eclipse.html' title='Debugging Grails Apps in Eclipse'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3590913859864544550</id><published>2010-07-29T15:18:00.004-04:00</published><updated>2010-07-30T10:19:37.795-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>Grails LinkageError for SAXParseException</title><content type='html'>I ran "grails run-app" for the app that I've been working on and was greeted with the following :&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;java.lang.LinkageError: loader constraint violation: loader (instance of &amp;lt;bootlo&lt;br /&gt;ader&amp;gt;) previously initiated loading for a different type with name "org/xml/sax/&lt;br /&gt;SAXParseException"&lt;br /&gt;   at java.lang.Class.getDeclaredMethods0(Native Method)&lt;br /&gt;   at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)&lt;br /&gt;   at java.lang.Class.getDeclaredMethods(Class.java:1791)&lt;br /&gt;   at java.security.AccessController.doPrivileged(Native Method)&lt;br /&gt;   at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:4&lt;br /&gt;6)&lt;br /&gt;   at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)&lt;br /&gt;   at grails.util.PluginBuildSettings.getPluginInfos(PluginBuildSettings.gr&lt;br /&gt;oovy:127)&lt;br /&gt;   at grails.util.PluginBuildSettings.getPluginInfos(PluginBuildSettings.gr&lt;br /&gt;oovy)&lt;br /&gt;   at grails.util.PluginBuildSettings$getPluginInfos.callCurrent(Unknown So&lt;br /&gt;urce)&lt;br /&gt;   at grails.util.PluginBuildSettings.getPluginInfo(PluginBuildSettings.gro&lt;br /&gt;ovy:164)&lt;br /&gt;   at grails.util.PluginBuildSettings$getPluginInfo.callCurrent(Unknown Sou&lt;br /&gt;rce)&lt;br /&gt;   at grails.util.PluginBuildSettings.getPluginInfoForSource(PluginBuildSet&lt;br /&gt;tings.groovy:202)&lt;br /&gt;   at org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTran&lt;br /&gt;sformationVisitor.java:303)&lt;br /&gt;   at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(Compil&lt;br /&gt;ationUnit.java:832)&lt;br /&gt;   at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(Compilat&lt;br /&gt;ionUnit.java:519)&lt;br /&gt;   at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(Co&lt;br /&gt;mpilationUnit.java:495)&lt;br /&gt;   at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.j&lt;br /&gt;ava:472)&lt;br /&gt;   at _GrailsEvents_groovy.run(_GrailsEvents_groovy:54)&lt;br /&gt;   at _GrailsEvents_groovy$run.call(Unknown Source)&lt;br /&gt;   at _GrailsClean_groovy$run.call(Unknown Source)&lt;br /&gt;   at _GrailsClean_groovy.run(_GrailsClean_groovy:29)&lt;br /&gt;   at _GrailsClean_groovy$run.call(Unknown Source)&lt;br /&gt;$&lt;br /&gt;   at _GrailsPlugins_groovy.run(_GrailsPlugins_groovy:32)&lt;br /&gt;   at _GrailsPlugins_groovy$run.call(Unknown Source)&lt;br /&gt;   at _GrailsRun_groovy$run.call(Unknown Source)&lt;br /&gt;   at _GrailsRun_groovy.run(_GrailsRun_groovy:31)&lt;br /&gt;   at _GrailsRun_groovy$run.call(Unknown Source)&lt;br /&gt;   at RunApp.run(RunApp.groovy:25)&lt;br /&gt;   at RunApp$run.call(Unknown Source)&lt;br /&gt;   at gant.Gant.prepareTargets(Gant.groovy:606)&lt;br /&gt;Error loading event script from file [PATH_TO_GRAILS\.grails&lt;br /&gt;\1.3.1\projects\PROJECT_NAME\plugins\code-coverage-1.1.8\scripts\_Events.gr&lt;br /&gt;oovy] loader constraint violation: loader (instance of &amp;lt;bootloader&amp;gt;) previously&lt;br /&gt;initiated loading for a different type with name "org/xml/sax/SAXParseException"&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Grails had done some sort of update that I didn't pay a lot of attention to.  I wondered if this had something to do with the update and will have to find out what went on later.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found &lt;a href="http://jira.codehaus.org/browse/GRAILS-5500"&gt;an entry on the Grails Jira&lt;/a&gt; dealing with the problem of xerces and Java 6.  The suggested solution was to remove xml-apis-1.0.2.b2.jar&lt;span class="Apple-style-span"    style="font-family:arial, FreeSans, Helvetica, sans-serif;font-size:130%;color:#333333;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse;  line-height: 20px;font-size:14px;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I ran :&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;find . -name "*xml*"&lt;br /&gt;find . -name "*api*"&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;from my project directory, my .grails directory and my .ivy directory. I found xml-apis-1.3.04.jar in my .ivy directory.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I ran &lt;a href="https://jarscan.dev.java.net/"&gt;jarscan &lt;/a&gt;against my project directory, .grails directory and .ivy directory and found 0 hits for SAXParseException.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;I added :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;    inherits("global") {&lt;br /&gt;      excludes "xml-apis"&lt;br /&gt;  }&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;To my BuildConfig.groovy file just below dependencies. The app ran.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3590913859864544550?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3590913859864544550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3590913859864544550' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3590913859864544550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3590913859864544550'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/07/grails-linkageerror-for.html' title='Grails LinkageError for SAXParseException'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-9157012500984573736</id><published>2010-07-17T10:37:00.004-04:00</published><updated>2010-07-17T10:46:53.759-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Forms'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Changing form actions with jQuery</title><content type='html'>I'm working on a simple cms in a side project.  Naturally I have a page where administrators can create new web pages.&lt;br /&gt;&lt;br /&gt;I'm using the &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; version of &lt;a href="http://tinymce.moxiecode.com/"&gt;TinyMCE&lt;/a&gt; for editing.  It is worth a look if you need wysiwyg textarea editing.&lt;br /&gt;&lt;br /&gt;I wanted to give my client the ability to preview the page before saving it.  The solution was simple: change the form's action in the click handler. &lt;br /&gt;&lt;br /&gt;The implementation eluded me for a while; although, it was completely obvious:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;                $("#preview").click(function(event){&lt;br /&gt;                   event.preventDefault();&lt;br /&gt;                   $("#create_page_form").attr( "action", "/preview_page" );&lt;br /&gt;                   $("#create_page_form").submit();&lt;br /&gt;               });&lt;br /&gt;&lt;br /&gt;               $("#submit").click(function(event){&lt;br /&gt;                   event.preventDefault();&lt;br /&gt;                   $("#create_page_form").attr( "action", "/create_page" );&lt;br /&gt;                   $("#create_page_form").submit();&lt;br /&gt;               });&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;"#preview" and "#submit" are the ids of two links but could be buttons.&lt;br /&gt;&lt;br /&gt;I thought I would post it in the event that anyone else Google's "jQuery change form action."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-9157012500984573736?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/9157012500984573736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=9157012500984573736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/9157012500984573736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/9157012500984573736'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/07/changing-form-actions-with-jquery.html' title='Changing form actions with jQuery'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6335839396361120756</id><published>2010-07-13T21:12:00.001-04:00</published><updated>2010-07-13T21:13:57.152-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vi'/><title type='text'>SHIFT : q</title><content type='html'>No matter what text editor I'm in I can't help but typing "SHIFT  :" followed by "q".&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Does that happen to anyone else?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6335839396361120756?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6335839396361120756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6335839396361120756' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6335839396361120756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6335839396361120756'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/07/shift-q.html' title='SHIFT : q'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3373656249297296096</id><published>2010-06-25T14:17:00.002-04:00</published><updated>2010-06-25T14:22:42.178-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Controller'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>groovy.lang.MissingMethodException: No signature of method: static .list() is applicable for argument types:</title><content type='html'>I've started using Grails recently.  Its really nice.  Productive, easy to get up and running, etc.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My first stab at testing a Controller produced : &lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;groovy.lang.MissingMethodException: No signature of method: static dbtestapp.Team.list() is applicable for argument types:&lt;br /&gt;(org.codehaus.groovy.grails.web.taglib.GroovyPageAttributes) values: [[max:10]]&lt;br /&gt;Possible solutions: is(java.lang.Object), wait(), wait(long), print(java.lang.Object), split(groovy.lang.Closure), use([Ljava.lang.Object;)&lt;br /&gt;at dbtestapp.TeamController$_closure2.doCall&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;A little weird.  list() is a dynamic method and should be on the object.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Its a &lt;a href="http://jira.codehaus.org/browse/GRAILS-3902"&gt;known issue in the Grails Jira&lt;/a&gt;.  The solution is to stick the test inside the "integration" package. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3373656249297296096?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3373656249297296096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3373656249297296096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3373656249297296096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3373656249297296096'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/06/groovylangmissingmethodexception-no.html' title='groovy.lang.MissingMethodException: No signature of method: static .list() is applicable for argument types:'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1051743939367217699</id><published>2010-06-14T23:19:00.002-04:00</published><updated>2010-06-14T23:25:32.600-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='modprobe.d'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Karmic Koala'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Ubuntu slow internet connection</title><content type='html'>I'm running Ubuntu Karmic Koala on a Dell Latitude D620.  I've had a pretty tough time with wireless.  Broadcom's support for Linux is terrible.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yesterday my browsers became ridiculously slow.  Running "ping" or "host" from Konsole showed that the problem wasn't networking.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found a few posts suggesting that I disable IPv6 and reboot.  I created a file "/etc/modprobe.d/bad_list", added "alias net-pf-10 off" and rebooted.  Much better.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was on another machine and don't have links to the actual posts from Linux forums and Ubuntu's forums.  My apologies to the solution's authors.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1051743939367217699?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1051743939367217699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1051743939367217699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1051743939367217699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1051743939367217699'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/06/ubuntu-slow-internet-connection.html' title='Ubuntu slow internet connection'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1544419979783140817</id><published>2010-06-07T09:33:00.002-04:00</published><updated>2010-06-07T09:42:00.811-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><title type='text'>java.lang.ClassNotFoundException: org.codehaus.groovy.transform.powerassert.ValueRecorder</title><content type='html'>Running a GroovyTestCase in a new project I got the following : &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;java.lang.NoClassDefFoundError: org/codehaus/groovy/transform/powerassert/ValueRecorder&lt;br /&gt;   at [My Package Hierarchy].[My TestCase].[My Test Method]([My Test Case].groovy:29)&lt;br /&gt;   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt;   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;   at java.lang.reflect.Method.invoke(Method.java:597)&lt;br /&gt;   at junit.framework.TestCase.runTest(TestCase.java:168)&lt;br /&gt;   at junit.framework.TestCase.runBare(TestCase.java:134)&lt;br /&gt;   at junit.framework.TestResult$1.protect(TestResult.java:110)&lt;br /&gt;   at junit.framework.TestResult.runProtected(TestResult.java:128)&lt;br /&gt;   at junit.framework.TestResult.run(TestResult.java:113)&lt;br /&gt;   at junit.framework.TestCase.run(TestCase.java:124)&lt;br /&gt;   at junit.framework.TestSuite.runTest(TestSuite.java:232)&lt;br /&gt;   at junit.framework.TestSuite.run(TestSuite.java:227)&lt;br /&gt;   at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:79)&lt;br /&gt;   at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)&lt;br /&gt;   at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)&lt;br /&gt;   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)&lt;br /&gt;   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)&lt;br /&gt;   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)&lt;br /&gt;   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)&lt;br /&gt;Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.transform.powerassert.ValueRecorder&lt;br /&gt;   at java.net.URLClassLoader$1.run(URLClassLoader.java:202)&lt;br /&gt;   at java.security.AccessController.doPrivileged(Native Method)&lt;br /&gt;   at java.net.URLClassLoader.findClass(URLClassLoader.java:190)&lt;br /&gt;   at java.lang.ClassLoader.loadClass(ClassLoader.java:307)&lt;br /&gt;   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)&lt;br /&gt;   at java.lang.ClassLoader.loadClass(ClassLoader.java:248)&lt;br /&gt;   ... 20 more&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;I found a&lt;a href="http://jira.codehaus.org/browse/GRECLIPSE-636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel"&gt; bug that was closed because it couldn't be reproduced&lt;/a&gt; in the Groovy Eclipse JIRA.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had run GroovyTestCases in other projects without this problem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I right clicked the project and chose "Groovy -&gt; Add Groovy libs to Classpath."  That fixed it.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had added my own Groovy library instead of the plugins.  I often point Eclipse Libraries to the jar files in my .m2 directory.  The "org.codehaus.groovy.transform.powerassert" package was not part of the Groovy distro.  It is part of Groovy Eclipse plugin.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1544419979783140817?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1544419979783140817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1544419979783140817' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1544419979783140817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1544419979783140817'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/06/javalangclassnotfoundexception.html' title='java.lang.ClassNotFoundException: org.codehaus.groovy.transform.powerassert.ValueRecorder'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4363326844014756556</id><published>2010-06-05T08:24:00.002-04:00</published><updated>2010-06-05T08:30:50.435-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twilight'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Another cool NetBeans theme</title><content type='html'>&lt;div&gt;I really like a dark background in my IDE.  I &lt;a href="http://arrogantprogrammer.blogspot.com/2010/03/cool-netbeans-plugin.html"&gt;previously&lt;/a&gt; &lt;a href="http://arrogantprogrammer.blogspot.com/2010/03/cool-netbeans-plugin.html"&gt;mentioned&lt;/a&gt; the Aloha theme for NetBeans.  I've been using if for a while.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yesterday I found a version of &lt;a href="http://net.tutsplus.com/freebies/themes/netbeans-twilight-theme/"&gt;Twilight&lt;/a&gt; for &lt;a href="http://netbeans.org/"&gt;NetBeans&lt;/a&gt;.  This one is set up for PHP, but works pretty well for Python.  It is tweakable of course too.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4363326844014756556?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4363326844014756556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4363326844014756556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4363326844014756556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4363326844014756556'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/06/another-cool-netbeans-theme.html' title='Another cool NetBeans theme'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2020736672646539613</id><published>2010-05-19T20:53:00.002-04:00</published><updated>2010-05-19T21:10:59.081-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.hgignore'/><category scheme='http://www.blogger.com/atom/ns#' term='Mercurial'/><title type='text'>Using .hgignore</title><content type='html'>&lt;div&gt;Being a Java guy by day I typically use the source control stalwarts subversion and cvs.  I've been exposed to other source control software of course.  I used Borland's StarTeam on one gig, and I had a brief, horrific experience with Visual Source Safe.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now that I'm a Python guy by night I have been using Mercurial.  I like it.  Its fast.  &lt;a href="http://bitbucket.org/"&gt;Bitbucket&lt;/a&gt; is &lt;i&gt;really&lt;/i&gt; sweet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I use it on the command line; although, NetBeans has built in support.  Naturally I got tired of seeing all my compiled Python files (*.pyc) when I ran, "hg status."&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;hg status&lt;br /&gt;...&lt;br /&gt;flatpages/forms.pyc                                                               &lt;br /&gt;flatpages/models.pyc&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;Putting a file, ".hgignore" in the root of the directory is the solution.  &lt;a href="http://mercurial.selenic.com/wiki/.hgignore"&gt;This&lt;/a&gt; &lt;a href="http://stackoverflow.com/questions/1678091/hgignore-whole-directory-tree-excepting-one-specific-file"&gt;is&lt;/a&gt; &lt;a href="http://linux.die.net/man/5/hgignore"&gt;duly&lt;/a&gt;&lt;a href="http://hgbook.red-bean.com/read/file-names-and-pattern-matching.html"&gt; documented&lt;/a&gt; all over the web.  I had problems with the syntax nonetheless.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That was what I ended up with:&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;# use glob syntax.&lt;br /&gt;syntax: glob&lt;br /&gt;*.elc&lt;br /&gt;*.pyc&lt;br /&gt;*&lt;br /&gt;*.bfproject&lt;br /&gt;*.kpf&lt;br /&gt;&lt;br /&gt;templates_compiled/**&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;The glob syntax is pretty intuitive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2020736672646539613?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2020736672646539613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2020736672646539613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2020736672646539613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2020736672646539613'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/05/using-hgignore.html' title='Using .hgignore'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-859483936488714719</id><published>2010-05-16T15:20:00.002-04:00</published><updated>2010-05-16T15:27:05.186-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Google AppEngine'/><title type='text'>Parse Error: Expected no additional symbols at symbol select</title><content type='html'>Running the following query :&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;query = MODEL_NAME.gql("select * from MODEL_NAME where name = :1", supplied_name) &lt;/code&gt;&lt;/pre&gt;I got the error below :&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Traceback (most recent call last):                                                               &lt;br /&gt;File "&amp;lt;console&amp;gt;", line 1, in &amp;lt;module&amp;gt;                                                          &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/db/__init__.py", line 1100, in gql                                                                                                              &lt;br /&gt; *args, **kwds)                                                                                             &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/db/__init__.py", line 2047, in __init__                                                                                                         &lt;br /&gt; self._proto_query = gql.GQL(query_string, _app=app)                                                        &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/gql/__init__.py", line 192, in __init__                                                                                                         &lt;br /&gt; if not self.__Select():                                                                                    &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/gql/__init__.py", line 799, in __Select                                                                                                         &lt;br /&gt; return self.__From()                                                                                       &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/gql/__init__.py", line 820, in __From                                                                                                           &lt;br /&gt; return self.__Where()                                                                                      &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/gql/__init__.py", line 833, in __Where                                                                                                          &lt;br /&gt; return self.__OrderBy()                                                                                    &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/gql/__init__.py", line 1056, in __OrderBy                                                                                                       &lt;br /&gt; return self.__Limit()                                                                                      &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/gql/__init__.py", line 1098, in __Limit                                                                                                         &lt;br /&gt; return self.__Offset()                                                                                     &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/gql/__init__.py", line 1117, in __Offset                                                                                                        &lt;br /&gt; return self.__Hint()                                                                                       &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/gql/__init__.py", line 1140, in __Hint                                                                                                          &lt;br /&gt; return self.__AcceptTerminal()                                                                             &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appengine/ext/gql/__init__.py", line 784, in __AcceptTerminal                                                                                                 &lt;br /&gt; self.__Error('Expected no additional symbols')                                                             &lt;br /&gt;File "[PATH TO APP ENGINE INSTALL]google_appengine_1.3.1/google/appeng&lt;br /&gt;ine/ext/gql/__init__.py", line 724, in __Error                                                                                                          &lt;br /&gt; (error_message, self.__symbols[self.__next_symbol]))                                                       &lt;br /&gt;BadQueryError: Parse Error: Expected no additional symbols at symbol select  &lt;/code&gt;&lt;/pre&gt;This is a simple fix:&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;query = MODEL_NAME.gql("select * from MODEL_NAME where name = :1", supplied_name) &lt;/code&gt;&lt;/pre&gt;App Engine's orm is already supplying the "select * from" part of the query.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-859483936488714719?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/859483936488714719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=859483936488714719' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/859483936488714719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/859483936488714719'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/05/parse-error-expected-no-additional.html' title='Parse Error: Expected no additional symbols at symbol select'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-7966838499657793932</id><published>2010-05-13T20:47:00.003-04:00</published><updated>2010-05-13T21:20:49.828-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kay Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Google AppEngine'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='GqlQuery'/><title type='text'>Gql and object inheritance</title><content type='html'>&lt;div&gt;I am working on an AppEngine project using the &lt;a href="http://code.google.com/p/kay-framework/"&gt;Kay Framework&lt;/a&gt;.  &lt;/div&gt;&lt;div&gt;I was testing my queries in &lt;a href="http://code.google.com/p/kay-framework/"&gt;Kay Framework&lt;/a&gt;'s shell.  If you are familiar with &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt;'s shell it is essentially the same.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Running the following query :&lt;div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;query = db.GqlQuery("select * from MyUserObject where user_name = :1 and password = :2")&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;I got this error :&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;raise KindError('No implementation for kind \'%s\'' % kind)&lt;/code&gt;&lt;/pre&gt;I had imported the object.  My object inherits from the framework's DatatstoreUser.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Apparently the &lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1075"&gt;ORM&lt;/a&gt; &lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1075"&gt;sometimes&lt;/a&gt; &lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1075"&gt;struggles&lt;/a&gt; &lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1075"&gt;with&lt;/a&gt; &lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1075"&gt;inherited&lt;/a&gt; &lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1075"&gt;classes&lt;/a&gt; &lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1075"&gt;in&lt;/a&gt; &lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1075"&gt;different&lt;/a&gt; &lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1075"&gt;packages&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Changing to the following :&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;query = MyUserObject.gql("where user_name = :1", "testuser@testuser.com")&lt;/code&gt;&lt;/pre&gt;provided exactly what I needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-7966838499657793932?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/7966838499657793932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=7966838499657793932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/7966838499657793932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/7966838499657793932'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/05/gql-and-object-inheritance.html' title='Gql and object inheritance'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1485092573777814343</id><published>2010-04-30T10:08:00.003-04:00</published><updated>2010-04-30T10:20:22.125-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Projects using GWT 1.5 or lower may only specify one entry point module to compile</title><content type='html'>Despite &lt;div&gt;Having the 2.0.3 GWT plugin installed&lt;/div&gt;&lt;div&gt;Never having used the 1.5 GWT plugin&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was getting the following error when clicking the GWT compile button :&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt; Projects using GWT 1.5 or lower may only specify one entry point module to compile&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;The solution was to move my GWT dependencies above my Maven dependencies.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Right click on the project -&gt; Build Path -&gt; Configure Build Path... -&gt; Order and Export&lt;/div&gt;&lt;div&gt;Click on GWT SDK and Up until it is just below the JDK.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1485092573777814343?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1485092573777814343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1485092573777814343' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1485092573777814343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1485092573777814343'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/04/projects-using-gwt-15-or-lower-may-only.html' title='Projects using GWT 1.5 or lower may only specify one entry point module to compile'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3290547257256756810</id><published>2010-04-30T09:23:00.003-04:00</published><updated>2010-04-30T09:35:44.859-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><category scheme='http://www.blogger.com/atom/ns#' term='M2Eclipse'/><title type='text'>Please make sure the -vm option in eclipse.ini is pointing to a JDK</title><content type='html'>&lt;div&gt;Ececutive summary : put the vm argument on the line after  "-vm" in eclipse.ini.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;I got the following dialog after a fresh Eclipse install :&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;The Maven Integration requires that Eclipse be running in a JDK, because a number of Maven core plugins are using jars from the JDK.&lt;br /&gt;Please make sure the -vm option in eclipse.ini is pointing to a JDK and verify that Installed JREs are also using JDK installs.&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;The Installed JREs were already pointing to a JDK.  I set my my eclipse.ini to : -vm C:\Sun\SDK\jdk&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;-vm C:\Sun\SDK\jdk\bin\javaw.exe&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;No luck.&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/Main_Page"&gt;Eclipsepedia&lt;/a&gt; has an &lt;a href="http://wiki.eclipse.org/Eclipse.ini"&gt;eclipse.ini&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I put the vm location on the next line and everything worked.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3290547257256756810?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3290547257256756810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3290547257256756810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3290547257256756810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3290547257256756810'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/04/please-make-sure-vm-option-in.html' title='Please make sure the -vm option in eclipse.ini is pointing to a JDK'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-8422879348917673779</id><published>2010-03-16T22:32:00.005-04:00</published><updated>2010-06-05T08:29:11.477-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJUG'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='Devnexus'/><title type='text'>Cool NetBeans Plugin</title><content type='html'>Last week at &lt;a href="http://www.ajug.org/"&gt;AJUG&lt;/a&gt;'s &lt;a href="http://devnexus.com/"&gt;Devnexus&lt;/a&gt; conference &lt;a href="http://www.agiledeveloper.com/blog/"&gt;Venkat Subramanium&lt;/a&gt; made an interesting point about IDEs.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;He asked how many of the people in attendance used Eclipse.  Unsurprisingly almost everyone raised a hand.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then he asked how many of us would use it if it cost $500.  Almost all of the hands dropped, including mine.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I downloaded NetBeans and IntelliJ.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had used NetBeans for a while before.  One thing I liked was its themes.  I like light text on a dark background.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found this theme, &lt;a href="http://www.dzone.com/links/r/aloha_color_theme_for_netbeans_61.html"&gt;Aloha&lt;/a&gt;, and installed it.  Pretty nice.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-8422879348917673779?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/8422879348917673779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=8422879348917673779' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/8422879348917673779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/8422879348917673779'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/03/cool-netbeans-plugin.html' title='Cool NetBeans Plugin'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2545534952282138067</id><published>2010-03-10T23:51:00.004-05:00</published><updated>2010-03-11T00:04:36.645-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Django Nonrel'/><category scheme='http://www.blogger.com/atom/ns#' term='AppEngine'/><title type='text'>Django Nonrel and Google App Engine</title><content type='html'>&lt;div&gt;The guys behind &lt;a href="http://code.google.com/p/app-engine-patch/"&gt;appengine patch&lt;/a&gt; have &lt;a href="http://www.allbuttonspressed.com/blog/django/2010/01/Native-Django-on-App-Engine"&gt;a new project&lt;/a&gt; using the Django nonrel project to run on App Engine.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Clone the appropriate projects from bitbucket :&lt;div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;$ hg clone https://[Bitbucket User Name]@bitbucket.org/wkornewald/django-nonrel/&lt;br /&gt;$ hg clone https://[Bitbucket User Name]@bitbucket.org/wkornewald/djangoappengine/&lt;br /&gt;$ hg clone https://[Bitbucket User Name]@bitbucket.org/wkornewald/django-testapp/&lt;br /&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; line-height: normal; white-space: normal;"&gt;&lt;span class="Apple-style-span"   style="font-family:monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The instructions say next, "Now you should be able to create a new app in the testapp folder and use native Django models on App Engine. Try it!"&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;dignan@dignan-laptop:~/workspace/django-nonrel/django-testapp$ python manage.py runserver&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;File "manage.py", line 4, in &amp;lt;module&amp;gt;&lt;br /&gt;from djangoappengine.boot import setup_env&lt;br /&gt;ImportError: No module named djangoappengine.boot&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Hmmm.&lt;div&gt;The documentation calls for two symlinks :&lt;/div&gt;&lt;div&gt;django-testapp/common-apps/djangoappengine -&gt; ../../djangoappengine&lt;/div&gt;&lt;div&gt;&lt;div&gt;django-testapp/common-apps/djangoappengine -&gt; ../../django-nonrel/django&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I created them and tried again.&lt;/div&gt;&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;The Google App Engine SDK could not be found!&lt;br /&gt;Make sure it's accessible via your PATH environment.&lt;/code&gt;&lt;/pre&gt;So I added the it to my path and tried again.  Same result.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found the following on the appengine-patch website:&lt;/div&gt;&lt;div&gt;"&lt;i&gt;you can also put the SDK into any folder that is in the system's PATH environment variable as long as it's called "google_appengine" (this works with any OS)&lt;/i&gt;"&lt;/div&gt;&lt;br /&gt;My sdk was in "google_appengine_1.3.0". I created a symlink, "google_appengine" and tried again.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;/home/dignan/tools/appengine/google_appengine_1.3.0/google/appengine/api/datastore_file_stub.py:40: DeprecationWarning: the md5 module is deprecated; use hashlib instead                                                             &lt;br /&gt;import md5                                                                                                    &lt;br /&gt;/home/dignan/tools/appengine/google_appengine_1.3.0/google/appengine/api/memcache/__init__.py:31: DeprecationWarning: the sha module is deprecated; use the hashlib module instead                                                    &lt;br /&gt;import sha&lt;br /&gt;WARNING  2010-03-10 22:41:09,468 datastore_file_stub.py:483] Could not read datastore data from /tmp/django_nonreltest.datastore&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;File "workspace/django-norel/django-testapp/manage.py", line 16, in &amp;lt;module&amp;gt;&lt;br /&gt;execute_manager(settings)&lt;br /&gt;File "/home/dignan/workspace/django-norel/django-testapp/common-apps/django/core/management/__init__.py", line 438, in execute_manager&lt;br /&gt;utility.execute()&lt;br /&gt;File "/home/dignan/workspace/django-norel/django-testapp/common-apps/django/core/management/__init__.py", line 379, in execute&lt;br /&gt;self.fetch_command(subcommand).run_from_argv(self.argv)&lt;br /&gt;File "workspace/django-norel/django-testapp/common-apps/djangoappengine/management/commands/runserver.py", line 88, in run_from_argv&lt;br /&gt;start_dev_appserver(argv)&lt;br /&gt;File "workspace/django-norel/django-testapp/common-apps/djangoappengine/management/commands/runserver.py", line 74, in start_dev_appserver&lt;br /&gt;dev_appserver_main.main([progname] + args + [os.getcwdu()])&lt;br /&gt;File "/home/dignan/tools/appengine/google_appengine_1.3.0/google/appengine/tools/dev_appserver_main.py", line 360, in main&lt;br /&gt;config, matcher = dev_appserver.LoadAppConfig(root_path, {})&lt;br /&gt;File "/home/dignan/tools/appengine/google_appengine_1.3.0/google/appengine/tools/dev_appserver.py", line 3441, in LoadAppConfig&lt;br /&gt;raise AppConfigNotFoundError&lt;br /&gt;google.appengine.tools.dev_appserver.AppConfigNotFoundError&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;At least it started!  I cd'd into the app's directory and ran:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;python manage.py runserver&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;It started up.  I got the default "It worked!" page.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2545534952282138067?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2545534952282138067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2545534952282138067' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2545534952282138067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2545534952282138067'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/03/django-nonrel-and-google-app-engine.html' title='Django Nonrel and Google App Engine'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4288550748342039324</id><published>2010-02-14T18:28:00.003-05:00</published><updated>2010-02-14T18:32:59.145-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='AppEngine'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Using the Google App Engine Helper for Django</title><content type='html'>Working through the &lt;a href="http://code.google.com/appengine/articles/appengine_helper_for_django.html"&gt;steps to install&lt;/a&gt; the &lt;a href="http://code.google.com/p/google-app-engine-django/"&gt;Google Appengine Helper for Django&lt;/a&gt;, I zipped up Django 1.1 and placed it in the root directory.  I ran, "python manage.py runserver" and got the following error :&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;dignan@dignan-laptop:~/workspace/python/[PROJECT_NAME]$ python manage.py runserver&lt;br /&gt;ERROR:root:Django 1.0 or greater is required!&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;The solution was simple.  I zipped up the "django" folder inside the complete distro and put it in the root.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4288550748342039324?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4288550748342039324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4288550748342039324' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4288550748342039324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4288550748342039324'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/02/using-google-app-engine-helper-for.html' title='Using the Google App Engine Helper for Django'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2450497192569041389</id><published>2010-01-21T09:20:00.001-05:00</published><updated>2010-01-21T09:21:13.580-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Cool JQuery UI trick</title><content type='html'>&lt;div&gt;I saw this on DZone this morning.  I think it deserve an upvote and a link :&lt;/div&gt;&lt;a href="http://blog.mycila.com/2010/01/page-decomposition-with-jquery-ui.html"&gt;Mycila Blog: Page decomposition with JQuery UI&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2450497192569041389?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2450497192569041389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2450497192569041389' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2450497192569041389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2450497192569041389'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/01/mycila-blog-page-decomposition-with.html' title='Cool JQuery UI trick'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6333426623591058424</id><published>2010-01-11T08:55:00.000-05:00</published><updated>2010-01-11T08:55:42.255-05:00</updated><title type='text'>Dustin's Software Development Cogitations and Speculations: Viewing Groovy Application's Classpath</title><content type='html'>&lt;div&gt;I found this Groovy tip on &lt;a href="http://www.dzone.com"&gt;DZone &lt;/a&gt;this morning :&lt;/div&gt;&lt;a href="http://marxsoftware.blogspot.com/2010/01/viewing-groovy-applications-classpath.html"&gt;Dustin's Software Development Cogitations and Speculations: Viewing Groovy Application's Classpath&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6333426623591058424?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://marxsoftware.blogspot.com/2010/01/viewing-groovy-applications-classpath.html' title='Dustin&apos;s Software Development Cogitations and Speculations: Viewing Groovy Application&apos;s Classpath'/><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6333426623591058424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6333426623591058424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6333426623591058424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6333426623591058424'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2010/01/dustins-software-development.html' title='Dustin&apos;s Software Development Cogitations and Speculations: Viewing Groovy Application&apos;s Classpath'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1853520690809918657</id><published>2009-11-20T23:42:00.002-05:00</published><updated>2009-11-20T23:47:53.339-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='settings.py'/><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='properties'/><title type='text'>Django properties for settings.py</title><content type='html'>I wanted to externalize all of the properties in settings.py for obvious reasons.  I found a couple of suggestions.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What I did was create to files, properties_local.py and properties_dev.py.  Working locally I imported, "import properties_local as properties" &lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;# Django settings for [project name] project.&lt;br /&gt;import properties_local as properties&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;and then set the variables accordingly:&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;DATABASE_ENGINE = properties.DATABASE_ENGINE&lt;br /&gt;DATABASE_NAME = properties.DATABASE_NAME&lt;br /&gt;DATABASE_USER = properties.DATABASE_USER&lt;br /&gt;DATABASE_PASSWORD = properties.DATABASE_PASSWORD&lt;br /&gt;DATABASE_HOST = properties.DATABASE_HOST&lt;br /&gt;DATABASE_PORT = properties.DATABASE_PORT&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;I only have to change the import setting.  I should figure out a way around that soon though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1853520690809918657?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1853520690809918657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1853520690809918657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1853520690809918657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1853520690809918657'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/11/django-properties-for-settingspy.html' title='Django properties for settings.py'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-554743225007158683</id><published>2009-11-19T22:38:00.002-05:00</published><updated>2009-11-19T22:45:10.349-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='Django Templates'/><title type='text'>Django template does not exist</title><content type='html'>I got a really annoying error while putting up a new Django site:&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&lt;b&gt;&lt;br /&gt;TemplateDoesNotExist&lt;/b&gt; at /flatpage/&lt;br /&gt;flatpages/default.html&lt;br /&gt;Request Method:    GET&lt;br /&gt;Request URL:    http://[site url]/flatpage/&lt;br /&gt;Exception Type:    TemplateDoesNotExist&lt;br /&gt;Exception Value:  &lt;br /&gt;flatpages/default.html&lt;br /&gt;Exception Location:    /usr/lib/python2.4/site-packages/django/template/loader.py in find_template_source, line 74&lt;br /&gt;Python Executable:    /usr/bin/python&lt;br /&gt;Python Version:    2.4.3&lt;br /&gt;Python Path:    ['/[python path]', '/usr/lib/python24.zip', '/usr/lib/python2.4', '/usr/lib/python2.4/plat-linux2', '/usr/lib/python2.4/lib-tk', '/usr/lib/python2.4/lib-dynload', '/usr/lib/python2.4/site-packages']&lt;br /&gt;Server time:    Thu, 19 Nov 2009 22:39:37 -0500&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Of course I had templates in Apache's directory.  The Template-loader postmortem (great name) showed that Django was looking for the wrong directory (in italics below.)&lt;div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&lt;br /&gt;&lt;b&gt;Template-loader postmortem&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Django tried loading these templates, in this order:&lt;br /&gt;Using loader django.template.loaders.filesystem.load_template_source:&lt;br /&gt;/[&lt;i&gt;development path&lt;/i&gt;]/flatpages/default.html (File does not exist)&lt;br /&gt;Using loader django.template.loaders.app_directories.load_template_source:&lt;br /&gt;/usr/lib/python2.4/site-packages/django/contrib/admin/templates/flatpages/default.html (File does not exist)&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;I know these things should be put into properties.  I was being lazy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I restarted the server to clear out whatever had cashed the older directory entry.  Everything was fine.&lt;br /&gt;&lt;br /&gt;Nice!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-554743225007158683?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/554743225007158683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=554743225007158683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/554743225007158683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/554743225007158683'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/11/django-template-does-not-exist.html' title='Django template does not exist'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5529456063197912129</id><published>2009-11-19T07:52:00.003-05:00</published><updated>2009-11-19T07:55:28.990-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Weld'/><category scheme='http://www.blogger.com/atom/ns#' term='CDI'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Infoq Interview with Gavin King about Weld anc CDI</title><content type='html'>Infoq has &lt;a href="http://www.infoq.com/news/2009/11/weld10"&gt;a nice interview&lt;/a&gt; with Gavin King about Weld and CDI.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Seam is an excellent framework.  Hopefully having its' model implemented as part of the JEE spec will push adoption! &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5529456063197912129?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5529456063197912129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5529456063197912129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5529456063197912129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5529456063197912129'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/11/infoq-interview-with-gavin-king-about.html' title='Infoq Interview with Gavin King about Weld anc CDI'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-7785660349688962547</id><published>2009-11-10T21:35:00.004-05:00</published><updated>2009-11-10T21:55:24.350-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flatpages'/><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='templatetags'/><title type='text'>Django flatpages, templatetags and dynamic menus</title><content type='html'>&lt;div&gt;One thing that Django's flatpages app is missing is a dynamic menu.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Coming from a Java background I am used to a huge user base and lots of open source code.   The Django user base continues to meet my expectations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found &lt;a href="http://blog.umlungu.co.uk/blog/2007/jul/29/simple-menu-django-flatpages/"&gt;this post&lt;/a&gt; detailing the creation of such a menu tag.  I hadn't explored custom tags before anyway so I looked forward to trying it out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I followed the instructions and got the following error :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;TemplateSyntaxError at /menu/&lt;br /&gt;'flatpage_menu' is not a valid tag library: Could not load template library from django.templatetags.flatpage_menu, No module named flatpage_menu&lt;br /&gt;Request Method:    GET&lt;br /&gt;Request URL:    http://127.0.0.1:8000/menu/&lt;br /&gt;Exception Type:    TemplateSyntaxError&lt;br /&gt;Exception Value:   &lt;br /&gt;'flatpage_menu' is not a valid tag library: Could not load template library from django.templatetags.flatpage_menu, No module named flatpage_menu&lt;br /&gt;Exception Location:    /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/template/defaulttags.py in load, line 927&lt;br /&gt;Python Executable:    /Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python&lt;br /&gt;Python Version:    2.6.4&lt;br /&gt;Python Path:    ['/Users/jdavis/Documents/django_workspace/cantina76', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages']&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;The post was from last year.  I was using the Django 1.1.1.  I figured something had changed since his post.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found a couple of references in Google Groups to this same example, but their suggestions didn't work for me.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The solution was to add my own app to INSTALLED_APPS and "from django import template" to the "flatpage_menu.py" file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It worked fine after that.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-7785660349688962547?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/7785660349688962547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=7785660349688962547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/7785660349688962547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/7785660349688962547'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/11/django-flatpages-templatetags-and.html' title='Django flatpages, templatetags and dynamic menus'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2369406608422551121</id><published>2009-09-22T09:30:00.005-04:00</published><updated>2009-09-22T09:35:53.438-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><title type='text'>The excellent Mr. Haki blog</title><content type='html'>&lt;div&gt;My morning routine has changed recently.  I check out &lt;a href="http://mrhaki.blogspot.com/"&gt;Mr. Haki&lt;/a&gt;, fire up the Groovy console and run the latest example.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have been seriously impressed with the work &lt;a href="http://mrhaki.blogspot.com/"&gt;Mr. Haki&lt;/a&gt; is doing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Even if nobody reads this post, I want to at least help his search rankings!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2369406608422551121?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2369406608422551121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2369406608422551121' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2369406608422551121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2369406608422551121'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/09/excellent-mr-haki-blog.html' title='The excellent Mr. Haki blog'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1117641419383126313</id><published>2009-09-16T13:18:00.001-04:00</published><updated>2009-09-17T10:13:28.307-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='jRecruiter'/><title type='text'>jRecruiter presentation at AJUG</title><content type='html'>&lt;a href="http://blog.hillert.com"&gt;Gunnar Hillert&lt;/a&gt; gave an excellent presentation on his &lt;a href="http://www.jrecruiter.org/"&gt;jRecruiter&lt;/a&gt; project at &lt;a href="http://www.ajug.org/confluence/display/AJUG/Home"&gt;AJUG&lt;/a&gt; last night.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will soon be downloading &lt;a href="http://www.jrecruiter.org/"&gt;jRecruiter&lt;/a&gt; to check it out in more depth.  Gunnar mentioned that the Maven build is a little wonky at the moment.   He said he would fix it in the next week or two.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;He has a lot of really cool stuff in the app:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Struts 2.1, which I have not used.  I spent years using the Struts 1.* releases, but have been in the JSF camp for a while now.&lt;/li&gt;&lt;li&gt;Twitter integration, which I've wanting to check out.&lt;/li&gt;&lt;li&gt;GZip and minification.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Check out the &lt;a href="http://www.jrecruiter.org/"&gt;project&lt;/a&gt; or his &lt;a href="http://www.jrecruiter.org/"&gt;blog&lt;/a&gt; for a complete list.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1117641419383126313?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1117641419383126313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1117641419383126313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1117641419383126313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1117641419383126313'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/09/jrecruiter-presentation-at-ajug.html' title='jRecruiter presentation at AJUG'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6456085264021017787</id><published>2009-09-11T15:53:00.002-04:00</published><updated>2009-09-11T16:03:56.161-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xml'/><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='XmlSlurper'/><title type='text'>"The processing instruction target matching "[xX][mM][lL]" is not allowed."</title><content type='html'>I often put the Xml I use for test cases inside of Groovy classes.  This allows me to make use of multiline Strings.&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&lt;br /&gt;String inputXml = '''&lt;br /&gt;&amp;lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&amp;gt;&lt;br /&gt;&amp;lt;records&amp;gt;&lt;br /&gt;&amp;lt;record&amp;gt;&lt;br /&gt;    &amp;lt;recordid&amp;gt;833432&amp;lt;/recordid&amp;gt;&lt;br /&gt;    &amp;lt;name&amp;gt;Lorem ipsum dolor&amp;lt;/name&amp;gt;&lt;br /&gt;    &amp;lt;parentid&amp;gt;0&amp;lt;/parentid&amp;gt;&lt;br /&gt;    &amp;lt;link&amp;gt;http://consectetueradipiscingelit&amp;lt;/link&amp;gt;&lt;br /&gt;    &amp;lt;date&amp;gt;9/10/2009&amp;lt;/date&amp;gt;&lt;br /&gt;    &amp;lt;description&amp;gt;Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu.&amp;lt;/description&amp;gt;&lt;br /&gt;    &amp;lt;category ID="48015"&amp;gt;&amp;lt;/category&amp;gt;&lt;br /&gt;    &amp;lt;category&amp;gt;In enim justo&amp;lt;/category&amp;gt;&lt;br /&gt;&amp;lt;/record&amp;gt;&lt;br /&gt;&amp;lt;/records&amp;gt;&lt;br /&gt;'''&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I ran into this error today :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;"The processing instruction target matching "[xX][mM][lL]" is not allowed."&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm surprised I hadn't run into it before.  The problem was that I had white space before the xml prolog.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are two easy solutions :&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Remove the whitespace.&lt;/li&gt;&lt;li&gt;Call "trim()" on the String.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Whitespace removed :&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;String inputXml = '''&amp;lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&amp;gt;&lt;br /&gt;&amp;lt;records&amp;gt;&lt;br /&gt; &amp;lt;record&amp;gt;&lt;br /&gt;     &amp;lt;recordid&amp;gt;833432&amp;lt;/recordid&amp;gt;&lt;br /&gt;     &amp;lt;name&amp;gt;Lorem ipsum dolor&amp;lt;/name&amp;gt;&lt;br /&gt;     &amp;lt;parentid&amp;gt;0&amp;lt;/parentid&amp;gt;&lt;br /&gt;     &amp;lt;link&amp;gt;http://consectetueradipiscingelit&amp;lt;/link&amp;gt;&lt;br /&gt;     &amp;lt;date&amp;gt;9/10/2009&amp;lt;/date&amp;gt;&lt;br /&gt;     &amp;lt;description&amp;gt;Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu.&amp;lt;/description&amp;gt;&lt;br /&gt;     &amp;lt;category ID="48015"&amp;gt;&amp;lt;/category&amp;gt;&lt;br /&gt;     &amp;lt;category&amp;gt;In enim justo&amp;lt;/category&amp;gt;&lt;br /&gt; &amp;lt;/record&amp;gt;&lt;br /&gt;&amp;lt;/records&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;trim() called :&lt;/div&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;String inputXml = '''&lt;br /&gt;&amp;lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&amp;gt;&lt;br /&gt;&amp;lt;records&amp;gt;&lt;br /&gt;  &amp;lt;record&amp;gt;&lt;br /&gt;      &amp;lt;recordid&amp;gt;833432&amp;lt;/recordid&amp;gt;&lt;br /&gt;      &amp;lt;name&amp;gt;Lorem ipsum dolor&amp;lt;/name&amp;gt;&lt;br /&gt;      &amp;lt;parentid&amp;gt;0&amp;lt;/parentid&amp;gt;&lt;br /&gt;      &amp;lt;link&amp;gt;http://consectetueradipiscingelit&amp;lt;/link&amp;gt;&lt;br /&gt;      &amp;lt;date&amp;gt;9/10/2009&amp;lt;/date&amp;gt;&lt;br /&gt;      &amp;lt;description&amp;gt;Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu.&amp;lt;/description&amp;gt;&lt;br /&gt;      &amp;lt;category ID="48015"&amp;gt;&amp;lt;/category&amp;gt;&lt;br /&gt;      &amp;lt;category&amp;gt;In enim justo&amp;lt;/category&amp;gt;&lt;br /&gt;  &amp;lt;/record&amp;gt;&lt;br /&gt;&amp;lt;/records&amp;gt;&lt;br /&gt;'''.trim()&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6456085264021017787?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6456085264021017787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6456085264021017787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6456085264021017787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6456085264021017787'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/09/processing-instruction-target-matching.html' title='&quot;The processing instruction target matching &quot;[xX][mM][lL]&quot; is not allowed.&quot;'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-9176278145533671328</id><published>2009-08-27T21:26:00.004-04:00</published><updated>2009-10-06T23:14:01.377-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='AppEngine'/><category scheme='http://www.blogger.com/atom/ns#' term='django-admin.py'/><title type='text'>app-engine-patch Database problems</title><content type='html'>I've been using app-engine-patch to get some Django stuff running on Google AppEngine.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Several times my admin password has been reset or invalidated.  On a  couple of occasions I recreated the admin user from the link on the default page.  After styling the site this wasn't possible.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I added the "create_admin_user" entry from the generated myapp/urls.py to the root level urls.py and manually entered the url.  That worked.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-9176278145533671328?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/9176278145533671328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=9176278145533671328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/9176278145533671328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/9176278145533671328'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/08/app-engine-patch-database-problems.html' title='app-engine-patch Database problems'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3393238496324578096</id><published>2009-08-27T09:03:00.002-04:00</published><updated>2009-08-27T09:09:41.478-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><title type='text'>Unexpected Groovy return value</title><content type='html'>I like &lt;a href="http://groovy.codehaus.org/Strings+and+GString"&gt;Groovy's multiline Strings&lt;/a&gt;.  I use them all the time in my test cases.  Usually I have a utility class that returns whatever content I need.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yesterday I decided to do the whole test in Groovy.  Inside my TestNG test case I had a method that returned some xml :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;    String createInputFile(){&lt;br /&gt;       return&lt;br /&gt;       '''&lt;br /&gt;           &amp;lt;xml&amp;gt;&amp;lt;one&amp;gt;Hello&amp;lt;/one&amp;gt;&amp;lt;two&amp;gt;World!&amp;lt;/two&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;       '''&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The output was null.  Kind of silly of me.  Adding a semicolon after the String didn't produce an output.  Putting the opening quote on the same line as the return statement did.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I still don't miss semicolons though.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3393238496324578096?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3393238496324578096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3393238496324578096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3393238496324578096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3393238496324578096'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/08/unexpected-groovy-return-value.html' title='Unexpected Groovy return value'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4066559913887161796</id><published>2009-07-16T23:10:00.003-04:00</published><updated>2009-07-16T23:20:39.847-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='Practical Django Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='django-tagging'/><title type='text'>Practical Django Projects, coltrane weblog app and django-tagging</title><content type='html'>I'm working through Practical Django Projects 2nd Edition.&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is a problem with Chapter 4's weblog application, "coltrane."  I won't go into detail about the coltrane app, but in the event that you encounter the same problem I've posted a solution.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I downloaded &lt;a href="http://code.google.com/p/django-tagging/"&gt;django-tagging&lt;/a&gt;.  The current version was 0.2.1. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I created a symlink from my projects directory to the downloaded directory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I added "'taggigng'" to "INSTALLED_APPS" and tried to start the server.  I got the following :&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Validating models...&lt;br /&gt;Unhandled exception in thread started by &amp;lt;function inner_run at 0x652c30&amp;gt;&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;File "/Library/Python/2.5/site-packages/django/core/management/commands/runserver.py", line 48, in inner_run&lt;br /&gt;  self.validate(display_num_errors=True)&lt;br /&gt;File "/Library/Python/2.5/site-packages/django/core/management/base.py", line 246, in validate&lt;br /&gt;  num_errors = get_validation_errors(s, app)&lt;br /&gt;File "/Library/Python/2.5/site-packages/django/core/management/validation.py", line 28, in get_validation_errors&lt;br /&gt;  for (app_name, error) in get_app_errors().items():&lt;br /&gt;File "/Library/Python/2.5/site-packages/django/db/models/loading.py", line 128, in get_app_errors&lt;br /&gt;  self._populate()&lt;br /&gt;File "/Library/Python/2.5/site-packages/django/db/models/loading.py", line 57, in _populate&lt;br /&gt;  self.load_app(app_name, True)&lt;br /&gt;File "/Library/Python/2.5/site-packages/django/db/models/loading.py", line 72, in load_app&lt;br /&gt;  mod = __import__(app_name, {}, {}, ['models'])&lt;br /&gt;File "/[path to django projects]/coltrane/models.py", line 6, in &amp;lt;module&amp;gt;&lt;br /&gt;  from tagging.fields import TagField&lt;br /&gt;File "/[path to django projects]/tagging/fields.py", line 10, in &amp;lt;module&amp;gt;&lt;br /&gt;File "/[path to django projects]/tagging/models.py", line 9, in &amp;lt;module&amp;gt;&lt;br /&gt;File "/[path to django projects]/tagging/managers.py", line 6, in &amp;lt;module&amp;gt;&lt;br /&gt;ImportError: cannot import name parse_lookup&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;Sweet!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Turns out a lot of people have had this problem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I checked out the current version from svn and recreated the symlink.  All was well.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4066559913887161796?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4066559913887161796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4066559913887161796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4066559913887161796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4066559913887161796'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/07/practical-django-projects-coltrane.html' title='Practical Django Projects, coltrane weblog app and django-tagging'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6232439670903600113</id><published>2009-07-16T17:50:00.002-04:00</published><updated>2009-07-16T23:22:57.807-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='manage.py'/><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='reset'/><category scheme='http://www.blogger.com/atom/ns#' term='syncdb'/><title type='text'>Django syncdb and create/drop</title><content type='html'>Django's manage.py syncdb command doesn't drop/create.  It is clearly stated in the documentation.  Naturally it took me a while to figure that out.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is an easy solution :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;python ./Documents/DjangoWorkspace/cms/manage.py reset coltrane&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;I've used it a few times now.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6232439670903600113?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6232439670903600113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6232439670903600113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6232439670903600113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6232439670903600113'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/07/django-syncdb.html' title='Django syncdb and create/drop'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4404737738731144927</id><published>2009-07-16T13:27:00.003-04:00</published><updated>2009-07-16T17:48:05.160-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ant'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Creating a build.xml for a JBoss Tools Seam project continued</title><content type='html'>&lt;div&gt;I posted earlier about a really nice blog entry outlining the differences between JBoss Tools and Seam-Gen generated projects.  I grabbed the build.xml the author supplied, saving myself a few hours.  However, I ran into an annoying hiccup.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;I usually develop with an exploded .ear.  The ant target,"explode," worked fine.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I ran the "deploy" target to verify before committing my latest changes.  The app wouldn't start.&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;java.lang.NoClassDefFoundError: org/ajax4jsf/application/ViewHandlerWrapper&lt;br /&gt;at java.lang.ClassLoader.defineClass1(Native Method)&lt;br /&gt;at java.lang.ClassLoader.defineClass(ClassLoader.java:675)&lt;br /&gt;at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)&lt;br /&gt;at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)&lt;br /&gt;at java.net.URLClassLoader.access$100(URLClassLoader.java:56)&lt;br /&gt;at java.net.URLClassLoader$1.run(URLClassLoader.java:195)&lt;br /&gt;at java.security.AccessController.doPrivileged(Native Method)&lt;br /&gt;at java.net.URLClassLoader.findClass(URLClassLoader.java:188)&lt;br /&gt;at org.jboss.mx.loading.RepositoryClassLoader.findClassLocally(RepositoryClassLoader.java:682)&lt;br /&gt;at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassLoader.java:662)&lt;br /&gt;at java.lang.ClassLoader.loadClass(ClassLoader.java:316)&lt;br /&gt;at org.jboss.mx.loading.RepositoryClassLoader.loadClassLocally(RepositoryClassLoader.java:200)&lt;br /&gt;at org.jboss.mx.loading.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:131)&lt;br /&gt;at org.jboss.mx.loading.LoadMgr3.nextTask(LoadMgr3.java:399)&lt;br /&gt;at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:527)&lt;br /&gt;at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:415)&lt;br /&gt;at java.lang.ClassLoader.loadClass(ClassLoader.java:251)&lt;br /&gt;at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)&lt;br /&gt;at java.lang.Class.getDeclaredConstructors0(Native Method)&lt;br /&gt;at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)&lt;br /&gt;at java.lang.Class.getConstructor0(Class.java:2671)&lt;br /&gt;at java.lang.Class.newInstance0(Class.java:321)&lt;br /&gt;at java.lang.Class.newInstance(Class.java:303)&lt;br /&gt;at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:825)&lt;br /&gt;at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:486)&lt;br /&gt;at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:381)&lt;br /&gt;at org.jboss.web.jsf.integration.config.JBossJSFConfigureListener.contextInitialized(JBossJSFConfigureListener.java:69)&lt;br /&gt;at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3856)&lt;br /&gt;at org.apache.catalina.core.StandardContext.start(StandardContext.java:4361)&lt;br /&gt;at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790)&lt;br /&gt;at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770)&lt;br /&gt;at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)&lt;br /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296)&lt;br /&gt;at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)&lt;br /&gt;at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt;at org.apache.catalina.core.StandardContext.init(StandardContext.java:5312)&lt;br /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296)&lt;br /&gt;at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)&lt;br /&gt;at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt;at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301)&lt;br /&gt;at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104)&lt;br /&gt;at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375)&lt;br /&gt;at org.jboss.web.WebModule.startModule(WebModule.java:83)&lt;br /&gt;at org.jboss.web.WebModule.startService(WebModule.java:61)&lt;br /&gt;at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)&lt;br /&gt;at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)&lt;br /&gt;at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)&lt;br /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt;at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt;at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)&lt;br /&gt;at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt;at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt;at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)&lt;br /&gt;at $Proxy0.start(Unknown Source)&lt;br /&gt;at org.jboss.system.ServiceController.start(ServiceController.java:417)&lt;br /&gt;at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)&lt;br /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt;at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt;at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)&lt;br /&gt;at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt;at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt;at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)&lt;br /&gt;at $Proxy44.start(Unknown Source)&lt;br /&gt;at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466)&lt;br /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt;at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt;at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)&lt;br /&gt;at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)&lt;br /&gt;at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)&lt;br /&gt;at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)&lt;br /&gt;at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)&lt;br /&gt;at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87)&lt;br /&gt;at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)&lt;br /&gt;at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)&lt;br /&gt;at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)&lt;br /&gt;at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt;at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt;at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)&lt;br /&gt;at $Proxy45.start(Unknown Source)&lt;br /&gt;at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)&lt;br /&gt;at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015)&lt;br /&gt;at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)&lt;br /&gt;at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)&lt;br /&gt;at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)&lt;br /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt;at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt;at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)&lt;br /&gt;at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)&lt;br /&gt;at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)&lt;br /&gt;at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)&lt;br /&gt;at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt;at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt;at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)&lt;br /&gt;at $Proxy9.deploy(Unknown Source)&lt;br /&gt;at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)&lt;br /&gt;at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)&lt;br /&gt;at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)&lt;br /&gt;at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)&lt;br /&gt;at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)&lt;br /&gt;at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)&lt;br /&gt;at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)&lt;br /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt;at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt;at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)&lt;br /&gt;at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt;at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt;at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)&lt;br /&gt;at $Proxy0.start(Unknown Source)&lt;br /&gt;at org.jboss.system.ServiceController.start(ServiceController.java:417)&lt;br /&gt;at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)&lt;br /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt;at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt;at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)&lt;br /&gt;at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt;at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt;at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)&lt;br /&gt;at $Proxy4.start(Unknown Source)&lt;br /&gt;at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)&lt;br /&gt;at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)&lt;br /&gt;at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)&lt;br /&gt;at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)&lt;br /&gt;at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)&lt;br /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt;at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt;at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)&lt;br /&gt;at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)&lt;br /&gt;at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)&lt;br /&gt;at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)&lt;br /&gt;at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt;at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt;at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)&lt;br /&gt;at $Proxy5.deploy(Unknown Source)&lt;br /&gt;at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)&lt;br /&gt;at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)&lt;br /&gt;at org.jboss.Main.boot(Main.java:200)&lt;br /&gt;at org.jboss.Main$1.run(Main.java:508)&lt;br /&gt;at java.lang.Thread.run(Thread.java:613)&lt;br /&gt;IN&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Nice.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I tried again with "explode," and everything was fine.  I love these kinds of errors.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I uzipped the .ear file and diffed the resulting folder with the exploded ear folder.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first difference I noticed was that the MANIFEST.MF in the .ear/META-INF did not contain a Class-Path entry while the exploded one contained an entry with "/lib/groovy-all,jar quartz.jar".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I added a manifest tag to the jar command of the build.xml.  The result was :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;    &amp;lt;target name="archive" depends="jar,war,ear"&lt;br /&gt;                     description="Package the archives"&amp;gt;&lt;br /&gt;     &amp;lt;jar jarfile="${dist.dir}/${project.name}-ejb.jar" basedir="${jar.dir}" /&amp;gt;&lt;br /&gt;     &amp;lt;jar jarfile="${dist.dir}/${project.name}.war" basedir="${war.dir}" /&amp;gt;&lt;br /&gt;     &amp;lt;jar jarfile="${dist.dir}/${project.name}.ear"&amp;gt;&lt;br /&gt;         &amp;lt;manifest &amp;gt;&lt;br /&gt;             &amp;lt;attribute name="Class-Path" value="lib/groovy-all.jar quartz.jar"/&amp;gt;&lt;br /&gt;         &amp;lt;/manifest&amp;gt;&lt;br /&gt;         &amp;lt;fileset dir="${ear.dir}" /&amp;gt;&lt;br /&gt;         &amp;lt;fileset dir="${dist.dir}" &amp;gt;&lt;br /&gt;             &amp;lt;include name="${project.name}-ejb.jar" /&amp;gt;&lt;br /&gt;             &amp;lt;include name="${project.name}.war" /&amp;gt;&lt;br /&gt;         &amp;lt;/fileset&amp;gt;&lt;br /&gt;     &amp;lt;/jar&amp;gt;&lt;br /&gt; &amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It didn't matter.  I ran "deploy" and got the same error.  So I checked the MANIFEST.MF in the ear.  Sure enough the exploded one contained a "Class-Path" entry and the archived one didn't.  &lt;/div&gt;&lt;div&gt; Adding the "Class-Path" attribute to the manifest fixed it.  The result was :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;    &amp;lt;target name="archive" depends="jar,war,ear"&lt;br /&gt;                      description="Package the archives"&amp;gt;&lt;br /&gt;      &amp;lt;jar jarfile="${dist.dir}/${project.name}-ejb.jar" basedir="${jar.dir}" &amp;gt;&lt;br /&gt;          &amp;lt;manifest&amp;gt;&lt;br /&gt;               &amp;lt;attribute name="Class-Path" value="antlr-runtime.jar drools-compiler.jar drools-core.jar jboss-el.jar jboss-seam.jar jbpm-jpdl.jar mvel14.jar richfaces-api.jar" /&amp;gt;&lt;br /&gt;          &amp;lt;/manifest&amp;gt;&lt;br /&gt;      &amp;lt;/jar&amp;gt;&lt;br /&gt;      &amp;lt;jar jarfile="${dist.dir}/${project.name}.war" basedir="${war.dir}" /&amp;gt;&lt;br /&gt;      &amp;lt;jar jarfile="${dist.dir}/${project.name}.ear"&amp;gt;&lt;br /&gt;          &amp;lt;manifest &amp;gt;&lt;br /&gt;              &amp;lt;attribute name="Class-Path" value="lib/groovy-all.jar quartz.jar"/&amp;gt;&lt;br /&gt;          &amp;lt;/manifest&amp;gt;&lt;br /&gt;          &amp;lt;fileset dir="${ear.dir}" /&amp;gt;&lt;br /&gt;          &amp;lt;fileset dir="${dist.dir}" &amp;gt;&lt;br /&gt;              &amp;lt;include name="${project.name}-ejb.jar" /&amp;gt;&lt;br /&gt;              &amp;lt;include name="${project.name}.war" /&amp;gt;&lt;br /&gt;          &amp;lt;/fileset&amp;gt;&lt;br /&gt;      &amp;lt;/jar&amp;gt;&lt;br /&gt;  &amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Finally, back to real work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4404737738731144927?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4404737738731144927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4404737738731144927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4404737738731144927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4404737738731144927'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/07/creating-buildxml-for-jboss-tools-seam_16.html' title='Creating a build.xml for a JBoss Tools Seam project continued'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4329787862414129447</id><published>2009-07-10T09:53:00.005-04:00</published><updated>2009-07-10T10:27:00.613-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBossTools'/><category scheme='http://www.blogger.com/atom/ns#' term='build.xml'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Creating a build.xml for a JBoss Tools Seam project</title><content type='html'>I usually use seam-gen to create my Seam projects.  I have also been relying on a lot of &lt;a href="http://www.jboss.org/tools"&gt;JBoss Tools&lt;/a&gt;.  &lt;a href="http://www.jboss.org/tools"&gt;JBoss Tools&lt;/a&gt; is a suite of Eclipse plugins.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I created my most recent project using the ide.  The generated project does not contain a build.xml.  This is of course a problem when you want to automate the build process.&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is a resolved &lt;a href="https://jira.jboss.org/jira/browse/JBIDE-1914"&gt;JIRA issue&lt;/a&gt; so I imagine this won't be a problem much longer.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the meantime this really nice &lt;a href="http://blog.xebia.com/2009/04/21/differences-between-seam-gen-and-jboss-tools/"&gt;blog entry&lt;/a&gt; contains a template &lt;a href="http://blog.xebia.com/wp-content/uploads/2009/04/buildxml.txt"&gt;build.xml&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4329787862414129447?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4329787862414129447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4329787862414129447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4329787862414129447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4329787862414129447'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/07/creating-buildxml-for-jboss-tools-seam.html' title='Creating a build.xml for a JBoss Tools Seam project'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1686888760231648592</id><published>2009-06-23T12:25:00.002-04:00</published><updated>2009-06-23T12:34:32.218-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='Log4j'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>Adjusting log4j in JBoss</title><content type='html'>JBoss' log4j configuration can be found at [server root]/server/default/conf/jboss-log4j.xml.&lt;br /&gt;&lt;br /&gt;There are two important parts to tweaking your logging, the appender settings and limit categories.&lt;br /&gt;&lt;br /&gt;The appender settings start on line 64 for jboss-4.2.2.GA.  The default is :&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;   &amp;lt;appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"&amp;gt;&lt;br /&gt;     &amp;lt;errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/&amp;gt;&lt;br /&gt;     &amp;lt;param name="Target" value="System.out"/&amp;gt;&lt;br /&gt;     &amp;lt;param name="Threshold" value="INFO"/&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;layout class="org.apache.log4j.PatternLayout"&amp;gt;&lt;br /&gt;        &amp;lt;!-- The default pattern: Date Priority [Category] Message\n --&amp;gt;&lt;br /&gt;        &amp;lt;param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/&amp;gt;&lt;br /&gt;     &amp;lt;/layout&amp;gt;&lt;br /&gt;  &amp;lt;/appender&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Mine look like this :&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;   &amp;lt;appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"&amp;gt;&lt;br /&gt;     &amp;lt;errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/&amp;gt;&lt;br /&gt;     &amp;lt;param name="Target" value="System.out"/&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;layout class="org.apache.log4j.PatternLayout"&amp;gt;&lt;br /&gt;        &amp;lt;!-- The default pattern: Date Priority [Category] Message\n --&amp;gt;&lt;br /&gt;        &amp;lt;param name="ConversionPattern" value="%-5p [%c{7}.%M] %m %n"/&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;/layout&amp;gt;&lt;br /&gt;  &amp;lt;/appender&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;The difference is the ConversionPattern.  Inside the brackets I use %c{7}.%M.  That means that the class name will append 7 levels back, i.e. com.foo.bar.baz.buz.bam.SomeClass.  The ".%M" appends the method name as well, i.e. com.foo.bar.baz.buz.bam.SomeClass.someMethod.&lt;br /&gt;&lt;br /&gt;This way I can see the fully qualified class name and method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1686888760231648592?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1686888760231648592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1686888760231648592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1686888760231648592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1686888760231648592'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/06/adjusting-log4j-in-jboss.html' title='Adjusting log4j in JBoss'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2649031481533203038</id><published>2009-06-21T19:15:00.003-04:00</published><updated>2009-06-21T19:18:38.206-04:00</updated><title type='text'>Distilled Brilliance on Python Integer equality</title><content type='html'>Excellent &lt;a href="http://distilledb.com/blog/archives/date/2009/06/18/python-gotcha-integer-equality.page"&gt;blog post&lt;/a&gt; on DZone this morning.  I like the name of this blog, "Distilled Brilliance," too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2649031481533203038?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2649031481533203038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2649031481533203038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2649031481533203038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2649031481533203038'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/06/distilled-brilliance-on-python-integer.html' title='Distilled Brilliance on Python Integer equality'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-8482907761970846613</id><published>2009-06-10T20:34:00.003-04:00</published><updated>2009-06-10T20:41:44.936-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Safari'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Safari 4</title><content type='html'>If you are a Mac user run Software Update and get &lt;a href="http://www.apple.com/safari/"&gt;Safari 4&lt;/a&gt; now.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This release is significantly faster in loading pages and url completion.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The new "&lt;a href="http://www.apple.com/safari/whats-new.html#topsites"&gt;Top Sites&lt;/a&gt;" feature is really cool.  Apple cribbed it from Opera, but they've improved on it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-8482907761970846613?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/8482907761970846613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=8482907761970846613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/8482907761970846613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/8482907761970846613'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/06/safari-4.html' title='Safari 4'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-9198225585638403073</id><published>2009-05-30T15:13:00.005-04:00</published><updated>2009-05-30T15:18:10.359-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='httpd.conf'/><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>httpd.conf on Mac OSX</title><content type='html'>On Mac OSX Apache's httpd.conf is located here : /private/etc/apache2.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I wanted to add .xhtml files to the list of default pages served.  The solution is to simply add "index.xhtml" the "IfModule dir_module" entry on line 224:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&amp;lt;IfModule dir_module&amp;gt;&lt;br /&gt;  DirectoryIndex index.html, index.xhtml&lt;br /&gt;&amp;lt;/IfModule&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-9198225585638403073?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/9198225585638403073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=9198225585638403073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/9198225585638403073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/9198225585638403073'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/05/httpdconf-on-mac-osx.html' title='httpd.conf on Mac OSX'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5032199340598911512</id><published>2009-05-28T09:07:00.002-04:00</published><updated>2009-05-28T09:12:08.433-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mockup'/><category scheme='http://www.blogger.com/atom/ns#' term='lorem ipsum'/><title type='text'>Lorem ipsum generator</title><content type='html'>I've used http://www.lipsum.com/ for generating lorem ipsum text for ages.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://nettuts.com/tutorials/html-css-techniques/prototyping-with-the-grid-960-css-framework/"&gt;this&lt;/a&gt; &lt;a href="http://nettuts.com/"&gt;nettuts.com&lt;/a&gt; tutorial I discovered a new Lorem ipsum generator : http://www.blindtextgenerator.com/.   It is nicely configurable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5032199340598911512?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5032199340598911512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5032199340598911512' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5032199340598911512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5032199340598911512'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/05/lorem-ipsum-generator.html' title='Lorem ipsum generator'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2964807557827966666</id><published>2009-04-28T22:04:00.003-04:00</published><updated>2009-04-28T22:07:48.692-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='site-packages'/><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Where is the site-packages directory on Mac OSX?</title><content type='html'>/Library/Python/2.5/site-packages&lt;br /&gt;&lt;br /&gt;Running :&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt; python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;As &lt;a href="http://docs.djangoproject.com/en/dev/topics/install/#installing-official-release"&gt;suggested in the Django documentation&lt;/a&gt; displays the directory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2964807557827966666?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2964807557827966666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2964807557827966666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2964807557827966666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2964807557827966666'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/04/where-is-site-packages-directory-on-mac.html' title='Where is the site-packages directory on Mac OSX?'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3890952939595062634</id><published>2009-04-28T14:15:00.003-04:00</published><updated>2009-04-28T22:35:09.943-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recycle bin'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>can not perform DDL/DML over objects in Recycle Bin</title><content type='html'>I got this error today while trying to run jBPM drop/create scripts.&lt;br /&gt;&lt;br /&gt;I didn't know Oracle had a recycle bin?&lt;br /&gt;&lt;br /&gt;Theoretically the solution is to run, "purge recyclebin;" and wait.  I say theoretically because my solution required dropping and recreating the user.  Somehow my foreign keys didn't get moved to the recycle bin at the same time as my tables.&lt;br /&gt;&lt;br /&gt;Additionally the "purge" command needs to be added to delete statements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3890952939595062634?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3890952939595062634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3890952939595062634' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3890952939595062634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3890952939595062634'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/04/can-not-perform-ddldml-over-objects-in.html' title='can not perform DDL/DML over objects in Recycle Bin'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4672594325790245809</id><published>2009-04-23T10:06:00.006-04:00</published><updated>2009-04-23T11:12:04.329-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Useful Eclipse Plugins</title><content type='html'>I changed laptops recently.  While  updating Eclipse  I realized that I did not have a list of the update sites I use.  I figured this place was as good as any.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://download.jboss.org/jbosstools/updates/stable/"&gt;JBoss Tools&lt;/a&gt;&lt;/div&gt;&lt;div&gt;JBoss tools wraps some other useful plugins like Hibernate.  It also has functionality for Seam and JBoss AS administration.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://beust.com/eclipse"&gt;TestNG&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Seam leverages TestNG so the plugin is useful.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://dist.codehaus.org/groovy/distributions/update/"&gt;Groovy Eclipse Plugin&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I have to use Groovy now.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://subclipse.tigris.org/install.html"&gt;Subclipse&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4672594325790245809?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4672594325790245809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4672594325790245809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4672594325790245809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4672594325790245809'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/04/useful-eclipse-plugins.html' title='Useful Eclipse Plugins'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-7735851058068037714</id><published>2009-04-22T08:38:00.004-04:00</published><updated>2009-04-22T08:45:22.067-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LinkageError'/><category scheme='http://www.blogger.com/atom/ns#' term='Classloader'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>Linkage error</title><content type='html'>I got the following error after redeploying this morning :&lt;br /&gt;&lt;pre   style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%;font-family:Andale Mono,Lucida Console,Monaco,fixed,monospace;font-size:12px;"&gt;&lt;code&gt;java.lang.RuntimeException: Could not create Component: &lt;span style="font-style: italic;"&gt;ClassName&lt;/span&gt;&lt;br /&gt; at org.jboss.seam.init.Initialization.addComponent(Initialization.java:1178)&lt;br /&gt; at org.jboss.seam.init.Initialization.installComponents(Initialization.java:1094)&lt;br /&gt; at org.jboss.seam.init.Initialization.init(Initialization.java:728)&lt;br /&gt; at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:35)&lt;br /&gt; at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3856)&lt;br /&gt; at org.apache.catalina.core.StandardContext.start(StandardContext.java:4361)&lt;br /&gt; at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790)&lt;br /&gt; at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770)&lt;br /&gt; at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt; at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296)&lt;br /&gt; at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)&lt;br /&gt; at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt; at org.apache.catalina.core.StandardContext.init(StandardContext.java:5312)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt; at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296)&lt;br /&gt; at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)&lt;br /&gt; at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt; at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301)&lt;br /&gt; at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104)&lt;br /&gt; at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375)&lt;br /&gt; at org.jboss.web.WebModule.startModule(WebModule.java:83)&lt;br /&gt; at org.jboss.web.WebModule.startService(WebModule.java:61)&lt;br /&gt; at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)&lt;br /&gt; at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)&lt;br /&gt; at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)&lt;br /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt; at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt; at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt; at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)&lt;br /&gt; at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt; at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt; at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)&lt;br /&gt; at $Proxy0.start(Unknown Source)&lt;br /&gt; at org.jboss.system.ServiceController.start(ServiceController.java:417)&lt;br /&gt; at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)&lt;br /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt; at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt; at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt; at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)&lt;br /&gt; at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt; at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt; at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)&lt;br /&gt; at $Proxy44.start(Unknown Source)&lt;br /&gt; at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt; at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt; at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt; at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)&lt;br /&gt; at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)&lt;br /&gt; at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)&lt;br /&gt; at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)&lt;br /&gt; at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)&lt;br /&gt; at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87)&lt;br /&gt; at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)&lt;br /&gt; at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)&lt;br /&gt; at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)&lt;br /&gt; at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt; at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt; at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)&lt;br /&gt; at $Proxy45.start(Unknown Source)&lt;br /&gt; at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)&lt;br /&gt; at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015)&lt;br /&gt; at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)&lt;br /&gt; at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)&lt;br /&gt; at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)&lt;br /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt; at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)&lt;br /&gt; at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)&lt;br /&gt; at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)&lt;br /&gt; at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)&lt;br /&gt; at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)&lt;br /&gt; at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)&lt;br /&gt; at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)&lt;br /&gt; at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)&lt;br /&gt; at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)&lt;br /&gt; at $Proxy9.deploy(Unknown Source)&lt;br /&gt; at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)&lt;br /&gt; at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610)&lt;br /&gt; at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)&lt;br /&gt; at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)&lt;br /&gt; at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)&lt;br /&gt;Caused by: java.lang.LinkageError: loader constraints violated when linking &lt;span style="font-style: italic;"&gt;fully/qualified/ClassName&lt;/span&gt; class&lt;br /&gt; at java.lang.Class.getDeclaredMethods0(Native Method)&lt;br /&gt; at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)&lt;br /&gt; at java.lang.Class.privateGetPublicMethods(Class.java:2519)&lt;br /&gt; at java.lang.Class.getMethods(Class.java:1406)&lt;br /&gt; at org.jboss.seam.Component.hasAnnotation(Component.java:1125)&lt;br /&gt; at org.jboss.seam.Component.&amp;lt;init&amp;gt;(Component.java:219)&lt;br /&gt; at org.jboss.seam.Component.&amp;lt;init&amp;gt;(Component.java:206)&lt;br /&gt; at org.jboss.seam.init.Initialization.addComponent(Initialization.java:1162)&lt;br /&gt; ... 93 more&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Of course the app was working when I showed up this morning and fired up JBoss.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jboss.org/community/docs/DOC-9280"&gt;This post on JBoss' wiki&lt;/a&gt; points out the problem.  I liked this line from the wiki post, "Depending on how unlucky you may be, you might get a LinkageError or ClassCircularityError as well."&lt;br /&gt;&lt;br /&gt;I checked the jboss-app.xml inside my ear and sure enough it was empty.  I have no idea how that happened.  However, the fix is simple.  I just added the following :&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE jboss-app&lt;br /&gt;  PUBLIC "-//JBoss//DTD J2EE Application 4.2//EN"&lt;br /&gt;  "http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;jboss-app&amp;gt;&lt;br /&gt; &amp;lt;loader-repository&amp;gt;&lt;br /&gt;    seam.jboss.org:loader=&lt;i&gt;appName&lt;/i&gt;&lt;br /&gt; &amp;lt;/loader-repository&amp;gt;&lt;br /&gt;&amp;lt;/jboss-app&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-7735851058068037714?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/7735851058068037714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=7735851058068037714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/7735851058068037714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/7735851058068037714'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/04/linkage-error.html' title='Linkage error'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-7209596436297328134</id><published>2009-04-10T12:18:00.004-04:00</published><updated>2009-04-10T12:25:56.232-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XmlUnit'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='JUnit4'/><title type='text'>XmlUnit</title><content type='html'>&lt;a href="http://xmlunit.sourceforge.net/"&gt;XmlUnit &lt;/a&gt;is an insanely great tool.  It has saved me a ton of time in the past few weeks.&lt;br /&gt;&lt;br /&gt;I log the differences from my unit test like this :&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;        XMLUnit.setIgnoreWhitespace(true);&lt;br /&gt;      Diff xmlDiff = new Diff(expectedXml, result);&lt;br /&gt;&lt;br /&gt;      DetailedDiff myDiff = new DetailedDiff(xmlDiff);&lt;br /&gt;      List&amp;lt;Difference&amp;gt; allDifferences = myDiff.getAllDifferences();&lt;br /&gt;      for(Difference d : allDifferences){&lt;br /&gt;          log.debug("difference : " + d);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;The "result" string comes from a &lt;a href="http://groovy.codehaus.org/"&gt;Groovy&lt;/a&gt; class using &lt;a href="http://groovy.codehaus.org/Reading+XML+using+Groovy%27s+XmlSlurper"&gt;XmlSlurper&lt;/a&gt;.  Also I usually generate "expectedXml" from a &lt;a href="http://groovy.codehaus.org/"&gt;Groovy&lt;/a&gt; class.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-7209596436297328134?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/7209596436297328134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=7209596436297328134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/7209596436297328134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/7209596436297328134'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/04/xmlunit.html' title='XmlUnit'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3578479212502995182</id><published>2009-02-16T15:11:00.003-05:00</published><updated>2009-03-06T11:35:09.758-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utf-8'/><category scheme='http://www.blogger.com/atom/ns#' term='os x'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='MacRoman'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>illegal character: \64 when running Eclipse on Mac OSX</title><content type='html'>I develop on a Mac.  We use Luntbuild to automate our builds.&lt;br /&gt;&lt;br /&gt;We added our new project into Luntbuild this morning.  Luntbuild kicked this back :&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;[package name]/ChannelDetails.java:24: illegal character: \64&lt;br /&gt;compile    [ javac ]    @Entity&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Nice.&lt;br /&gt;&lt;br /&gt;Our team has used OS X, Ubuntu, XP and Vista.  We had not encountered this problem before.&lt;br /&gt;&lt;br /&gt;Why wouldn't Eclipse just standardize on one character encoding?&lt;br /&gt;&lt;br /&gt;The solution is to change the encoding by right clicking on the project and choose Properties -&gt; Resource.&lt;br /&gt;&lt;br /&gt;There are panels for "Text file encoding" and "New text file delimiter."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3578479212502995182?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3578479212502995182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3578479212502995182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3578479212502995182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3578479212502995182'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/02/illegal-character-64-when-running.html' title='illegal character: \64 when running Eclipse on Mac OSX'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4965849230703673716</id><published>2009-02-04T10:07:00.003-05:00</published><updated>2009-02-04T10:21:09.082-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh_askpass'/><category scheme='http://www.blogger.com/atom/ns#' term='svn+ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>NetBeans 6.5 and svn+ssh on a Mac</title><content type='html'>I've been playing with NetBeans occaisonally.  I couldn't stand it a couple of years ago.  However, after Sun's &lt;a href="http://developers.sun.com/events/techdays/2008/US_ATL.jsp"&gt;Tech Days in Atlanta&lt;/a&gt; I decided to give it a try.&lt;br /&gt;&lt;br /&gt;Besides, I wanted to verify a clean checkout, build, test cycle.&lt;br /&gt;&lt;br /&gt;We use svn over ssh at work.  It was a headache to get this running with NetBeans.  I didn't completely succeed either.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ricroberts.com/articles/2008/03/06/rails-on-mac-os-x-leopard"&gt;This post&lt;/a&gt; has a nice tutorial from a Rails perspective.  I started here.  I was able to checkout fine.   But when I right clicked -&gt; Subversion -&gt; Update I got an error stating that ssh_askpass couldn't be found. &lt;br /&gt;&lt;br /&gt;I did some digging around.  &lt;a href="http://www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/"&gt;This post&lt;/a&gt; is a great discussion about Leopard and ssh.&lt;br /&gt;&lt;br /&gt;I checked out this tutorial from the NetBeans site.  I was pretty annoyed that I hadn't found an answer so I clicked the update button.  It worked.&lt;br /&gt;&lt;br /&gt;I can't reproduce the error now.  Right clicking the project and running an update has worked since I updated from the button.&lt;br /&gt;&lt;br /&gt;So in the event that you hit this post while having the same problems, run an update from the button.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4965849230703673716?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4965849230703673716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4965849230703673716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4965849230703673716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4965849230703673716'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/02/netbeans-65-and-svnssh-on-mac.html' title='NetBeans 6.5 and svn+ssh on a Mac'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6373897874238480367</id><published>2009-01-13T14:52:00.003-05:00</published><updated>2009-01-13T14:58:46.765-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jBPM'/><title type='text'>JBPM_ID_USER</title><content type='html'>While helping a coworker set up jBPM I learned that part of the create script for jBPM 3.3.0.GA is missing.  The user part.  You can't log in without it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jboss.com/index.html?module=bb&amp;amp;op=viewtopic&amp;amp;t=147320"&gt;This post&lt;/a&gt; from JBoss' forums has the solution.&lt;br /&gt;&lt;br /&gt;Here's the missing create statements :&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;create table JBPM_ID_GROUP (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(255 char), TYPE_ varchar2(255 char), PARENT_ number(19,0), primary key (ID_));&lt;br /&gt;create table JBPM_ID_MEMBERSHIP (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(255 char), ROLE_ varchar2(255 char), USER_ number(19,0), GROUP_ number(19,0), primary key (ID_));&lt;br /&gt;create table JBPM_ID_PERMISSIONS (ENTITY_ number(19,0) not null, CLASS_ varchar2(255 char), NAME_ varchar2(255 char), ACTION_ varchar2(255 char));&lt;br /&gt;create table JBPM_ID_USER (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(255 char), EMAIL_ varchar2(255 char), PASSWORD_ varchar2(255 char), primary key (ID_));&lt;br /&gt;create table JBPM_JOB (ID_ number(19,0) not null, CLASS_ char(1 char) not null, VERSION_ number(10,0) not null, DUEDATE_ timestamp, PROCESSINSTANCE_ number(19,0), TOKEN_ number(19,0), TASKINSTANCE_ number(19,0), ISSUSPENDED_ number(1,0), ISEXCLUSIVE_ number(1,0), LOCKOWNER_ varchar2(255 char), LOCKTIME_ timestamp, EXCEPTION_ varchar2(4000 char), RETRIES_ number(10,0), NAME_ varchar2(255 char), REPEAT_ varchar2(255 char), TRANSITIONNAME_ varchar2(255 char), ACTION_ number(19,0), GRAPHELEMENTTYPE_ varchar2(255 char), GRAPHELEMENT_ number(19,0), NODE_ number(19,0), primary key (ID_));&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;For the jbpm-console app to work run the following inserts as well :&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;INSERT INTO JBPM_ID_USER VALUES(1,'U','user','user@sample.domain','user');&lt;br /&gt;INSERT INTO JBPM_ID_USER VALUES(2,'U','manager','manager@sample.domain','manager');&lt;br /&gt;INSERT INTO JBPM_ID_USER VALUES(3,'U','admin','admin@sample.domain','admin');&lt;br /&gt;INSERT INTO JBPM_ID_USER VALUES(4,'U','shipper','shipper@sample.domain','shipper');&lt;br /&gt;INSERT INTO JBPM_ID_GROUP VALUES(1,'G','sales','organisation',NULL);&lt;br /&gt;INSERT INTO JBPM_ID_GROUP VALUES(2,'G','manager','security-role',NULL);&lt;br /&gt;INSERT INTO JBPM_ID_GROUP VALUES(3,'G','hr','organisation',NULL);&lt;br /&gt;INSERT INTO JBPM_ID_GROUP VALUES(4,'G','admin','security-role',NULL);&lt;br /&gt;INSERT INTO JBPM_ID_GROUP VALUES(5,'G','user','security-role',NULL);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(1,'M',NULL,NULL,2,2);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(2,'M',NULL,NULL,2,4);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(3,'M',NULL,NULL,3,4);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(4,'M',NULL,NULL,2,5);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(5,'M',NULL,NULL,1,5);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(6,'M',NULL,NULL,4,3);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(7,'M',NULL,NULL,4,5);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(8,'M',NULL,NULL,3,5);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(9,'M',NULL,NULL,3,3);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(10,'M',NULL,NULL,2,3);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(11,'M',NULL,'boss',2,1);&lt;br /&gt;INSERT INTO JBPM_ID_MEMBERSHIP VALUES(12,'M',NULL,NULL,1,1);&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6373897874238480367?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6373897874238480367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6373897874238480367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6373897874238480367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6373897874238480367'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/01/jbpmiduser.html' title='JBPM_ID_USER'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2256354342526778826</id><published>2009-01-06T09:04:00.002-05:00</published><updated>2009-01-06T09:09:38.656-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBossTools'/><category scheme='http://www.blogger.com/atom/ns#' term='TestNG'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Seam-Gen and the TestNG plugin</title><content type='html'>Here's an interesting heads up to running SeamTest classes inside Eclipse.&lt;br /&gt;&lt;br /&gt;I was having some problems getting my tests, extending SeamTest, to run with the Eclipse TestNG plugin.  I found &lt;a href="http://seamframework.org/Community/TestNGQuestion"&gt;this post&lt;/a&gt; on &lt;a href="http://seamframework.org"&gt;seamframework.org&lt;/a&gt; which states,&lt;br /&gt;&lt;br /&gt;"the Eclipse Run dialog to start the TestNG test will only be viable if you have a Seam Web Project created from JBoss Tools"&lt;br /&gt;&lt;br /&gt;I used Seam-Gen instead of JBoss Tools for my project.  I ran the tests from ant and they worked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2256354342526778826?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2256354342526778826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2256354342526778826' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2256354342526778826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2256354342526778826'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/01/seam-gen-and-testng-plugin.html' title='Seam-Gen and the TestNG plugin'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6674042842170335453</id><published>2009-01-05T10:44:00.003-05:00</published><updated>2009-01-05T10:48:52.209-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DZone'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Seam 2.1.0 RefCard from Dzone</title><content type='html'>DZone has a &lt;a href="http://refcardz.dzone.com/refcardz/core-seam"&gt;refcard for Seam 2.1.0&lt;/a&gt;.  Registration is required for download.&lt;br /&gt;&lt;br /&gt;I've found these things to be useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6674042842170335453?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6674042842170335453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6674042842170335453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6674042842170335453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6674042842170335453'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/01/seam-210-refcard-from-dzone.html' title='Seam 2.1.0 RefCard from Dzone'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6314312471683542546</id><published>2009-01-02T13:47:00.002-05:00</published><updated>2009-01-02T13:58:34.999-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='TestNG'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>SeamTest and Eclipse TestNG plugin</title><content type='html'>I encountered a small problem running a new SeamTest with Eclipse' TestNG plugin.  The error was :&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;DEBUG [main] (KernelFactory.java:86) - Starting JBoss Kernel construction...&lt;br /&gt;DEBUG [main] (KernelFactory.java:112) - Completed JBoss Kernel construction.  Duration: 381 milliseconds&lt;br /&gt;FAILED CONFIGURATION: @BeforeSuite startSeam&lt;br /&gt;org.jboss.deployers.spi.DeploymentException: Unable to find bootstrap file: conf/bootstrap-beans.xml in classpath&lt;br /&gt;  at org.jboss.embedded.Bootstrap.bootstrap(Bootstrap.java:181)&lt;br /&gt;  at org.jboss.embedded.Bootstrap.bootstrap(Bootstrap.java:195)&lt;br /&gt;  at org.jboss.seam.mock.EmbeddedBootstrap.startAndDeployResources(EmbeddedBootstrap.java:11)&lt;br /&gt;  at org.jboss.seam.mock.AbstractSeamTest.startJbossEmbeddedIfNecessary(AbstractSeamTest.java:1025)&lt;br /&gt;  at org.jboss.seam.mock.AbstractSeamTest.startSeam(AbstractSeamTest.java:916)&lt;br /&gt;  at org.jboss.seam.mock.SeamTest.startSeam(SeamTest.java:58)&lt;br /&gt;... Removed 15 stack frames&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;The solution is pretty simple.&lt;br /&gt;&lt;br /&gt;Open up the run configuration (the arrow next to the run button and choose "Run Configurations...")&lt;br /&gt;The most recently run test should be highlighted.  If not select it.&lt;br /&gt;Choose the "Classpath" tab in the right side of the pane.&lt;br /&gt;Click "User Entries" which should be in the center pane.&lt;br /&gt;Click "Advanced' -&gt; "Add Folders" -&gt; OK and navigate to the "bootstrap" folder.&lt;br /&gt;Click "Add Jars" and navigate to the "lib/test" folder and add all three jars.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ok.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6314312471683542546?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6314312471683542546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6314312471683542546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6314312471683542546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6314312471683542546'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2009/01/seamtest-and-eclipse-testng-plugin.html' title='SeamTest and Eclipse TestNG plugin'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-8847792076927029896</id><published>2008-12-29T08:59:00.004-05:00</published><updated>2008-12-29T11:35:59.876-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss 4.2.3.GA'/><category scheme='http://www.blogger.com/atom/ns#' term='jBPM'/><title type='text'>jBPM 3.3.0.GA and JBoss AS 4.2.3.GA</title><content type='html'>The ops guys had already installed JBoss 4.2.3.GA on our servers.  In an attempt to submit as few help desk requests as possible I decided to port jBPM 3.3.0.GA to JBoss instead of asking them to roll back.&lt;br /&gt;&lt;br /&gt;The new docs say,&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-weight: bold;"&gt;The jbpm directory&lt;/span&gt;&lt;br /&gt;"When jBPM is installed on a server configuration in JBoss, only the jbpm directory is        added to the deploy directory and all components will be deployed under that directory.       No other files of JBoss are changed or added outside that directory.        "&lt;br /&gt;&lt;br /&gt;I figured that would be a good place to start.&lt;br /&gt;&lt;br /&gt;I copied the jbpm folder from the 3.3.0.GA distro to a clean JBoss 4.2.3.GA  that I built from source.&lt;br /&gt;&lt;br /&gt;I opened my browser and checked, "http://localhost:8080/jbpm-console."  I tried logging in with "manager/manager."  I got the error, "Login failed.  Invalid user name or password.                             "&lt;br /&gt;&lt;br /&gt;I added the following to $JBOSS_INSTALL/server/default/conf/login-congif.xml :&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;&amp;lt;application-policy name = "jbpm"&amp;gt;&lt;br /&gt;       &amp;lt;authentication&amp;gt;&lt;br /&gt;           &amp;lt;login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule"&lt;br /&gt;               flag="required"&amp;gt;&lt;br /&gt;               &amp;lt;module-option name="dsJndiName"&amp;gt;java:/JbpmDS&amp;lt;/module-option&amp;gt;&lt;br /&gt;               &amp;lt;module-option name="principalsQuery"&amp;gt;&lt;br /&gt;                   SELECT PASSWORD_ FROM JBPM_ID_USER WHERE NAME_=?&lt;br /&gt;               &amp;lt;/module-option&amp;gt;&lt;br /&gt;               &amp;lt;module-option name="rolesQuery"&amp;gt;&lt;br /&gt;                   SELECT g.NAME_ ,'Roles'&lt;br /&gt;                   FROM JBPM_ID_USER u,&lt;br /&gt;                   JBPM_ID_MEMBERSHIP m,&lt;br /&gt;                   JBPM_ID_GROUP g&lt;br /&gt;                   WHERE g.TYPE_='security-role'&lt;br /&gt;                   AND m.GROUP_ = g.ID_&lt;br /&gt;                   AND m.USER_ = u.ID_&lt;br /&gt;                   AND u.NAME_=?&lt;br /&gt;               &amp;lt;/module-option&amp;gt;&lt;br /&gt;           &amp;lt;/login-module&amp;gt;&lt;br /&gt;       &amp;lt;/authentication&amp;gt;&lt;br /&gt;   &amp;lt;/application-policy&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;When I restarted I could log in fine.  I saw the processes that I had been working on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-8847792076927029896?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/8847792076927029896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=8847792076927029896' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/8847792076927029896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/8847792076927029896'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/12/jbpm-330ga-and-jboss-as-423ga.html' title='jBPM 3.3.0.GA and JBoss AS 4.2.3.GA'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6984751148507134924</id><published>2008-12-15T16:15:00.003-05:00</published><updated>2008-12-16T07:45:55.926-05:00</updated><title type='text'>Adding jBPM support to a Seam app</title><content type='html'>I created my app with seam-gen.  While adding support for jBPM, I got the following error :&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;Caused by: org.dom4j.DocumentException: Error on line 29 of document  : The prefix "bpm" for element "bpm:jbpm" is not bound. Nested exception: The prefix "bpm" for element "bpm:jbpm" is not bound.&lt;br /&gt; at org.dom4j.io.SAXReader.read(SAXReader.java:482)&lt;br /&gt; at org.dom4j.io.SAXReader.read(SAXReader.java:343)&lt;br /&gt; at org.jboss.seam.util.XML.getRootElement(XML.java:24)&lt;br /&gt; at org.jboss.seam.init.Initialization.initComponentsFromXmlDocument(Initialization.java:217)&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;The fix was to add the following to &amp;lt;components&amp;gt; declaration in the components.xml :&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;&lt;br /&gt;xmlns:bpm="http://jboss.com/products/seam/bpm"&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;a href="http://www.mastertheboss.com/en/seam/90-seam-jbpm.html"&gt;Here&lt;/a&gt;'s a nice tutorial from  &lt;a href="http://www.mastertheboss.com/"&gt;mastertheboss&lt;/a&gt; on adding jBPM support to a Seam app.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6984751148507134924?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6984751148507134924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6984751148507134924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6984751148507134924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6984751148507134924'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/12/adding-jbpm-support-to-seam-app.html' title='Adding jBPM support to a Seam app'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5011560086293938161</id><published>2008-12-04T23:06:00.003-05:00</published><updated>2008-12-04T23:13:33.901-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Seam Tip Number 5</title><content type='html'>If you ever copy and paste a project directory be sure to change the seam-gen.properties file.&lt;br /&gt;&lt;br /&gt;I got a new MacBook Pro.  I copied my Eclipse workspaces over of course. &lt;br /&gt;&lt;br /&gt;I made some changes to the entities in a project.  I then opened a terminal and ran "seam generate-ui."  I got a FileNotFound exception in build.xml line 1154 .  Something was still pointing to the C:/ drive.&lt;br /&gt;&lt;br /&gt;Inside the root Eclipse project directory there is a seam-gen.properties file.  Changing that fixes anything.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5011560086293938161?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5011560086293938161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5011560086293938161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5011560086293938161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5011560086293938161'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/12/seam-tip-number-5.html' title='Seam Tip Number 5'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3699243033984455894</id><published>2008-12-04T10:02:00.003-05:00</published><updated>2008-12-12T09:04:57.267-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><category scheme='http://www.blogger.com/atom/ns#' term='jBPM'/><title type='text'>jBPM 3.3.0.GA and Oracle 10g Express Server</title><content type='html'>I grabbed the jBPM 3.3.0.GA release.  I got a process deployed under hsqldb to make sure everything worked.  The next step is to switch out hsqldb for Oracle XE.  I run Oracle XE under parallels.&lt;br /&gt;&lt;br /&gt;The user guide chapter 7 lays out the changes.&lt;br /&gt;&lt;br /&gt;One "gotcha: I had was the type mapping in the datasource.  "Oracle9i" was the appropriate setting.  It took me a couple of tries.&lt;br /&gt;&lt;br /&gt;The datasource, located in /jbpm-3.3.0.GA/jboss-4.2.2.GA/server/default/deploy/jbpm, I ended up with :&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- ===================================================================== --&amp;gt;&lt;br /&gt;&amp;lt;!--                                                                       --&amp;gt;&lt;br /&gt;&amp;lt;!--  JBoss Server Configuration                                           --&amp;gt;&lt;br /&gt;&amp;lt;!--                                                                       --&amp;gt;&lt;br /&gt;&amp;lt;!-- ===================================================================== --&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- $Id: oracle-ds.xml 71535 2008-04-01 07:05:03Z adrian@jboss.org $ --&amp;gt;&lt;br /&gt;&amp;lt;!-- ==================================================================== --&amp;gt;&lt;br /&gt;&amp;lt;!--  Datasource config for Oracle originally from Steven Coy             --&amp;gt;&lt;br /&gt;&amp;lt;!-- ==================================================================== --&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;datasources&amp;gt;&lt;br /&gt;&amp;lt;local-tx-datasource&amp;gt;&lt;br /&gt; &amp;lt;jndi-name&amp;gt;JbpmDS&amp;lt;/jndi-name&amp;gt;&lt;br /&gt; &amp;lt;connection-url&amp;gt;jdbc:oracle:thin:@IP_ADDRESS:1521:xe&amp;lt;/connection-url&amp;gt;&lt;br /&gt; &amp;lt;!--&lt;br /&gt;&lt;br /&gt;     Here are a couple of the possible OCI configurations.&lt;br /&gt;     For more information, see http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.920/a96654/toc.htm&lt;br /&gt;&lt;br /&gt; &amp;lt;connection-url&amp;gt;jdbc:oracle:oci:@youroracle-tns-name&amp;lt;/connection-url&amp;gt;&lt;br /&gt;     or&lt;br /&gt; &amp;lt;connection-url&amp;gt;jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))&amp;lt;/connection-url&amp;gt;&lt;br /&gt;&lt;br /&gt;     Clearly, its better to have TNS set up properly.&lt;br /&gt;  --&amp;gt;&lt;br /&gt; &amp;lt;driver-class&amp;gt;oracle.jdbc.driver.OracleDriver&amp;lt;/driver-class&amp;gt;&lt;br /&gt; &amp;lt;user-name&amp;gt;USER_NAME&amp;lt;/user-name&amp;gt;&lt;br /&gt; &amp;lt;password&amp;gt;PASSWORD&amp;lt;/password&amp;gt;&lt;br /&gt; &amp;lt;!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool --&amp;gt;&lt;br /&gt; &amp;lt;!--valid-connection-checker-class-name&amp;gt;org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker&amp;lt;/valid-connection-checker-class-name--&amp;gt;&lt;br /&gt; &amp;lt;!-- Checks the Oracle error codes and messages for fatal errors --&amp;gt;&lt;br /&gt; &amp;lt;exception-sorter-class-name&amp;gt;org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter&amp;lt;/exception-sorter-class-name&amp;gt;&lt;br /&gt;     &amp;lt;!-- sql to call when connection is created&lt;br /&gt;     &amp;lt;new-connection-sql&amp;gt;some arbitrary sql&amp;lt;/new-connection-sql&amp;gt;&lt;br /&gt;     --&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;!-- sql to call on an existing pooled connection when it is obtained from pool - the OracleValidConnectionChecker is prefered&lt;br /&gt;     &amp;lt;check-valid-connection-sql&amp;gt;some arbitrary sql&amp;lt;/check-valid-connection-sql&amp;gt;&lt;br /&gt;     --&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) --&amp;gt;&lt;br /&gt;   &amp;lt;metadata&amp;gt;&lt;br /&gt;      &amp;lt;type-mapping&amp;gt;Oracle9i&amp;lt;/type-mapping&amp;gt;&lt;br /&gt;   &amp;lt;/metadata&amp;gt;&lt;br /&gt;&amp;lt;/local-tx-datasource&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/datasources&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;The hibernate.cfg.xml, located in /jbpm-3.3.0.GA/jboss-4.2.2.GA/server/default/deploy/jbpm/jbpm-service.sar, I ended up with :&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE hibernate-configuration PUBLIC&lt;br /&gt;"-//Hibernate/Hibernate Configuration DTD 3.0//EN"&lt;br /&gt;"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;hibernate-configuration&amp;gt;&lt;br /&gt;&amp;lt;session-factory&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- hibernate dialect --&amp;gt;&lt;br /&gt;  &amp;lt;!--&lt;br /&gt;  &amp;lt;property name="hibernate.dialect"&amp;gt;org.hibernate.dialect.HSQLDialect&amp;lt;/property&amp;gt;&lt;br /&gt;  --&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.dialect"&amp;gt;org.hibernate.dialect.Oracle9Dialect&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- JDBC connection properties (begin) ===&lt;br /&gt;  &amp;lt;property name="hibernate.connection.driver_class"&amp;gt;org.hsqldb.jdbcDriver&amp;lt;/property&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.connection.url"&amp;gt;jdbc:hsqldb:mem:jbpm&amp;lt;/property&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.connection.username"&amp;gt;sa&amp;lt;/property&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.connection.password"&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;  ==== JDBC connection properties (end) --&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- DataSource properties (begin)&lt;br /&gt;  &amp;lt;property name="hibernate.connection.datasource"&amp;gt;java:comp/env/jdbc/JbpmDataSource&amp;lt;/property&amp;gt;&lt;br /&gt;  --&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.connection.datasource"&amp;gt;java:/JbpmDS&amp;lt;/property&amp;gt;&lt;br /&gt;  &amp;lt;!-- DataSource properties (end) --&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- JTA transaction properties (begin) --&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.transaction.factory_class"&amp;gt;org.hibernate.transaction.JTATransactionFactory&amp;lt;/property&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.transaction.manager_lookup_class"&amp;gt;org.hibernate.transaction.JBossTransactionManagerLookup&amp;lt;/property&amp;gt;&lt;br /&gt;  &amp;lt;!-- JTA transaction properties (end) --&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- CMT transaction properties (begin) ===&lt;br /&gt;  &amp;lt;property name="hibernate.transaction.factory_class"&amp;gt;org.hibernate.transaction.CMTTransactionFactory&amp;lt;/property&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.transaction.manager_lookup_class"&amp;gt;org.hibernate.transaction.JBossTransactionManagerLookup&amp;lt;/property&amp;gt;&lt;br /&gt;  ==== CMT transaction properties (end) --&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- ################################### --&amp;gt;&lt;br /&gt;  &amp;lt;!-- # common settings                 # --&amp;gt;&lt;br /&gt;  &amp;lt;!-- ################################### --&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- Automatic schema creation (begin) ===&lt;br /&gt;  &amp;lt;property name="hibernate.hbm2ddl.auto"&amp;gt;create&amp;lt;/property&amp;gt;&lt;br /&gt;  ==== Automatic schema creation (end) --&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- Simple memory-only cache --&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.cache.provider_class"&amp;gt;org.hibernate.cache.HashtableCacheProvider&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- logging properties --&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.format_sql"&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;  &amp;lt;property name="hibernate.use_sql_comments"&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- ############################################ --&amp;gt;&lt;br /&gt;  &amp;lt;!-- # mapping files with external dependencies # --&amp;gt;&lt;br /&gt;  &amp;lt;!-- ############################################ --&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- Additional mappings defined per module go here --&amp;gt;&lt;br /&gt;  &amp;lt;mapping resource="hibernate.extra.hbm.xml" /&amp;gt;&lt;br /&gt;  &amp;lt;mapping resource="hibernate.identity.hbm.xml" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- ###################### --&amp;gt;&lt;br /&gt; &amp;lt;!-- # jbpm mapping files # --&amp;gt;&lt;br /&gt; &amp;lt;!-- ###################### --&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- hql queries and type defs --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/db/hibernate.queries.hbm.xml" /&amp;gt;&lt;br /&gt; &amp;lt;!-- hql queries used in simulation for querying historical data&lt;br /&gt;      uncomment if you want to use the GetSimulationInputCommand&lt;br /&gt;      or maybe you also want to use the queries yourself&lt;br /&gt;      be patient: the queries need the stddev function to be enabled in your dialect&lt;br /&gt;      more information on this can be found here: http://www.camunda.com/business_process_simulation_news/mysql_and_stddev.html --&amp;gt;&lt;br /&gt; &amp;lt;!--&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/sim/bam/hibernate.queries.hbm.xml" /&amp;gt;&lt;br /&gt; --&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- graph.action mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/action/MailAction.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- graph.def mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/def/Node.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/def/Transition.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/def/Event.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/def/Action.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/def/SuperState.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/instantiation/Delegation.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- ############################################ --&amp;gt;&lt;br /&gt; &amp;lt;!-- # another mapping file with external dependencies # --&amp;gt;&lt;br /&gt; &amp;lt;!-- ############################################ --&amp;gt;&lt;br /&gt; &amp;lt;!-- following mapping file has a dependency on   --&amp;gt;&lt;br /&gt; &amp;lt;!-- 'bsh-{version}.jar'.                         --&amp;gt;&lt;br /&gt; &amp;lt;!-- uncomment this if you don't have bsh on your --&amp;gt;&lt;br /&gt; &amp;lt;!-- classpath.  you won't be able to use the     --&amp;gt;&lt;br /&gt; &amp;lt;!-- script element in process definition files   --&amp;gt;&lt;br /&gt; &amp;lt;!-- has to be defined below org/jbpm/graph/def/Action.hbm.xml --&amp;gt;&lt;br /&gt; &amp;lt;!-- due to the inline collection-cache elements below --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/action/Script.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- graph.node mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/node/StartState.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/node/EndState.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/node/Decision.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/node/Fork.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/node/Join.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/node/MailNode.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/node/State.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- context.def mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- bytes mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- module.def mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- file.def mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- taskmgmt.def mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- scheduler.def mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- graph.exe mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/exe/Comment.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/exe/Token.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- module.exe mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- context.exe mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- job mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/job/Job.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/job/Timer.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/job/CleanUpProcessJob.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- taskmgmt.exe mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- logging mapping files --&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/log/ProcessStateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/VariableLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/&amp;gt;&lt;br /&gt; &amp;lt;mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- ################################### --&amp;gt;&lt;br /&gt;&amp;lt;!-- # cache settings                  # --&amp;gt;&lt;br /&gt;&amp;lt;!-- # strategy="nonstrict-read-write" # --&amp;gt;&lt;br /&gt;&amp;lt;!-- # can be used with hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider # --&amp;gt;&lt;br /&gt;&amp;lt;!-- ################################### --&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.context.def.VariableAccess" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.file.def.FileDefinition.processFiles" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.action.Script.variableAccesses" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.graph.def.Action" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.graph.def.Event" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.Event.actions" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.graph.def.ExceptionHandler" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.ExceptionHandler.actions" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.graph.def.Node" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.Node.events" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.Node.exceptionHandlers" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.Node.leavingTransitions" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.Node.arrivingTransitions" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.graph.def.ProcessDefinition" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.ProcessDefinition.events" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.ProcessDefinition.exceptionHandlers" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.ProcessDefinition.nodes" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.ProcessDefinition.actions" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.ProcessDefinition.definitions" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.SuperState.nodes" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.graph.def.Transition" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.Transition.events" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.def.Transition.exceptionHandlers" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.node.Decision.decisionConditions" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.node.ProcessState.variableAccesses" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.graph.node.TaskNode.tasks" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.instantiation.Delegation" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.module.def.ModuleDefinition" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.taskmgmt.def.Swimlane.tasks" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.taskmgmt.def.TaskController" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.taskmgmt.def.TaskController.variableAccesses" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;class-cache class="org.jbpm.taskmgmt.def.Task" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.taskmgmt.def.Task.events" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.taskmgmt.def.Task.exceptionHandlers" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.swimlanes" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&amp;lt;collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.tasks" usage="nonstrict-read-write" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/session-factory&amp;gt;&lt;br /&gt;&amp;lt;/hibernate-configuration&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3699243033984455894?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3699243033984455894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3699243033984455894' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3699243033984455894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3699243033984455894'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/12/jbpm-330ga-and-oracle-10g-express.html' title='jBPM 3.3.0.GA and Oracle 10g Express Server'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4161859927550189691</id><published>2008-12-03T09:54:00.003-05:00</published><updated>2008-12-03T10:04:05.517-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Developer Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Europa'/><category scheme='http://www.blogger.com/atom/ns#' term='JUnit4'/><title type='text'>Unsigned JUnit 4 in JBoss Developer Studio</title><content type='html'>Running a JUnit4 test I got the following error :&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: Georgia; font-size: 16px; line-height: normal; white-space: normal;"&gt;&lt;br /&gt;&lt;/span&gt;junit.framework.JUnit4TestCaseFacade"'s signer information does not match signer information of other classes in the same package&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Apparently other people have had the same problem with Europa.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The solution was easy.  I downloaded JUnit4 jars and created a new User Library with them.  I then added my new user library to the project and the run configuration.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To add the new library to the project :&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;I downloaded Junit4 and its' sources.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I put both jars in "/Users/[USER_NAME]/Java."&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I control-clicked on the prject name and chose "Build Path -&gt; Configure Build Path."&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Under "Libraries" I removed the JUnit 4 library.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I clicked "Add Library -&gt; User Library -&gt; Next -&gt; User Libraries -&gt; New" and created a Library called "JUnit4 Local."&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I added the jars I downloaded.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To add the new library to the run configuration :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Run Button -&gt; Run Configurations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The most recently run test is highlighted.  Choose the one that needs to be changed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the "Classpath" tab.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Expand "User Entries"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Remove the existing JUnit4 library.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add the user library.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4161859927550189691?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4161859927550189691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4161859927550189691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4161859927550189691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4161859927550189691'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/12/unsigned-junit-4-in-jboss-developer.html' title='Unsigned JUnit 4 in JBoss Developer Studio'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3022957584066957508</id><published>2008-11-27T19:30:00.009-05:00</published><updated>2008-11-27T21:06:20.701-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><category scheme='http://www.blogger.com/atom/ns#' term='jBPM'/><title type='text'>Building jBPM 3.3.0.GA From Source</title><content type='html'>&lt;span class="Apple-style-span" style="font-style: italic;"&gt;The reason for this extremely long post is simply to save someone time in the event they are having the same problems.  The errors I got are copied here in their entirety in the even that someone is googling them.  The moral of this story is to &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;update after checkout&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;jBPM 3.3.0.GA is out!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sweet.  I'll build it from source.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, I checked it out from the svn repository.  I used Eclipse and checked it out as a project.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Second, control click (new MacBook Pro!) on the pom.xml in the root directory.  I chose "run as -&gt; Maven package"  That didn't work.&lt;/div&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;[INFO] [jar:jar]&lt;br /&gt;[INFO] Building jar: [ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/core/target/jbpm-jpdl-3.3.1-SNAPSHOT.jar&lt;br /&gt;[INFO] [assembly:single]&lt;br /&gt;[INFO] Reading assembly descriptor: [ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/core/scripts/assembly-config.xml&lt;br /&gt;Exception in thread "main" java.lang.NullPointerException&lt;br /&gt;at org.apache.maven.plugin.assembly.archive.ManifestCreationFinalizer.getVirtualFiles(ManifestCreationFinalizer.java:99)&lt;br /&gt;at org.codehaus.plexus.archiver.AbstractArchiver.hasVirtualFiles(AbstractArchiver.java:546)&lt;br /&gt;at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.createArchiveMain(AbstractZipArchiver.java:258)&lt;br /&gt;at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.execute(AbstractZipArchiver.java:242)&lt;br /&gt;at org.codehaus.plexus.archiver.AbstractArchiver.createArchive(AbstractArchiver.java:513)&lt;br /&gt;at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:103)&lt;br /&gt;at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:278)&lt;br /&gt;at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:579)&lt;br /&gt;at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:498)&lt;br /&gt;at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject(DefaultLifecycleExecutor.java:265)&lt;br /&gt;at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:191)&lt;br /&gt;at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:149)&lt;br /&gt;at org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223)&lt;br /&gt;at org.apache.maven.DefaultMaven.execute_aroundBody1$advice(DefaultMaven.java:304)&lt;br /&gt;at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1)&lt;br /&gt;at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.java:904)&lt;br /&gt;at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice(MavenEmbedder.java:304)&lt;br /&gt;at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1)&lt;br /&gt;at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176)&lt;br /&gt;at org.apache.maven.cli.MavenCli.main(MavenCli.java:63)&lt;br /&gt;at org.apache.maven.cli.MavenCli.main(MavenCli.java:52)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;I don't have a lot of experience with Maven.  I like the idea of Maven more than its actuality.  The repository is a great idea.  But I have found it painful to use.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm using MyEclipse at the moment.  I've used for years now; although, I had switched to Eclipse with the JBoss Tools for the past few months.   I opened the run dialog () and created a new Maven run profile.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I checked "Debug Output" and ran it again.  This time I got a lot more information.&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;[INFO] Reading assembly descriptor: [ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/core/scripts/assembly-config.xml&lt;br /&gt;[DEBUG] No dependency sets specified.&lt;br /&gt;[DEBUG] FileSet[/] dir perms: 40755 file perms: 100644&lt;br /&gt;[DEBUG] The archive base directory is 'null'&lt;br /&gt;[DEBUG] disposing managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-antrun-plugin:1.1@48/thread:main&lt;br /&gt;[DEBUG] dissociating all components from managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-antrun-plugin:1.1@48/thread:main&lt;br /&gt;[DEBUG] disposing managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-site-plugin:2.0-beta-6@48/thread:main&lt;br /&gt;[DEBUG] dissociating all components from managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-site-plugin:2.0-beta-6@48/thread:main&lt;br /&gt;[DEBUG] disposing managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-resources-plugin:2.2@48/thread:main&lt;br /&gt;[DEBUG] dissociating all components from managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-resources-plugin:2.2@48/thread:main&lt;br /&gt;[DEBUG] disposing managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-surefire-plugin:2.4.2@48/thread:main&lt;br /&gt;[DEBUG] dissociating all components from managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-surefire-plugin:2.4.2@48/thread:main&lt;br /&gt;[DEBUG] disposing managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-assembly-plugin:2.2-beta-1@48/thread:main&lt;br /&gt;[DEBUG] dissociating all components from managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-assembly-plugin:2.2-beta-1@48/thread:main&lt;br /&gt;[DEBUG] disposing managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-compiler-plugin:2.0.2.SP1@48/thread:main&lt;br /&gt;[DEBUG] dissociating all components from managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-compiler-plugin:2.0.2.SP1@48/thread:main&lt;br /&gt;[DEBUG] disposing managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-source-plugin:2.0.4@48/thread:main&lt;br /&gt;[DEBUG] dissociating all components from managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-source-plugin:2.0.4@48/thread:main&lt;br /&gt;[DEBUG] disposing managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-jar-plugin:2.2@48/thread:main&lt;br /&gt;[DEBUG] dissociating all components from managed ClassRealm with id: /plugins/org.apache.maven.plugins:maven-jar-plugin:2.2@48/thread:main&lt;br /&gt;Exception in thread "main" java.lang.NullPointerException&lt;br /&gt;at org.apache.maven.plugin.assembly.archive.ManifestCreationFinalizer.getVirtualFiles(ManifestCreationFinalizer.java:99)&lt;br /&gt;at org.codehaus.plexus.archiver.AbstractArchiver.hasVirtualFiles(AbstractArchiver.java:546)&lt;br /&gt;at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.createArchiveMain(AbstractZipArchiver.java:258)&lt;br /&gt;at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.execute(AbstractZipArchiver.java:242)&lt;br /&gt;at org.codehaus.plexus.archiver.AbstractArchiver.createArchive(AbstractArchiver.java:513)&lt;br /&gt;at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:103)&lt;br /&gt;at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:278)&lt;br /&gt;at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:579)&lt;br /&gt;at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:498)&lt;br /&gt;at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject(DefaultLifecycleExecutor.java:265)&lt;br /&gt;at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:191)&lt;br /&gt;at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:149)&lt;br /&gt;at org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223)&lt;br /&gt;at org.apache.maven.DefaultMaven.execute_aroundBody1$advice(DefaultMaven.java:304)&lt;br /&gt;at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1)&lt;br /&gt;at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.java:904)&lt;br /&gt;at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice(MavenEmbedder.java:304)&lt;br /&gt;at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1)&lt;br /&gt;at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176)&lt;br /&gt;at org.apache.maven.cli.MavenCli.main(MavenCli.java:63)&lt;br /&gt;at org.apache.maven.cli.MavenCli.main(MavenCli.java:52)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;The line, "The archive base directory is 'null'" didn't look good.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I decided to try from the command line.  This time there were test failures:&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Running org.jbpm.enterprise.jta.JtaDbPersistenceTest&lt;br /&gt;java.lang.RuntimeException: Cannot obtain MBeanServerConnection using jndi props: {java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.provider.url=localhost:1099, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestHelper.getServer(IntegrationTestHelper.java:131)&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestHelper.getDeployer(IntegrationTestHelper.java:139)&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestHelper.deploy(IntegrationTestHelper.java:58)&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestHelper.deploy(IntegrationTestHelper.java:53)&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestSetup.setUp(IntegrationTestSetup.java:105)&lt;br /&gt; at junit.extensions.TestSetup$1.protect(TestSetup.java:18)&lt;br /&gt; at junit.framework.TestResult.runProtected(TestResult.java:124)&lt;br /&gt; at junit.extensions.TestSetup.run(TestSetup.java:23)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt; at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)&lt;br /&gt; at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)&lt;br /&gt; at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)&lt;br /&gt; at org.apache.maven.surefire.Surefire.run(Surefire.java:177)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt; at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)&lt;br /&gt; at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)&lt;br /&gt;Caused by: javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:1099 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused]]]&lt;br /&gt; at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1562)&lt;br /&gt; at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:634)&lt;br /&gt; at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)&lt;br /&gt; at javax.naming.InitialContext.lookup(InitialContext.java:351)&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestHelper.getServer(IntegrationTestHelper.java:127)&lt;br /&gt; ... 21 more&lt;br /&gt;Caused by: javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused]]&lt;br /&gt; at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:274)&lt;br /&gt; at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1533)&lt;br /&gt; ... 25 more&lt;br /&gt;Caused by: javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused]&lt;br /&gt; at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:248)&lt;br /&gt; ... 26 more&lt;br /&gt;Caused by: java.net.ConnectException: Connection refused&lt;br /&gt; at java.net.PlainSocketImpl.socketConnect(Native Method)&lt;br /&gt; at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)&lt;br /&gt; at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)&lt;br /&gt; at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)&lt;br /&gt; at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)&lt;br /&gt; at java.net.Socket.connect(Socket.java:520)&lt;br /&gt; at java.net.Socket.connect(Socket.java:470)&lt;br /&gt; at java.net.Socket.&amp;lt;init&amp;gt;(Socket.java:367)&lt;br /&gt; at java.net.Socket.&amp;lt;init&amp;gt;(Socket.java:267)&lt;br /&gt; at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:84)&lt;br /&gt; at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:77)&lt;br /&gt; at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:244)&lt;br /&gt; ... 26 more&lt;br /&gt;Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 11.054 sec &amp;lt;&amp;lt;&amp;lt; FAILURE!&lt;br /&gt;Running org.jbpm.enterprise.config.AppServerConfigurationsTest&lt;br /&gt;java.lang.RuntimeException: Cannot obtain MBeanServerConnection using jndi props: {java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.provider.url=localhost:1099, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestHelper.getServer(IntegrationTestHelper.java:131)&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestHelper.getDeployer(IntegrationTestHelper.java:139)&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestHelper.deploy(IntegrationTestHelper.java:58)&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestHelper.deploy(IntegrationTestHelper.java:53)&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestSetup.setUp(IntegrationTestSetup.java:105)&lt;br /&gt; at junit.extensions.TestSetup$1.protect(TestSetup.java:18)&lt;br /&gt; at junit.framework.TestResult.runProtected(TestResult.java:124)&lt;br /&gt; at junit.extensions.TestSetup.run(TestSetup.java:23)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt; at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)&lt;br /&gt; at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)&lt;br /&gt; at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)&lt;br /&gt; at org.apache.maven.surefire.Surefire.run(Surefire.java:177)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt; at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)&lt;br /&gt; at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)&lt;br /&gt;Caused by: javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:1099 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused]]]&lt;br /&gt; at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1562)&lt;br /&gt; at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:634)&lt;br /&gt; at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)&lt;br /&gt; at javax.naming.InitialContext.lookup(InitialContext.java:351)&lt;br /&gt; at org.jboss.bpm.api.test.IntegrationTestHelper.getServer(IntegrationTestHelper.java:127)&lt;br /&gt; ... 21 more&lt;br /&gt;Caused by: javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused]]&lt;br /&gt; at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:274)&lt;br /&gt; at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1533)&lt;br /&gt; ... 25 more&lt;br /&gt;Caused by: javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused]&lt;br /&gt; at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:248)&lt;br /&gt; ... 26 more&lt;br /&gt;Caused by: java.net.ConnectException: Connection refused&lt;br /&gt; at java.net.PlainSocketImpl.socketConnect(Native Method)&lt;br /&gt; at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)&lt;br /&gt; at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)&lt;br /&gt; at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)&lt;br /&gt; at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)&lt;br /&gt; at java.net.Socket.connect(Socket.java:520)&lt;br /&gt; at java.net.Socket.connect(Socket.java:470)&lt;br /&gt; at java.net.Socket.&amp;lt;init&amp;gt;(Socket.java:367)&lt;br /&gt; at java.net.Socket.&amp;lt;init&amp;gt;(Socket.java:267)&lt;br /&gt; at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:84)&lt;br /&gt; at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:77)&lt;br /&gt; at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:244)&lt;br /&gt; ... 26 more&lt;br /&gt;Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 10.082 sec &amp;lt;&amp;lt;&amp;lt; FAILURE!&lt;br /&gt;Running org.jbpm.enterprise.config.ContainerProvidedJarsTest&lt;br /&gt;Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.019 sec &amp;lt;&amp;lt;&amp;lt; FAILURE!&lt;br /&gt;&lt;br /&gt;Results :&lt;br /&gt;&lt;br /&gt;Tests in error:&lt;br /&gt;org.jbpm.enterprise.jta.JtaDbPersistenceTest&lt;br /&gt;org.jbpm.enterprise.config.AppServerConfigurationsTest&lt;br /&gt;testDependencies(org.jbpm.enterprise.config.ContainerProvidedJarsTest)&lt;br /&gt;&lt;br /&gt;Tests run: 3, Failures: 0, Errors: 3, Skipped: 0&lt;br /&gt;&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[ERROR] BUILD FAILURE&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] There are test failures.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;I started JBoss and try again.  Same thing.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I tried by skipping the tests.  That didn't work either.  I got a compile error.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I changed into the core directory thinking that maybe I had to compile it in a certain order.  I was able to compile the core.  Finally!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Back to the root directory to try again.  Nope.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I changed into the identity directory.  I thought that building individually in the order listed by Maven's output might help me isolate the problem.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately there was a missing dependency,  jbpm-jpdl-3.3.1-SNAPSHOT.jar.  That's the artifact that I was able to build in core directory.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had run "package" not "install."  So I changed back into the core directory and ran "install."  I forgot to add the flag for skipping tests.  This time the tests all passed. Hmm.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So back into the identity directory.  This time no problem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I changed into the "db" directory.  It installed fine.  &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So did the "enterprise" directory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So did the "simulation" directory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The "integration" directory failed :&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;INFO] ------------------------------------------------------------------------&lt;br /&gt;[ERROR] BUILD FAILURE&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] Compilation failure&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/runtime/ExpressionEvaluator.java:[29,32] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: package org.jboss.bpm.api.client&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/runtime/ExpressionEvaluator.java:[55,35] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.runtime.ExpressionEvaluator&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/runtime/NodeExecuteInterceptor.java:[26,32] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: package org.jboss.bpm.api.client&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/runtime/RuntimeContext.java:[29,32] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: package org.jboss.bpm.api.client&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/runtime/RuntimeContext.java:[42,10] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.runtime.RuntimeContext&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/runtime/RuntimeContext.java:[44,9] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.runtime.RuntimeContext&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/runtime/RuntimeContext.java:[49,23] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.runtime.RuntimeContext&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ExclusiveGatewayImpl.java:[26,32] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: package org.jboss.bpm.api.client&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[33,32] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: package org.jboss.bpm.api.client&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[34,38] package org.jboss.bpm.api.client.Token does not exist&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[146,9] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[152,9] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[181,9] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[186,13] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[191,34] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[191,14] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[34,32] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: package org.jboss.bpm.api.client&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[52,34] cannot find symbol&lt;br /&gt;symbol: class Token&lt;br /&gt;public class TokenImpl implements Token&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[96,9] cannot find symbol&lt;br /&gt;symbol  : class TokenStatus&lt;br /&gt;location: class org.jbpm.integration.client.TokenImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[107,13] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.client.TokenImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[137,9] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.client.TokenImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[144,9] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.client.TokenImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/runtime/NodeExecuteInterceptor.java:[39,4] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.runtime.NodeExecuteInterceptor&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ExclusiveGatewayImpl.java:[75,6] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ExclusiveGatewayImpl.ExclusiveGatewayDecisionHandler&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[51,7] org.jbpm.integration.model.ProcessImpl is not abstract and does not override abstract method cancel() in org.jboss.bpm.api.model.Process&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[91,4] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[94,40] cannot find symbol&lt;br /&gt;symbol  : variable TokenStatus&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[161,4] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[193,8] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[193,36] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/model/ProcessImpl.java:[197,11] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.model.ProcessImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[98,4] cannot find symbol&lt;br /&gt;symbol  : class TokenStatus&lt;br /&gt;location: class org.jbpm.integration.client.TokenImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[98,25] cannot find symbol&lt;br /&gt;symbol  : variable TokenStatus&lt;br /&gt;location: class org.jbpm.integration.client.TokenImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[101,15] cannot find symbol&lt;br /&gt;symbol  : variable TokenStatus&lt;br /&gt;location: class org.jbpm.integration.client.TokenImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[109,8] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.client.TokenImpl&lt;br /&gt;&lt;br /&gt;[ECLIPSE WORKSPACE DIRECTORY]/jbpm3/modules/integration/spec/src/main/java/org/jbpm/integration/client/TokenImpl.java:[109,41] cannot find symbol&lt;br /&gt;symbol  : class Token&lt;br /&gt;location: class org.jbpm.integration.client.TokenImpl&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] For more information, run Maven with the -e switch&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] Total time: 12 seconds&lt;br /&gt;[INFO] Finished at: Thu Nov 27 20:40:08 EST 2008&lt;br /&gt;[INFO] Final Memory: 24M/44M&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Getting pretty frustrated, I control clicked the project and ran "Team -&gt; Synchronize with Repository."   There were a bunch of updates.  The classes I was missing were included.  I have no idea how that happened.&lt;br /&gt;&lt;br /&gt;I updated and re-ran maven.  Success.  I changed to the root directory and ran "package" again.  Success.&lt;br /&gt;&lt;br /&gt;How the hell was I missing sources?  Oh well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3022957584066957508?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3022957584066957508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3022957584066957508' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3022957584066957508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3022957584066957508'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/11/building-jbpm-330ga-from-source.html' title='Building jBPM 3.3.0.GA From Source'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2106610170953134729</id><published>2008-11-26T11:56:00.002-05:00</published><updated>2008-11-26T11:57:03.929-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='source'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Format My Source Code for Blogging</title><content type='html'>&lt;div&gt;Here's a really nice utility :&lt;/div&gt;&lt;a href="http://formatmysourcecode.blogspot.com/2006/02/paste-your-text-here.html#links"&gt;Format My Source Code for Blogging&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The results will be all over my blog!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2106610170953134729?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2106610170953134729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2106610170953134729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2106610170953134729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2106610170953134729'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/11/format-my-source-code-for-blogging_26.html' title='Format My Source Code for Blogging'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-2911937765375323002</id><published>2008-11-25T13:13:00.004-05:00</published><updated>2008-11-25T14:52:21.189-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA_HOME'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>OSX and JAVA_HOME</title><content type='html'>Trying to use seam-gen on my new MacBook Pro I got the following error :&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;The JAVA_HOME environment variable is not set&lt;br /&gt;Please point it to a valid JDK installation&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;So I ran :&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;JAVA_HOME=/Library/Java/Home&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.apple.com/qa/qa2001/qa1170.html"&gt;This article&lt;/a&gt; from Apple's site suggested that the home should always point to that symlink.  Unfortunately I got the same error.&lt;br /&gt;&lt;br /&gt;Running :&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;java -version&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;showed only a JRE :&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;java version "1.5.0_16"&lt;br /&gt;Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b06-284)&lt;br /&gt;Java HotSpot(TM) Client VM (build 1.5.0_16-133, mixed mode, sharing)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Running :&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;$JAVA_HOME/bin/java -version&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;showed the same thing.  So where is this JDK that Apple speaks of?  Its there.  The only thing that I was missing was :&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;export JAVA_HOME&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oops.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-2911937765375323002?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/2911937765375323002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=2911937765375323002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2911937765375323002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/2911937765375323002'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/11/osx-and-javahome.html' title='OSX and JAVA_HOME'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4514630384209548215</id><published>2008-11-25T10:23:00.009-05:00</published><updated>2008-11-25T10:44:29.966-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Calendar'/><title type='text'>Calendar and date ranges</title><content type='html'>I hate Java's Calendar and Date apis.  Hopefully &lt;a href="https://jsr-310.dev.java.net/"&gt;JSR 310&lt;/a&gt; will improve things.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the meantime, here's a trick for selecting based on a date range :&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&lt;br /&gt;   Calendar cal = Calendar.getInstance();&lt;br /&gt;   cal.set(Calendar.HOUR, (cal.get(Calendar.HOUR) - 1));&lt;br /&gt;   beforeDate = cal.getTime();&lt;br /&gt;   cal.set(Calendar.DATE, (cal.get(Calendar.DATE) - 1));&lt;br /&gt;   cal.set(Calendar.HOUR_OF_DAY, 00);&lt;br /&gt;   cal.set(Calendar.MINUTE, 00);&lt;br /&gt;   cal.set(Calendar.SECOND, 00);&lt;br /&gt;   afterDate = cal.getTime();&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;The beforeDate member variable is set to the current date minus one hour.  Then the cal Calendar instance is set to 12:00 AM the day before.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4514630384209548215?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4514630384209548215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4514630384209548215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4514630384209548215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4514630384209548215'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/11/calendar-and-date-ranges.html' title='Calendar and date ranges'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-8865147104069611885</id><published>2008-11-21T14:48:00.007-05:00</published><updated>2008-11-21T14:55:03.138-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='os x'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Dashboard wouldn't start</title><content type='html'>I got a new MacBook Pro at work.  I'm completely happy about that!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dashboard quit working.  It might not have ever worked, but I think it did.  After installing a new widget it wouldn't start.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I typed :   &lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;defaults write com.apple.dashboard mcx-disabled -boolean NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Followed by : &lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;killall Dock&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dashboard worked fine after that.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found the answer &lt;a href="http://www.applesource.com.au/how-to/soa/Disable-Dashboard-and-save-RAM-on-your-Mac/0,2000451082,339287561,00.htm"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-8865147104069611885?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/8865147104069611885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=8865147104069611885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/8865147104069611885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/8865147104069611885'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/11/dashboard-wouldnt-start.html' title='Dashboard wouldn&apos;t start'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-994437755294723462</id><published>2008-11-12T09:51:00.005-05:00</published><updated>2008-11-27T19:26:25.443-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seam-gen'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Seam-gen and Oracle Express</title><content type='html'>I installed Oracle Express.  I created a user, "local," with the creative password, "local."  I created a project with seam-gen.  I created an entity object and annotated the id column with :&lt;div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;@Id&lt;br /&gt;@GeneratedValue(strategy = GenerationType.SEQUENCE)&lt;br /&gt;@Column(name = "id", unique = true, nullable = false)&lt;br /&gt;private Long id;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;On deploy I saw in the logs :&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;09:42:14,281 INFO  [SchemaExport] exporting generated schema to database&lt;br /&gt;09:42:14,609 ERROR [SchemaExport] Unsuccessful: create table TABLE_NAME (id number(19,0) not null unique, name varchar2(30) not null, description varchar2(200) not null, inputChannel varchar2(100) not null, outputChannel varchar2(100) not null, parser varchar2(100), primary key (id))&lt;br /&gt;09:42:14,609 ERROR [SchemaExport] ORA-02261: such unique or primary key already exists in the table&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;The message, "such unique or primary key already exists in the table," led me to believe that the table existed.  However, I couldn't see it using the Oracle web interface.  Or SQL Developer.  Or MyEclipse. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I ran the statement in the web interface.  Same error. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem turned out to be that the statement was creating the id twice.  First with, "id number(19,0) not null unique," and second with, "primary key (id)."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I changed the syntax, and it worked.  As for the annotations, I removed the "Column" annotation :&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;@Column(name = "id", unique = true, nullable = false)&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;When I redeployed it worked fine.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The working annotation was :&lt;/div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;@Id&lt;br /&gt;@SequenceGenerator(name = "TABLE_NAME_SEQUENCE_GENERATOR", sequenceName = "TABLE_NAME_SEQUENCE")&lt;br /&gt;@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TABLE_NAME_SEQUENCE_GENERATOR")&lt;br /&gt;private Long id;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-994437755294723462?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/994437755294723462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=994437755294723462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/994437755294723462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/994437755294723462'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/11/seam-gen-and-oracle-express.html' title='Seam-gen and Oracle Express'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3299671193325360407</id><published>2008-10-21T21:03:00.008-04:00</published><updated>2008-10-23T10:30:21.200-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBossTools'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Web Services'/><title type='text'>JBossWS Eclipse JUnit Error</title><content type='html'>I played with JBossWS for the first time this evening.  I'm runningEclipse with &lt;a href="http://www.jboss.org/tools/"&gt;JBossTools&lt;/a&gt; installed. It was easy enough to compile (Ant task) and import the project into Eclipse.&lt;br /&gt;&lt;br /&gt;However,  when I ran the tests I got a "Java Virtual Machine Error." The popup read &lt;span class="postbody"&gt;"Could not find the main class. Program will exit."  There's an &lt;a href="http://www.jboss.com/index.html?module=bb&amp;amp;op=viewtopic&amp;amp;t=134022"&gt;post&lt;/a&gt; about this in the JBoss forums but no answer.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="postbody"&gt;The tests run from Ant (even within Eclipse.)  While running the tests from the command line a second time I noticed the following message :&lt;br /&gt;&lt;/span&gt;&lt;span class="postbody"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;tests-prepare:&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;     [echo]&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;     [echo] -----------------------------------------------&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;     [echo] jboss.home   = C:/tools/servers/jboss/jboss-4.2.3.GA&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;     [echo] excludesfile = C:\tools\jbossws\jbossws-native-3.0.4.GA\jbossws-native-bin-dist/tests/resources/test-exclude&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;s-jboss423.txt&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;     [echo] java.home    = C:\tools\java\j2se5.0u16\jre&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;It's pointing to the jre of my java home for some reason.  I check the environment variable by running, &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;echo %JAVA_HOME%&lt;/span&gt;&lt;/span&gt;, but it is pointing to the base install not just the jre.&lt;br /&gt;&lt;br /&gt;Searching through the project for "jre" doesn't return anything.  I hate to give up before I find a solution, but I had stuff to get done.&lt;br /&gt;&lt;br /&gt;I ran the "ant eclipse" task again and imported into a fresh Eclipse install.  No problem running the tests.&lt;br /&gt;&lt;br /&gt;I'll try to reproduce and file a Jira issue.  I thought I'd post this just in case anyone else is banging their head against the same wall.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3299671193325360407?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3299671193325360407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3299671193325360407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3299671193325360407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3299671193325360407'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/10/jbossws.html' title='JBossWS Eclipse JUnit Error'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-459132522419461798</id><published>2008-10-16T10:09:00.001-04:00</published><updated>2008-10-16T10:09:08.695-04:00</updated><title type='text'>Running Eclipse in a full JDK</title><content type='html'>After installing the &lt;a href="http://m2eclipse.codehaus.org"&gt;Maven plugin&lt;/a&gt; I got a warning that Eclipse should run in a full jdk.&amp;nbsp; The &lt;a href="http://wiki.eclipse.org/Eclipse.ini"&gt;solution&lt;/a&gt; is really simple (and on the &lt;a href="http://wiki.eclipse.org/Eclipse.ini"&gt;Eclipse wiki&lt;/a&gt;), and I was kind of surprised I hadn't run into this before.&lt;br /&gt;&lt;br /&gt;Simply add the following to eclipse.ini (found in the Eclipse install folder) :&lt;br /&gt;-vm&lt;br /&gt;&lt;span style="font-style: italic;"&gt;path-to-your-jdk&lt;/span&gt; (C:\tools\java\j2se5.0u16\bin\javaw.exe for example)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-459132522419461798?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/459132522419461798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=459132522419461798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/459132522419461798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/459132522419461798'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/10/running-eclipse-in-full-jdk.html' title='Running Eclipse in a full JDK'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-6247582390247690544</id><published>2008-09-25T12:28:00.001-04:00</published><updated>2008-09-25T12:28:27.748-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gVim'/><title type='text'>gVim</title><content type='html'>Want to change your font in gVim?&amp;nbsp; &lt;a href="http://www.troubleshooters.com/linux/vifont.htm"&gt;Here's how&lt;/a&gt;.&amp;nbsp; I love the title of that page, "&lt;a href="http://http://www.troubleshooters.com/linux/vifont.htm"&gt;Troubleshooters.com and T.C Linux Library Present Permananetly Changing Your Graphical Vim Font&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;If you want to change the color scheme, edit your _vimrc file on Windows, which is located in :&amp;nbsp; C:\Program Files\Vim.&amp;nbsp; Simply add "colors [name of the color theme you want to use]."&amp;nbsp; The themes themselves can be found in C:\Program Files\Vim\vim72\colors.&amp;nbsp; I like "darkblue."&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-6247582390247690544?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/6247582390247690544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=6247582390247690544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6247582390247690544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/6247582390247690544'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/09/gvim.html' title='gVim'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3792007540221236023</id><published>2008-09-25T10:56:00.001-04:00</published><updated>2008-09-25T10:56:40.762-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hbm2ddl'/><category scheme='http://www.blogger.com/atom/ns#' term='Seam'/><category scheme='http://www.blogger.com/atom/ns#' term='HSQLDB'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>Seam-gen, HSQLDB and development schemas</title><content type='html'>I like using HSQLDB's in memory db for early development.&amp;nbsp; Changes the annotations on my entities and letting hbm2ddl create the schema (tables actually which is what this post is about) for me is way useful.&amp;nbsp; One of the best things about Seam IMHO.&lt;br /&gt;&lt;br /&gt;I ran into an error in my curent project which I set up using seam-gen and giving it a schema name of "PROJECTDEV."&amp;nbsp; After creating an entity class, "Job" I ran "seam generate-ui" from my project directory.&amp;nbsp; I deployed expecting to see the default crud screens that seam generates.&amp;nbsp; However, when I clicked on the "Job List" link I got an error.&amp;nbsp; The console told me something was wrong with my schema : &lt;br /&gt;&lt;br /&gt;Caused by: java.sql.SQLException: invalid schema name in statement&lt;br /&gt;&lt;br /&gt;And looking further back in the logs I found error messages from Seam while the schema export was running:&lt;br /&gt;&lt;br /&gt;[SchemaExport] invalid schema name: PROJECTDEV in statement&lt;br /&gt;&lt;br /&gt;Poking around the web I found some references to this problem on the &lt;a href="http://forum.hibernate.org/viewtopic.php?t=943781&amp;amp;start=0&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight="&gt;Hibernate forums&lt;/a&gt;, JBoss forums and &lt;a href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-1853"&gt;JBoss&lt;/a&gt; &lt;a href="http://opensource.atlassian.com/projects/hibernate/browse/HBX-730"&gt;Jira&lt;/a&gt;.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;I tried putting :&lt;br /&gt;&lt;br /&gt;CREATE SCHEMA PROJECTDEV AUTHORIZATION DBA; &lt;br /&gt;&lt;br /&gt;in my import.sql file, but that didn't work.&amp;nbsp; Same errors.&lt;br /&gt;&lt;br /&gt;I had to create the schema manually in the HSQLDB database manager (I have a &lt;a href="http://arrogantprogrammer.blogspot.com/2007/08/enabling-hsqld-hypersonic-console-in.html"&gt;post&lt;/a&gt; on how to use this if you don't already know how.)&amp;nbsp; After that everything worked fine.&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3792007540221236023?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3792007540221236023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3792007540221236023' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3792007540221236023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3792007540221236023'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/09/seam-gen-hsqldb-and-development-schemas.html' title='Seam-gen, HSQLDB and development schemas'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5767961147243339349</id><published>2008-09-19T11:31:00.001-04:00</published><updated>2008-09-19T11:31:55.989-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SLF4j'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='dbunit'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>DBUnit and slf4j</title><content type='html'>I had never heard of &lt;a href="http://www.slf4j.org/"&gt;slf4j&lt;/a&gt; before this morning, and I have no idea why.&amp;nbsp; I'm usually pretty up on stuff.&lt;br /&gt;&lt;br /&gt;I started to pull some test data with &lt;a href="http://www.dbunit.org/index.html"&gt;dbunit&lt;/a&gt; ( in case you aren't familiar with dbunit &lt;a href="http://www.oreillynet.com/onjava/blog/2005/10/dbunit_made_easy.html"&gt;here's an excellent intro&lt;/a&gt; by &lt;a href="http://billsiggelkow.com/"&gt;Bill Siggelkow&lt;/a&gt; ), and when I ran it I got the following error :&lt;br /&gt;&lt;br /&gt;Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.dbunit.database.AbstractDatabaseConnection.&amp;lt;clinit&amp;gt;(AbstractDatabaseConnection.java:46)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at [&lt;span style="font-style: italic;"&gt;my package and class&lt;/span&gt;].main(DBUnitExporter.java:62)&lt;br /&gt;&lt;br /&gt;The solution is to &lt;a href="http://www.slf4j.org/download.html"&gt;download slf4j&lt;/a&gt;, and add slf4j-api-1.5.2.jar and slf4j-log4j12-1.5.2.jar to the classpath (I'm using &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; so I threw it in the run dialog.)&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5767961147243339349?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5767961147243339349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5767961147243339349' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5767961147243339349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5767961147243339349'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/09/dbunit-and-slf4j.html' title='DBUnit and slf4j'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1713244506287391397</id><published>2008-07-21T15:34:00.002-04:00</published><updated>2008-07-26T07:02:07.276-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>HIbernate join tables or xref tables or cross reference tables or cross-reference tables</title><content type='html'>I just spent a bit of time figuring out how to do bidirectional one-to-many mappings that are associated with a join table / xref / cross reference / cross-reference (I'm spelling all of these out in the event that some other poor soul is searching those terms) and exist in separate schemas.&lt;br /&gt;&lt;br /&gt;Its actually &lt;a href="http://www.hibernate.org/hib_docs/reference/en/html/associations.html"&gt;spelled out&lt;/a&gt; (not the separate schema part, but that's easy) on the &lt;a href="http://www.hibernate.org/"&gt;hibernate site&lt;/a&gt; which shouldn't be surprising since its an excellent site.&lt;br /&gt;&lt;br /&gt;There are two tricks to making this work :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Map the children into the parent as a many-to-many, but set "unique='true'" in the mapping.&lt;/li&gt;&lt;li&gt;Map the join table into the child object.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;In my case this meant something along the lines of this in the parent :&lt;br /&gt;        &amp;lt;set name="children" table="XREF" schema="PARENT_SCHEMA"&lt;br /&gt;            lazy="false" inverse="true"&amp;gt;&lt;br /&gt;            &amp;lt;key column="XREF_PARENT_ID" not-null="true" /&amp;gt;&lt;br /&gt;            &amp;lt;many-to-many unique="true" column="XREF_CHILD_ID" class="com.jeremyrdavis.Child"  /&amp;gt;&lt;br /&gt;        &amp;lt;/set&amp;gt;&lt;br /&gt;&lt;br /&gt;And this in the child :&lt;br /&gt;        &amp;lt;join table="PARENT_SCHEMA.XREF" inverse="true" optional="true" &amp;gt;&lt;br /&gt;            &amp;lt;key column="XREF_CHILD_ID" not-null="true" /&amp;gt;&lt;br /&gt;            &amp;lt;many-to-one name="group" column="XREF_PARENT_ID" not-null="true"&amp;gt;&amp;lt;/many-to-one&amp;gt;&lt;br /&gt;        &amp;lt;/join&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1713244506287391397?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1713244506287391397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1713244506287391397' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1713244506287391397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1713244506287391397'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/07/hibernate-join-tables-or-xref-tables-or.html' title='HIbernate join tables or xref tables or cross reference tables or cross-reference tables'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5331676327314985246</id><published>2008-07-16T22:09:00.003-04:00</published><updated>2008-07-18T21:23:39.957-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Terracotta'/><title type='text'>Terracotta at  July's AJUG</title><content type='html'>Last Tuesday's &lt;a href="http://www.ajug.org"&gt;AJUG&lt;/a&gt; (that's the Atlanta Java User's Group) presentation by Kunal Bhasin, a field engineer at &lt;a href="http://www.terracottatech.com/"&gt;Terracotta&lt;/a&gt;, ruled.  First of all, Kunal did a bang up job of fielding a ton of questions, and most of crowd stayed around an extra half hour for his presentation.  Second, Terracotta has a seriously cool app.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've attend &lt;a href="http://www.ajug.org"&gt;AJUG&lt;/a&gt; regularly (meaning most of them) for the past few years.  Burr Sutter who runs &lt;a href="http://www.ajug.org"&gt;AJUG&lt;/a&gt; and is the product manager for JBoss ESB does a great job with the speakers, but there have been a few that really stand out.  I got introduced to both &lt;a href="http://hibernate.org/"&gt;Hibernate&lt;/a&gt; and &lt;a href="http://www.springframework.org/"&gt;Spring&lt;/a&gt; (although I had read about Hibernate previously) a few years back at &lt;a href="http://www.ajug.org"&gt;AJUG&lt;/a&gt; meetings, and on both occasions got the feeling that those technologies were not only worth using but would be really big.  I got a similar impression about &lt;a href="http://www.terracottatech.com/"&gt;Terracotta&lt;/a&gt;; although, its nothing like either &lt;a href="http://hibernate.org/"&gt;Hibernate&lt;/a&gt; or &lt;a href="http://www.springframework.org/"&gt;Spring&lt;/a&gt;.  Its actually pretty invisible to developers, which is the point.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In a nutshell (echoes of O'Reilly?) Terracotta's server(s) controls the objects for numerous JVMs allowing applications from each to access the same instances without any special apis.   I'm sure there's plenty of information on their site, and if you are an architect or have had to worry about clustering, caching or scaling then check it out.  They have separate sites for the &lt;a href="http://www.terracottatech.com"&gt;commercial&lt;/a&gt; and &lt;a href="http://www.terracotta.org/"&gt;open source versions&lt;/a&gt; (a lot like &lt;a href="http://www.jboss.com/"&gt;JBoss.com&lt;/a&gt; and &lt;a href="www.jboss.org/"&gt;JBoss.org&lt;/a&gt; - is this going to be the standard for oss business models now?)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bill Sengstacken, who is in marketing, is going to post a video, and there should be a link on the &lt;a href="http://www.ajug.org"&gt;AJUG&lt;/a&gt; site at some point.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5331676327314985246?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5331676327314985246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5331676327314985246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5331676327314985246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5331676327314985246'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/07/terracotta-at-julys-ajug.html' title='Terracotta at  July&apos;s AJUG'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5064720217540450089</id><published>2008-06-04T09:25:00.001-04:00</published><updated>2008-06-04T09:25:58.419-04:00</updated><title type='text'>Excellent post about Seam and Google bots</title><content type='html'>I haven't blogged in ages so it is pretty lame to simply link to someone else's post; however, &lt;a href="http://chiralsoftware.com/launching-a-jboss-seam-site/jboss-seam-problems.seam"&gt;this&lt;/a&gt; is an excellent piece of work.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Its about dealing with &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt; bots that can crash a &lt;a href="http://seamframework.org/"&gt;Seam&lt;/a&gt; site.&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5064720217540450089?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5064720217540450089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5064720217540450089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5064720217540450089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5064720217540450089'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/06/excellent-post-about-seam-and-google.html' title='Excellent post about Seam and Google bots'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3164417078367971023</id><published>2008-04-30T14:40:00.001-04:00</published><updated>2008-04-30T14:40:20.120-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>'findstr' is not recognized as an internal or external command</title><content type='html'>I got this error starting JBoss from a dos prompt today :&lt;br /&gt;&lt;font size="3"&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="font-family: Lucida Grande;" class="wikiContent"&gt; 'findstr' is not recognized as an internal or external command&lt;/span&gt;&lt;br style="font-family: Lucida Grande;" /&gt;&lt;/font&gt;&lt;br /&gt;I guess I had been using the ide more than usual since re-imaging my laptop.&amp;nbsp; The problem was pretty easily resolved thanks to &lt;a href="http://wiki.jboss.org/wiki/FindstrCommandNotFound"&gt;this post&lt;/a&gt; on &lt;a href="http://wiki.jboss.org/wiki/Main"&gt;JBoss wiki&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I added C:\WINDOWS\system32 to my PATH variable and everything booted.&lt;span class="wikiContent"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="wikiContent"&gt;&lt;/span&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3164417078367971023?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3164417078367971023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3164417078367971023' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3164417078367971023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3164417078367971023'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/04/is-not-recognized-as-internal-or.html' title='&amp;#39;findstr&amp;#39; is not recognized as an internal or external command'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-8681607955367225897</id><published>2008-04-25T08:51:00.002-04:00</published><updated>2008-04-25T08:52:54.214-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><title type='text'>Printing Arrays in Groovy</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Arial;"&gt;    While working through the &lt;/span&gt;&lt;a style="font-family: Arial;" href="http://groovy.codehaus.org/JN1025-Arrays"&gt;arrays page&lt;/a&gt;&lt;span style="font-family:Arial;"&gt; of the &lt;/span&gt;&lt;a style="font-family: Arial;" href="http://groovy.codehaus.org/Getting+Started+Guide"&gt;Getting Started Guide&lt;/a&gt;&lt;span style="font-family:Arial;"&gt; at the Groovy &lt;/span&gt;&lt;a style="font-family: Arial;" href="http://groovy.codehaus.org/"&gt;codehaus &lt;/a&gt;&lt;span style="font-family:Arial;"&gt;site, I stumbled upon some interesting behaviour.&lt;/span&gt;  &lt;span style="font-family:Arial;"&gt;I was adding "print" statements to the following block of code :&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre  style="font-family:Arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="code-keyword"&gt;&lt;/span&gt;&lt;span class="code-keyword"  style="font-family:Courier;"&gt;assert&lt;/span&gt;&lt;span style="font-family:Courier;"&gt; a as List == ['a', 2, 'c', &lt;/span&gt;&lt;span class="code-keyword"  style="font-family:Courier;"&gt;false&lt;/span&gt;&lt;span style="font-family:Courier;"&gt;]&lt;/span&gt; &lt;span class="code-keyword"  style="font-family:Courier;"&gt;&lt;/span&gt;&lt;br /&gt;so that I ended up with :&lt;br /&gt;&lt;span class="code-keyword"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="code-keyword"&gt;&lt;/span&gt;&lt;span class="code-keyword"&gt;&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier;"&gt; "\na as List : " + a as List&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="code-keyword"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;The result wasn't what I expected : &lt;/span&gt; &lt;/pre&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier;"&gt;["\n", "a", " ", "a", "s", " ", "L", "i", "s", "t", " ", ":", " ", "{", "\"", "a", "\"", ",", " ", "2", ",", " ", "\"", "f", "o", "o", "\"", ",", " ", "f", "a", "l", "s", "e", "}"]&lt;/span&gt;  &lt;span style="font-family:Arial;"&gt;I added parentheses around the "a as List" and got what I expected :&lt;/span&gt;  &lt;span style="font-family:Courier;"&gt;a as List : ["a", 2, "foo", false]&lt;/span&gt;  &lt;span style="font-family:Arial;"&gt;Simple lesson : pay attention to precedence!  That or drink coffee first thing in the morning. &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;Also, turning the whole string into a list that easily is cool.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;   &lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-8681607955367225897?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/8681607955367225897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=8681607955367225897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/8681607955367225897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/8681607955367225897'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/04/printing-arrays-in-groovy.html' title='Printing Arrays in Groovy'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1868742822591188807</id><published>2008-04-18T16:12:00.002-04:00</published><updated>2008-04-18T16:14:35.337-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>Netbeans Keyboard Shortcuts</title><content type='html'>I've been using &lt;a href="http://www.netbeans.org/"&gt;Netbeans&lt;/a&gt; some recently after a the &lt;a href="http://developers.sun.com/events/techdays/"&gt;Sun Tech Days&lt;/a&gt; (Atlanta) and an &lt;a href="http://ajug.org/"&gt;AJUG&lt;/a&gt; presentation on &lt;a href="https://glassfish.dev.java.net/"&gt;Glassfish&lt;/a&gt;.  &lt;a href="http://www.yepthatsme.com/"&gt;Barry Hawkins&lt;/a&gt;' announcement at last night's (April) &lt;a href="http://ajug.org/"&gt;AJUG&lt;/a&gt; meeting about  upcoming Python support really piqued my interest and made me decide to get comfortable  using it.&lt;br /&gt;&lt;br /&gt;My biggest annoyance when switching IDEs is not knowing the keyboard shortcuts.  I despise the mouse and keep it on the left side of my desk (I'm right handed) - a &lt;a href="http://www.nealford.com/"&gt;Neal Ford&lt;/a&gt; suggestion.  There is a pdf of shortcuts accessible from &lt;a href="http://www.netbeans.org/"&gt;Netbeans&lt;/a&gt;' help menu, but there is a more &lt;a href="http://wiki.netbeans.org/KeymapProfileFor60"&gt;complete list&lt;/a&gt; available on their &lt;a href="http://wiki.netbeans.org/"&gt;wiki&lt;/a&gt;.&lt;br /&gt;&lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1868742822591188807?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1868742822591188807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1868742822591188807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1868742822591188807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1868742822591188807'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/04/netbeans-keyboard-shortcuts.html' title='Netbeans Keyboard Shortcuts'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-289136271640556975</id><published>2008-04-08T12:18:00.002-04:00</published><updated>2008-04-08T12:19:32.466-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AppEngine'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Google AppEngine</title><content type='html'>New &lt;a href="http://code.google.com/appengine/"&gt;Google AppEngine&lt;/a&gt;! &lt;br /&gt;&lt;br /&gt;Sweet, couldn't wait to use it.  I started the &lt;a href="http://code.google.com/appengine/docs/gettingstarted/helloworld.html"&gt;tutorial&lt;/a&gt; during lunch. I downloaded and installed &lt;a href="http://www.python.org/download/"&gt;Python&lt;/a&gt; and the &lt;a href="http://code.google.com/appengine/downloads.html"&gt;AppEngine&lt;/a&gt;.  Then I created a work directory, "C:\google_workspace" and a helloworld folder, "C:\google_workspace\helloworld" just like the &lt;a href="http://code.google.com/appengine/docs/gettingstarted/helloworld.html"&gt;tutorial&lt;/a&gt; said to do, created the files "helloworld.py" and "app.yaml" just like in the &lt;a href="http://code.google.com/appengine/docs/gettingstarted/helloworld.html"&gt;tutorial&lt;/a&gt;, and fired up the dev_appserver with, "C:\google_workspace\helloworld&amp;gt;dev_appserver.py helloworld\".  Instead of "Hello, world!" I got :&lt;br /&gt;&lt;br /&gt;C:\google_workspace\helloworld&amp;gt;dev_appserver.py helloworld/&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;  File "C:\Program Files\Google\google_appengine\dev_appserver.py", line 50, in&lt;br /&gt;&amp;lt;module&amp;gt;&lt;br /&gt;    execfile(script_path, globals())&lt;br /&gt;  File "C:\Program Files\Google\google_appengine\google/appengine/tools/dev_apps&lt;br /&gt;erver_main.py", line 338, in &amp;lt;module&amp;gt;&lt;br /&gt;    sys.exit(main(sys.argv))&lt;br /&gt;  File "C:\Program Files\Google\google_appengine\google/appengine/tools/dev_apps&lt;br /&gt;erver_main.py", line 287, in main&lt;br /&gt;    config, matcher = dev_appserver.LoadAppConfig(root_path, {})&lt;br /&gt;  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_apps&lt;br /&gt;erver.py", line 2415, in LoadAppConfig&lt;br /&gt;    raise AppConfigNotFoundError&lt;br /&gt;google.appengine.tools.dev_appserver.AppConfigNotFoundError&lt;br /&gt;&lt;br /&gt;Hmm.  I ran through a mental checklist before diving into the code (I knew I was being lazy.  I  was also really looking forward to diving into the code, but I wanted to at least get the thing running first.) &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Perhaps I should've installed somewhere other than "C:\Program Files"  I don't usually put anything in there.&lt;/li&gt;&lt;li&gt;Apparently I had Tomcat running which would be blocking 80 (I usually set Tomcat to 80 and JBoss to 8080).&lt;/li&gt;&lt;/ul&gt;Neither of those made a difference.  "I, d, ten, t" error - I was running the wrong file.&lt;br /&gt;&lt;br /&gt;Running, "C:\google_workspace\helloworld&amp;gt;dev_appserver.py ./" started the server.&lt;br /&gt;&lt;br /&gt;The first line was a prompt, "Allow dev_appserver to check for updates on startup? (Y/n):"&lt;br /&gt;Naturally I said "Y", and I liked name of the config file which was conveniently printed out on the next line, "dev_appserver will check for updates on startup.  To change this setting, edit C&lt;br /&gt;:\Documents and Settings\jdavis/.appcfg_nag"&lt;br /&gt;&lt;br /&gt;I saw "Hello, world!" &lt;br /&gt;&lt;br /&gt;I can't wait to start using this.  Now I can finally build a completely scalable side project to make myself rich without spending any money out of pocket!  Actually, I can finally stop putting off learning &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;.&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-289136271640556975?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/289136271640556975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=289136271640556975' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/289136271640556975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/289136271640556975'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/04/google-appengine.html' title='Google AppEngine'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5289536438536707513</id><published>2008-02-28T10:25:00.003-05:00</published><updated>2008-02-28T13:41:23.548-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><category scheme='http://www.blogger.com/atom/ns#' term='yes_no'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate Search'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Hibernate reverse engineering and "yes_no" columns</title><content type='html'>Since attending JBossWorld Orlando, I've been playing with the JBoss Developer Studio.  I've had some problems with reverse generation of my entities, and so I thought I'd post some of the solutions.&lt;br /&gt;&lt;br /&gt;My database uses logical deletes ("Y" and "N".)  The generated entities, which were typed as Boolean's choked on insert.&lt;br /&gt;&lt;br /&gt;I haven't had much luck yet customizing the generation from the JBoss Developer Studio menu , and so I've been using the Hibernate Tools for Eclipse to generate my entities into a separate project, &lt;span style="font-style: italic;"&gt;ModelProject&lt;/span&gt;, and then copying them into a seam project.&lt;br /&gt;&lt;br /&gt;My plan was to use Seam tools to generate the crud ui from the project.  However, right clicking the project and choosing "New -&amp;gt; Seam Generate Entities" and then selecting "Use existing entities" didn't do anything.&lt;br /&gt;&lt;br /&gt;I started over and did the following :&lt;br /&gt;ran seam-gen from the command line and created a new project, &lt;span style="font-style: italic;"&gt;SeamProject&lt;/span&gt;&lt;br /&gt;imported the resulting project into Eclipse&lt;br /&gt;copied the reverse-engineered entities from &lt;span style="font-style: italic;"&gt;ModelProject&lt;/span&gt; into &lt;span style="font-style: italic;"&gt;SeamProject&lt;/span&gt;&lt;br /&gt;ran "seam generate-ui" from the command line&lt;br /&gt;&lt;br /&gt;This worked beautifully.  The only hitch was I kept getting a vague error from DB2/400 when I tried to create a new entity, "[SQL0545] INSERT or UPDATE not allowed by CHECK constraint."&lt;br /&gt;&lt;br /&gt;I checked all the constraints and after a few failed attempts determined that I wasn't violating any foreign keys.  There were only a couple of not null fields one of which was the logical delete column.  I had entered the translation I wanted into the hibernate.reveng.xml file (or at least I thought I had), but there was no annotation for "yes_no."  I simply added @Type(type="yes_no") to the field, and everything worked.&lt;br /&gt;&lt;p style="text-align: right; font-size: 8px;"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5289536438536707513?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5289536438536707513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5289536438536707513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5289536438536707513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5289536438536707513'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/02/hibernate-reverse-engineering-and.html' title='Hibernate reverse engineering and &amp;quot;yes_no&amp;quot; columns'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-226547769653002945</id><published>2008-02-15T16:32:00.003-05:00</published><updated>2008-02-15T16:51:03.075-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBossWorld'/><category scheme='http://www.blogger.com/atom/ns#' term='JSFUnit'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>JBoss World Orlando - Friday</title><content type='html'>&lt;span style="font-weight: bold;"&gt;EJB3, Seam, JSF, and RichFaces on JBoss 4.2.0&lt;/span&gt; was the first session I attended.  It was a case study of easycredit a German loan system.  I've found the case studies useful.&lt;br /&gt;&lt;br /&gt;The second session I attended was a 90 minute &lt;span style="font-weight: bold;"&gt;JBoss Developer Studio&lt;/span&gt; workshop.  I had already installed the JBoss Tools project into Eclipse so I was glancingly familiar with it; however, I've used seam-gen for the projects I've been working on and hadn't made use of the Developer Studio tooling.  Reverse engineering a domain model is stupidly simple.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Agile Development Using JBoss Seam&lt;/span&gt; was the third session I attended.  Daniel Hinojosa was the speaker, and he had some cool tips on using Groovy for unit testing that I want to check out.  He also showed off some stuff that I didn't know Hudson could do.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Testing JSF Applications&lt;/span&gt; which was an intro to &lt;a href="http://labs.jboss.com/jsfunit/"&gt;JSFUnit&lt;/a&gt; by Stan Silvert was another session that I really liked, meaning I will start using &lt;a href="http://labs.jboss.com/jsfunit/"&gt;JSFUnit&lt;/a&gt; next week.  The executive summary is that resulting from his hatred of Mock objects, Stan created a JSF testing framework that works inside the the container without all the overhead of &lt;a href="http://jakarta.apache.org/cactus/"&gt;Cactus&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-226547769653002945?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/226547769653002945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=226547769653002945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/226547769653002945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/226547769653002945'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/02/jboss-world-orlando-friday.html' title='JBoss World Orlando - Friday'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-115059227463357904</id><published>2008-02-15T13:45:00.003-05:00</published><updated>2008-02-15T13:49:00.533-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBossWorld'/><title type='text'>Some Other JBossWorld Bloggers</title><content type='html'>Daniel Hinojosa is currently speaking (I'm in his seminar now) and blogging about the show on his &lt;a href="http://evolutionnext.com/blog/"&gt;evolutionnext&lt;/a&gt; blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-115059227463357904?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/115059227463357904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=115059227463357904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/115059227463357904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/115059227463357904'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/02/some-other-jbossworld-bloggers.html' title='Some Other JBossWorld Bloggers'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4837014778437867390</id><published>2008-02-14T09:48:00.006-05:00</published><updated>2008-02-14T17:14:05.264-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBossWorld'/><category scheme='http://www.blogger.com/atom/ns#' term='Gartner'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate Search'/><category scheme='http://www.blogger.com/atom/ns#' term='JBossRules'/><category scheme='http://www.blogger.com/atom/ns#' term='Drools'/><title type='text'>JBoss World Orlando - Thursday</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Introduction into JBoss Drools and the Business Rules Management System (BRMS) &lt;/span&gt;by Mark Proctor was the first session I attended.&lt;br /&gt;&lt;br /&gt;Drools/JBoss rules is really cool.  The web based BRMS system looks very nice, and offloading the maintenance to the business users is a must anyway.   I'll be using this soon.&lt;br /&gt;&lt;br /&gt;I found the &lt;span style="font-weight: bold;"&gt;keynote&lt;/span&gt; by Vefim Natis from Gartner  interesting.  Although I am way tired of hearing about SOA I still got a lot out of his talk.  Some of his points :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Gartner's hype cycle currently puts SOA entering mainstream acceptance.&lt;/li&gt;&lt;li&gt;SOA is primarily about business modeling : identifying the business components that need to be developed as software.&lt;/li&gt;&lt;li&gt;Establishment of an Integration/SOA Competency Center (ICC) is the barometer of success&lt;/li&gt;&lt;li&gt;Heterogenous software/environments are not only necessary, but should be regarded as a goal.&lt;/li&gt;&lt;/ul&gt;The &lt;span style="font-weight: bold;"&gt;Hibernate Search&lt;/span&gt; session was impressive.   Emmanuel Bernard, the project's team lead was the presenter.  I didn't have a lot of experience using Lucene (one project a few years ago), but it looked like they've done a nice job wrapping Lucene and providing an API that should be familiar to Hibernate users.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4837014778437867390?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4837014778437867390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4837014778437867390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4837014778437867390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4837014778437867390'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/02/jboss-world-orlando-thursday.html' title='JBoss World Orlando - Thursday'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5295647045363632363</id><published>2008-02-13T12:44:00.002-05:00</published><updated>2008-02-14T17:16:56.029-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBossWorld'/><category scheme='http://www.blogger.com/atom/ns#' term='jBPM'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>JBoss World Orlando - Wednesday</title><content type='html'>I'm at &lt;span style="font-weight: bold;"&gt;JBossWorld Orlando&lt;/span&gt;.  We got the usual t-shirt and bag, but the 1G flash drive was definitely the best schwag I've picked up (I didn't take a single pen during the vendor meet and greet!)&lt;br /&gt;&lt;br /&gt;I checked out the &lt;span style="font-weight: bold;"&gt;jBPM&lt;/span&gt; session, "A Lightweight Approach to Business Processes With JBoss jBPM", first.  I would've liked more practical use information, but the overview of the jBPM platform, which is how &lt;a href="http://blogs.jboss.com/blog/tbaeyens/"&gt;Tom Bayens&lt;/a&gt; described it, was interesting.&lt;br /&gt;&lt;br /&gt;The next session on "&lt;span style="font-weight: bold;"&gt;Seam, SEAM, AS, EJB3, Hibernate, AJAX4JSF, RichFaces, and Facelets&lt;/span&gt;", was given by four guys from Big Lots.  It was an excellent talk.  I don't know how much presenting they do, but they traded off easily and kept the talk moving really well.  It didn't hurt that their case study was very relevant to the project I'm working on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5295647045363632363?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5295647045363632363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5295647045363632363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5295647045363632363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5295647045363632363'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/02/jboss-world-orlando-wednesday.html' title='JBoss World Orlando - Wednesday'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1308957519505449869</id><published>2008-01-31T16:37:00.002-05:00</published><updated>2008-02-14T18:13:35.182-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin.xml'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>Server did not start after 50s</title><content type='html'>I got this error while starting up JBoss from Eclipse, 3.3 with the latest JBoss Tools installed (I haven't shelled out the $100 for Red Hat Developer Studio.)  &lt;br /&gt;&lt;br /&gt;"Timeout waiting for JBOSS 4.2 to start. Server did not start after 50s."&lt;br /&gt;&lt;br /&gt;At December's AJUG meeting I saw a demonstration of Glassfish starting in under a minute, which was seriously impressive.  However, Eclipse can't be pimping Glassfish, and while I am interested in giving Glassfish a look, I need this running now.  Besides, I &lt;span style="font-style: italic;"&gt;like&lt;/span&gt; JBoss.&lt;br /&gt;&lt;br /&gt;I deleted a couple of the ear files that I wasn't working on, but I kept getting the timeout error.  A quick Google, and I located the following folders in my  &lt;span style="font-style: italic;"&gt;EclipseDist&lt;/span&gt;\plugins directory :&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;org.eclipse.jst.server.generic.jboss_1.5.102.v20070608&lt;/li&gt;&lt;li&gt;org.eclipse.jst.server.generic.jboss_1.5105.v200709061325. &lt;/li&gt;&lt;/ul&gt;I edited the plugin.xml in the &lt;span style="font-style: italic;"&gt;&lt;/span&gt;org.eclipse.jst.server.generic.jboss_1.5105.v200709061325 folder.   The relevant parts were the serverType entries, startTimeout parameters.&lt;br /&gt;&lt;br /&gt;&amp;lt;extension point="org.eclipse.wst.server.core.serverTypes"&amp;gt;&lt;br /&gt;      &amp;lt;serverType&lt;br /&gt;    runtime="true"&lt;br /&gt;                class="org.eclipse.jst.server.generic.core.internal.GenericServer"&lt;br /&gt;                id="org.eclipse.jst.server.generic.jboss323"&lt;br /&gt;                initialState="stopped"&lt;br /&gt;                supportsRemoteHosts="false"&lt;br /&gt;                runtimeTypeId="org.eclipse.jst.server.generic.runtime.jboss323"&lt;br /&gt;                description="%jboss323serverTypeDescription"&lt;br /&gt;                launchConfigId="org.eclipse.jst.server.generic.core.launchConfigurationType"&lt;br /&gt;                behaviourClass="org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour"&lt;br /&gt;                name="%jboss323serverTypeName"&lt;br /&gt;                &lt;span style="font-weight: bold;"&gt;startTimeout="50000"&lt;/span&gt;&lt;br /&gt;    stopTimeout="15000"&lt;br /&gt;                hasConfiguration="false"&lt;br /&gt;                launchModes="run,debug,profile"&amp;gt;&lt;br /&gt;      &amp;lt;/serverType&amp;gt;&lt;br /&gt;      &amp;lt;serverType&lt;br /&gt;                runtime="true"&lt;br /&gt;                class="org.eclipse.jst.server.generic.core.internal.GenericServer"&lt;br /&gt;                id="org.eclipse.jst.server.generic.jboss4"&lt;br /&gt;                initialState="stopped"&lt;br /&gt;    supportsRemoteHosts="false"&lt;br /&gt;                runtimeTypeId="org.eclipse.jst.server.generic.runtime.jboss4"&lt;br /&gt;                description="%jboss4serverTypeDescription"&lt;br /&gt;                launchConfigId="org.eclipse.jst.server.generic.core.launchConfigurationType"&lt;br /&gt;                behaviourClass="org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour"&lt;br /&gt;                name="%jboss4serverTypeName"&lt;br /&gt;                &lt;span style="font-weight: bold;"&gt;startTimeout="50000"&lt;/span&gt;&lt;br /&gt;             stopTimeout="15000"&lt;br /&gt;                hasConfiguration="false"&lt;br /&gt;                launchModes="run,debug,profile"&amp;gt;       &lt;br /&gt;      &amp;lt;/serverType&amp;gt;&lt;br /&gt;      &amp;lt;serverType&lt;br /&gt;    runtime="true"&lt;br /&gt;                class="org.eclipse.jst.server.generic.core.internal.GenericServer"&lt;br /&gt;    id="org.eclipse.jst.server.generic.jboss42"&lt;br /&gt;                initialState="stopped"&lt;br /&gt;                supportsRemoteHosts="false"&lt;br /&gt;                runtimeTypeId="org.eclipse.jst.server.generic.runtime.jboss42"&lt;br /&gt;                description="%jboss42serverTypeDescription"&lt;br /&gt;                launchConfigId="org.eclipse.jst.server.generic.core.launchConfigurationType"&lt;br /&gt;                behaviourClass="org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour"&lt;br /&gt;                name="%jboss42serverTypeName"&lt;br /&gt;                &lt;span style="font-weight: bold;"&gt;startTimeout="50000"&lt;/span&gt;&lt;br /&gt;             stopTimeout="15000"&lt;br /&gt;                hasConfiguration="false"&lt;br /&gt;                launchModes="run,debug,profile"&amp;gt;       &lt;br /&gt;      &amp;lt;/serverType&amp;gt;&lt;br /&gt;      &amp;lt;serverType&lt;br /&gt;    runtime="true"&lt;br /&gt;                class="org.eclipse.jst.server.generic.core.internal.GenericServer"&lt;br /&gt;                id="org.eclipse.jst.server.generic.jboss5"&lt;br /&gt;                initialState="stopped"   &lt;br /&gt;    supportsRemoteHosts="false"&lt;br /&gt;                runtimeTypeId="org.eclipse.jst.server.generic.runtime.jboss5"&lt;br /&gt;                description="%jboss5serverTypeDescription"&lt;br /&gt;                launchConfigId="org.eclipse.jst.server.generic.core.launchConfigurationType"&lt;br /&gt;                behaviourClass="org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour"&lt;br /&gt;                name="%jboss5serverTypeName"&lt;br /&gt;                &lt;span style="font-weight: bold;"&gt;startTimeout="50000"&lt;/span&gt;&lt;br /&gt;             stopTimeout="15000"&lt;br /&gt;                hasConfiguration="false"&lt;br /&gt;                launchModes="run,debug,profile"&amp;gt;       &lt;br /&gt;      &amp;lt;/serverType&amp;gt;&lt;br /&gt;&amp;lt;/extension&amp;gt;&lt;br /&gt;&lt;br /&gt;I changed the values to 180000 ms and JBoss booted just fine.&lt;p style="text-align: right; font-size: 8px;"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1308957519505449869?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1308957519505449869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1308957519505449869' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1308957519505449869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1308957519505449869'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2008/01/server-did-not-start-after-50s.html' title='Server did not start after 50s'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-9004819117366523101</id><published>2007-11-19T13:39:00.001-05:00</published><updated>2008-02-14T18:14:23.261-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Seam Tip Number 4</title><content type='html'>Seam Tip Number 4 : @In(required = false) pitfall&lt;br /&gt;&lt;br /&gt;In retrospect this is really obvious, but  a member variable annotated with @In will be overwritten in subsequent invocations of a Stateful Session Bean even with a "required = false" on the annotation.&lt;br /&gt;&lt;br /&gt;I had assumed that the "required = false" would prevent the variable from being injected if it wasn't present, but that isn't the case.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;p style="text-align: right; font-size: 8px"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-9004819117366523101?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/9004819117366523101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=9004819117366523101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/9004819117366523101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/9004819117366523101'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2007/11/seam-tip-number-4.html' title='Seam Tip Number 4'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-1407601707129296086</id><published>2007-11-07T10:25:00.002-05:00</published><updated>2008-02-14T18:15:30.036-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='extension'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>NumberFox</title><content type='html'>This is a completely cool &lt;a href="http://www.mozilla.com/"&gt;Firefox&lt;/a&gt; plugin that &lt;a href="http://www.nealford.com/"&gt;Neal Ford&lt;/a&gt; mentioned in his &lt;a href="http://www.nofluffjuststuff.com/speaker_topic_view.jsp?topicId=514"&gt;Productivity&lt;/a&gt; talk at &lt;a href="http://www.nofluffjuststuff.com/"&gt;No Fluff Just Stuff&lt;/a&gt; (I was at the Atlanta one.)&lt;br /&gt;&lt;br /&gt;Clicking ctrl + z or ctrl + w will display small, numbered boxes next to the clickable elements in a page.  You can then click the link by clicking the number and enter from the keyboard.&lt;br /&gt;&lt;p style="text-align: right; font-size: 8px;"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-1407601707129296086?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/1407601707129296086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=1407601707129296086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1407601707129296086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/1407601707129296086'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2007/11/numberfox.html' title='NumberFox'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-3714411725945541615</id><published>2007-10-30T15:17:00.001-04:00</published><updated>2008-02-14T18:14:23.262-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Seam Tip Number 3</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Seam Tip Number 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This isn't so much a tip, but a "gotcha" to avoid.&lt;br /&gt;&lt;br /&gt;Make sure that you have an &amp;lt;h:messages /&amp;gt; tag in your page and that it does &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; have "globalOnly" set to "true."&lt;br /&gt;&lt;br /&gt;I spent a lot of time wondering my my method wasn't getting called when the problem was a not null value being trapped.&lt;br /&gt;&lt;p style="text-align: right; font-size: 8px;"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-3714411725945541615?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/3714411725945541615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=3714411725945541615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3714411725945541615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/3714411725945541615'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2007/10/seam-tip-number-3.html' title='Seam Tip Number 3'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-5946559776923706426</id><published>2007-10-24T09:43:00.001-04:00</published><updated>2008-02-14T18:14:23.262-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Seam Tip Number 2</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Seam Tip Number 2&lt;/span&gt;&lt;br style="font-weight: bold;" /&gt;&lt;br /&gt;Keep insert statements inside the import.sql file on the same line.&lt;br /&gt;&lt;br /&gt;One of the coolest things about developing in Seam is the "create-drop" setting for data.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;If you create your project with seam-gen and choose "y" for the prompt, "Do you want to drop and recreate the database tables and data in import.sql each time you deploy?" there will be three files, import-dev.sql, import-test.sql and import-prod.sql.&amp;nbsp; The data in these files will be used to populate tables generated from your entities.&amp;nbsp; You can of course do this manually, but I want to be brief.&lt;br /&gt;&lt;br /&gt;I mocked up some data and redeployed, but I wasn't seeing anything when I hit the page.&amp;nbsp; Watching the log files after restarting the server showed an sql error on import which turned out to be the line break.&amp;nbsp; I was using Eclipse to edit the file so I found that odd, but stranger things have of course happened.&amp;nbsp; I removed the line breaks and everything worked.&lt;br /&gt;&lt;p style="text-align: right; font-size: 8px"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-5946559776923706426?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/5946559776923706426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=5946559776923706426' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5946559776923706426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/5946559776923706426'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2007/10/seam-tip-number-2.html' title='Seam Tip Number 2'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2445529843214641867.post-4152209071368873452</id><published>2007-10-23T08:07:00.001-04:00</published><updated>2008-02-14T18:14:23.263-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Seam Tip Number 1</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Seam Tip Number 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Seam-gen saves your defaults in the build.properties (Ant of course) file inside the [Seam dist]/seam-gen folder.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;If like me you have accidentally typed the wrong directory for your project workspace or the wrong directory for your db driver jar file, simply edit the build.properties and the defaults will change.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.jboss.com/seam/2.0.0.CR2/reference/en/html/gettingstarted.html"&gt;Seam-gen&lt;/a&gt; is a cool part of &lt;a href="http://labs.jboss.com/jbossseam/"&gt;JBoss Seam&lt;/a&gt;.&amp;nbsp; From the Seam docs, &lt;br /&gt;&lt;span style="font-style: italic;"&gt;"This is the easy way to get your feet wet with Seam, and gives you some ammunition for next time you find        yourself trapped in an elevator with one of those tedious Ruby guys ranting about how great and wonderful his        new toy is for building totally trivial applications that put things in databases."&lt;/span&gt;&lt;br /&gt; &lt;p style="text-align: right; font-size: 8px"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2445529843214641867-4152209071368873452?l=arrogantprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arrogantprogrammer.blogspot.com/feeds/4152209071368873452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2445529843214641867&amp;postID=4152209071368873452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4152209071368873452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2445529843214641867/posts/default/4152209071368873452'/><link rel='alternate' type='text/html' href='http://arrogantprogrammer.blogspot.com/2007/10/seam-tip-number-1.html' title='Seam Tip Number 1'/><author><name>jeremyrdavis</name><uri>http://www.blogger.com/profile/15604770943158550759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
