<?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:blogger='http://schemas.google.com/blogger/2008' 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-7830640718498208421</id><updated>2024-10-05T04:05:50.969+02:00</updated><category term="uni"/><category term="mmis2"/><category term="maven"/><category term="spring"/><category term="appfuse"/><category term="hibernate"/><category term="jetty"/><category term="mysql"/><category term="N95 8GB"/><category term="S60"/><category term="Wardriving"/><category term="association"/><category term="biblatex"/><category term="bibtex"/><category term="bug"/><category term="computer"/><category term="desktop"/><category term="eclipse"/><category term="java"/><category term="jmock"/><category term="jpa"/><category term="latex"/><category term="trusted computing"/><category term="usability"/><category term="vista"/><title type='text'>levs brainfukking blog</title><subtitle type='html'>Tagebuch eines Technikers</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-192303875809104331</id><published>2009-09-08T00:15:00.008+02:00</published><updated>2009-09-08T00:48:11.660+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="biblatex"/><category scheme="http://www.blogger.com/atom/ns#" term="bibtex"/><category scheme="http://www.blogger.com/atom/ns#" term="latex"/><title type='text'>Howto install BibLaTeX with MikTex</title><content type='html'>I recently found a pointer to BibLaTeX, a reimplementation of the bibliographic capabilities of LaTeX. It is still in beta stage&lt;br /&gt;MikTeX 2.7, BibLaTeX 0.8h&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download &lt;a href=&quot;http://www.ctan.org/tex-archive/help/Catalogue/entries/biblatex.html&quot;&gt;BibLaTeX.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Create a folder named &lt;code&gt;local-texmf&lt;/code&gt; (or choose a different name, it doesn&#39;t matter) somewhere on your hard drive. This folder will be used to install biblatex.&lt;/li&gt;&lt;li&gt;Create a folder named &lt;code&gt;local-texmf/tex/latex/biblatex&lt;/code&gt;. Unzip the contents of the &lt;code&gt;latex&lt;/code&gt;-subdirectory of biblatex package into this folder.&lt;/li&gt;&lt;li&gt;Create a folder named &lt;code&gt;local-texmf/doc/latex/biblatex/&lt;/code&gt;. Unzip the documentation into this folder.&lt;/li&gt;&lt;li&gt;Extract the remaining folders of the zip package into &lt;code&gt;local-texmf&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Open the &quot;Settings&quot;-window of MikTeX and choose add your folder as root. You might need admin rights for this.&lt;/li&gt;&lt;li&gt;Open the &quot;Settings&quot;-window and choose &quot;Refresh FNDB&quot;&lt;/li&gt;&lt;/ol&gt;That&#39;s it. Now you can use BibLaTeX!</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/192303875809104331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/192303875809104331' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/192303875809104331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/192303875809104331'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2009/09/howto-install-biblatex-with-miktex.html' title='Howto install BibLaTeX with MikTex'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-6863315619846662668</id><published>2009-02-22T01:57:00.003+01:00</published><updated>2009-02-22T02:03:57.427+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><title type='text'>Display result of select in vertical format</title><content type='html'>Sometimes the default way of displaying query results in tabular format can be quite annoying. Escpecially, when you have to view them i a small CL window. Fortunately, there is a workaroung:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT * FROM USER\G&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;By replacing the default &lt;code&gt;;&lt;/code&gt; with &lt;code&gt;\G&lt;/code&gt;, the result gets displayed in vertical format. Of course, this needs more vertical space in the CL window. On the other hand, you do not have to deal with annoying line wrapping and stuff.&lt;br /&gt;Be sure to use a capital &lt;code&gt;G&lt;/code&gt; though, otherwise this will not work and result in the default tabular view instead.</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/6863315619846662668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/6863315619846662668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/6863315619846662668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/6863315619846662668'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2009/02/display-result-of-select-in-vertical.html' title='Display result of select in vertical format'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-5543331396384401969</id><published>2009-02-21T00:54:00.005+01:00</published><updated>2009-02-21T01:23:36.919+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="association"/><category scheme="http://www.blogger.com/atom/ns#" term="bug"/><category scheme="http://www.blogger.com/atom/ns#" term="hibernate"/><category scheme="http://www.blogger.com/atom/ns#" term="jpa"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><title type='text'>Many-to-one and tinyblob</title><content type='html'>I had the weirdest bug the other day. I was creating a data model for a Java application using JPA and Hibernate as provider. &lt;br /&gt;&lt;br /&gt;I was implementing a many-to-one-relationship. Even though I&#39;m no pro at JPA, I never experienced big trouble. Until now. Suddenly, my relations did not turn out in the database model I expected. Instead of creating a foreign key, I always had a tinyblob field. The relevant parts of the class were something like:&lt;br /&gt;&lt;code&gt;&lt;br /&gt; protected FinanceProfile financeProfile;&lt;br /&gt;        &lt;br /&gt;        // ...&lt;br /&gt;&lt;br /&gt; @ManyToOne&lt;br /&gt; public void setFinanceProfile(FinanceProfile financeProfile) {&lt;br /&gt;  this.financeProfile = financeProfile;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public FinanceProfile getFinanceProfile() {&lt;br /&gt;  return financeProfile;&lt;br /&gt; }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I tried to use this class, but always received an error like:&lt;br /&gt;&lt;code&gt;org.hibernate.exception.DataException: could not insert [com.mypackage.model.FinanceAccount][SQL: 0, 22001]&lt;/code&gt;&lt;br /&gt;&lt;code&gt;com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column &#39;finance_profile&#39; at row 1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now, do you see the error? Because... well, I didn&#39;t. Took me several hours to figure it out. The culprit is... tadaa... I had switched the order of the getter/setter-methods. Well, Eclipse did this for me, and I didn&#39;t check. After I changed the order of the two methods (and put the annotation above the getter), everything was ok.&lt;br /&gt;&lt;br /&gt;I think I should start annotating the members themselves. That way, this won&#39;t happen again (at least I hope so).</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/5543331396384401969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/5543331396384401969' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/5543331396384401969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/5543331396384401969'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2009/02/many-to-one-and-tinyblob.html' title='Many-to-one and tinyblob'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-7280362810642681767</id><published>2008-09-05T11:49:00.008+02:00</published><updated>2008-09-05T12:52:58.971+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="N95 8GB"/><category scheme="http://www.blogger.com/atom/ns#" term="S60"/><category scheme="http://www.blogger.com/atom/ns#" term="Wardriving"/><title type='text'>Wardriving with my new cell</title><content type='html'>I recently obtained a &lt;a href=&quot;http://www.gsmarena.com/nokia_n95_8gb-2088.php&quot;&gt;Nokia N95 8GB&lt;/a&gt;. Besides some other things, it includes WLAN and GPS. This makes the cell a nice platform for wardriving, I thought.&lt;br /&gt;&lt;br /&gt;And indeed, it does. After some research, I found the application &lt;a href=&quot;http://pynetmony.googlepages.com/home&quot;&gt;PyNetMoney&lt;/a&gt;. It is written in Python and can be used with Nokia&#39;s open source project &lt;a href=&quot;http://opensource.nokia.com/projects/pythonfors60/&quot;&gt;Python for S60&lt;/a&gt;. The installation was quite a pain, since I had to sign every packet I needed by myself. Besides this annoyance, I could successfully install the application. I found a &lt;a href=&quot;http://gsmfreeboard.com/showthread.php?t=158558&quot;&gt;manual on how to avoid signing issues (in German)&lt;/a&gt; later on.&lt;br /&gt;&lt;br /&gt;I tested the application on two consecutive days. On the first day, I started the application in Graz, Austria, when I went from Dietrichsteinpark to Parkhouse with a friend. During this walk, I kept the cell&#39;s slider open and held the cell in my hand. According to the phone&#39;s manual, this is the preferred way if you are using GPS services.&lt;br /&gt;On the second day, I started the application while taking a walk with my girlfriend. This time, I kept the cell in a pocket of my jacket, with the slider closed and bottom up -- I figured that I will get a better GPS connection this way, since the GPS receiver is on the bottom of the phone. I don&#39;t know if this is correct though.&lt;br /&gt;&lt;br /&gt;I exported the &lt;a href=&quot;http://sites.google.com/site/brainfukk/file-host-1/wardriving.zip&quot;&gt;results in KML format&lt;/a&gt;. They can be imported in Google Earth by using the &lt;code&gt;File &gt; Open&lt;/code&gt; from the menu. By checking the appropriate boxes, they can be viewed in the map. I suggest to activate street names as well, because the satellite resolution in this region of Austria is pretty bad, you won&#39;t recognize anything if you are not &lt;span style=&quot;font-style: italic;&quot;&gt;very &lt;/span&gt;familiar with the region.&lt;br /&gt;&lt;br /&gt;I am pretty amazed of the accuracy of the results. Of some of the WLANs found, I either know the exact location or can give a good estimation of it. Using this information as a criteria, the resulting coordinates seem to be quite accurate, just off by a few meters. When I&#39;ll be eating my next Kebap in Graz, I&#39;m pretty shure I&#39;ll be able to access the Internet over an open WLAN.&lt;br /&gt;&lt;br /&gt;Meanwhile, I&#39;ll continue to gather more data on open WLANs in my surroundings. If you are interested in this data (mainly of the upper parts of Styria and Graz), just give me a shout.</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/7280362810642681767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/7280362810642681767' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/7280362810642681767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/7280362810642681767'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/09/wardriving-with-my-new-cell.html' title='Wardriving with my new cell'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-4391295153744565670</id><published>2008-06-15T13:24:00.007+02:00</published><updated>2008-06-17T14:24:29.948+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="trusted computing"/><category scheme="http://www.blogger.com/atom/ns#" term="uni"/><title type='text'>Setting up the TC environment to debug remotely</title><content type='html'>Since it is quite inconvenient to use Eclipse in the VM, I use Eclipse from my host system. The code and needed libraries can be found in the projects folder of the SVN repository. You have to check it out, then create an Eclipse project from the existing sources.&lt;br /&gt;&lt;br /&gt;I shared the project folder using SMB from Windows and mounted it in the Ubuntu image using the following commands:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo apt-get install smbfs&lt;br /&gt;sudo mount -t cifs //(hostcomputer)/(share) /media/project-share  \&lt;br /&gt;-o username=(username),password=(password),iocharset=utf8,file_mode=0777,dir_mode=0777&lt;/pre&gt;&lt;br /&gt;Fill in the words in brackets with the appropriate values.&lt;br /&gt;Additionally, I made a softlink in order to access the share more easily. That&#39;s just for convenience.&lt;br /&gt;&lt;br /&gt;At this point, you should have everything you need, provided that you have Eclipse installed on your host system. There is a nice page on &lt;a href=&quot;http://sdqweb.ipd.uni-karlsruhe.de/wiki/Remote_Debugging_mit_Eclipse&quot;&gt;how remote debugging works&lt;/a&gt; with Eclipse. I have adapted the jtt.sh script for remote debugging and called it debug-jtt.sh. It waits for connections on port 55555 and does not start until you have connected to the VM from within Eclipse.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjD0HQC3MdJLUYS8x1pDiwDRpg1eeOtD_ZgRRj5RonVn0tRpUwTqM3WGgIbRPYo9xCl-lNAf869El1-Aqh9K1KlfvhoHj8Gb9WhgTno3Wte6M_ugFwew-1wZTqaiFPlcVSwWGhpCEBktLU/s1600-h/remote-debugging.png&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjD0HQC3MdJLUYS8x1pDiwDRpg1eeOtD_ZgRRj5RonVn0tRpUwTqM3WGgIbRPYo9xCl-lNAf869El1-Aqh9K1KlfvhoHj8Gb9WhgTno3Wte6M_ugFwew-1wZTqaiFPlcVSwWGhpCEBktLU/s320/remote-debugging.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5212080755069561506&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;The Eclipse configuration is not hard to accomplish. Once you have done this, set a breakpoint in the main method in &lt;pre&gt;iaik.tc.apps.JTpmTools&lt;/pre&gt;, start the debug script (it will tell you that it listens to the remote port) and your remote debugging in Eclipse.&lt;br /&gt;That&#39;s it. Have fun debugging remotely!</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/4391295153744565670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/4391295153744565670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/4391295153744565670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/4391295153744565670'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/06/setting-up-tc-environment-to-debug.html' title='Setting up the TC environment to debug remotely'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjD0HQC3MdJLUYS8x1pDiwDRpg1eeOtD_ZgRRj5RonVn0tRpUwTqM3WGgIbRPYo9xCl-lNAf869El1-Aqh9K1KlfvhoHj8Gb9WhgTno3Wte6M_ugFwew-1wZTqaiFPlcVSwWGhpCEBktLU/s72-c/remote-debugging.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-6759726155083635740</id><published>2008-06-01T22:23:00.005+02:00</published><updated>2008-06-04T02:39:53.042+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computer"/><category scheme="http://www.blogger.com/atom/ns#" term="desktop"/><category scheme="http://www.blogger.com/atom/ns#" term="usability"/><category scheme="http://www.blogger.com/atom/ns#" term="vista"/><title type='text'>Pimp my explorer</title><content type='html'>The German &lt;a href=&quot;http://www.heise.de/ct/&quot;&gt;c&#39;t magazine&lt;/a&gt; has some nice tools to enhance the Windows explorer in &lt;a href=&quot;http://www.heise.de/ct/08/12/094/&quot;&gt;issue 12/2008&lt;/a&gt;. I tried some of these tools to enhance the usability of my Win Vista system (no discussion about platforms in here).&lt;br /&gt;I made a system image right before that -- just in case, you know?&lt;br /&gt;&lt;br /&gt;Tools I want to evaluate:&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://qttabbar.wikidot.com/&quot;&gt;QTTabBar&lt;/a&gt; gives me tabs for the Windows explorer&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://qttabbar.wikidot.com/qtaddressbar&quot;&gt;QTAdressBar&lt;/a&gt; adds subdirectories to the breadcrumb navigation of Vista (also works on XP).&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.freeware365.com/desktop/folderguide.htm&quot;&gt;FolderGuide&lt;/a&gt; allows me to define folder shortcuts in the context menu&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://insentient.net/&quot;&gt;Switcher&lt;/a&gt; is an overview of my open windows as the Vista 3D task switcher is (the one you get with Win+Tab), similar to Exposé from OS X&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.codeplex.com/vdm&quot;&gt;Vista/XP virtual desktop manager&lt;/a&gt; (man, why do you have to enable JavaScript just to download the software) gives me virtual desktops and is supposed to be than the Microsoft version from &lt;a href=&quot;http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx&quot;&gt;Powertoys&lt;/a&gt; (never tried to use them, besides SyncToy, which I like).&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;I&#39;ve tried the tools while doing some (though inextensive) work on my computer. Here&#39;s what I&#39;ve found so far:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;QTTabBar: &lt;/span&gt;Well, I think it&#39;s quite nice, but I still need time to get acquainted. I just reconfigured the keyboard short cuts to fit the short cuts I&#39;m used from Firefox. Basically, I now open a new tab with Ctrl + T and a new explorer windows with Ctrl + N. I think I will start using it similar to the tabs in Firefox. I certainly always have way too many open tabs, but I prefer this to many different windows. If I get a hold of this tool, I think it will ease some work.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;QTAdddressBar: &lt;/span&gt;&lt;span&gt;Another tool which is part of my explorer now. Now I have a two bars with a slightly different way to handle, which annoys me to some extent. Besides that, I found the new breadcrumb navigation slightly better. However, the level of subdirectories is not that high on my file system, and I try to keep important folders near me (by using NTFS junctions, mainly). I&#39;ll keep that tool at least for some time.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;FolderGuide:&lt;/span&gt; Man, that&#39;s definitely the tool one is watching for. It just gives me a new menu point in my explorer context menu. Well, my context menu usually gets too clutched, but this tool just eases my work. You can define menu point that can be reached in the FolderGuide sub menu. Simple as.&lt;br /&gt;I have some folders that I have to reach quickly regularly, like special save locations for files or the project folders of my current work. Now, they are always just two mouse clicks away. Simple as, but really cool. If you often were annoyed about browsing through your file system and wishing it was laid out more flatly, here&#39;s your answer.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Switcher:&lt;/span&gt; I have not brought myself in using it regularly by now, even though it is a neat task switcher. I still think of replacing the windows Alt + Tab switcher with this one, currently I replace the 3D switcher from Vista (Win + Tab). But I think I&#39;m gonna keep Switcher, since it gives a good overview when your system is full of open app windows again.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Vista/XP Virtual Desktop Manager: &lt;/span&gt;Speaking of open windows, I also installed this desktop manager to get multiple desktops into Windows. I know it from Linux, I also have used it there, but I found no use for it in the past days, perhaps also due to my monitor resolution which allows me to watch 2 to 3 windows simultaneously if I have to. Even though it&#39;s a good thing, this will eventually be the first of the tools thaht gets deinstalled from my system.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I plan to review these tools and perhaps add one or two new after I examined them in more detail. I&#39;ll post my results same place.&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/6759726155083635740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/6759726155083635740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/6759726155083635740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/6759726155083635740'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/06/pimp-my-explorer.html' title='Pimp my explorer'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-8291378172353028910</id><published>2008-05-20T20:57:00.003+02:00</published><updated>2008-05-20T21:04:41.200+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jmock"/><category scheme="http://www.blogger.com/atom/ns#" term="mmis2"/><category scheme="http://www.blogger.com/atom/ns#" term="uni"/><title type='text'>JMock 1 short how-to</title><content type='html'>&lt;a href=&quot;http://www.jmock.org/oopsla2004.pdf&quot;&gt;This document&lt;/a&gt; is a nice resource on how to perform a unit test with JMock (which is part of AppFuse).&lt;br /&gt;&lt;br /&gt;For some small remarks on how to build the test, here is a portion of the code I used:&lt;br /&gt;&lt;pre&gt; List&amp;lt;Home&amp;gt; homes = new ArrayList&amp;lt;Home&amp;gt;();&lt;br /&gt;&lt;br /&gt; // set expected behavior on dao&lt;br /&gt; mock.expects(once()).method(&quot;findInPerimeter&quot;).with(eq(center),&lt;br /&gt;    eq(radius / Constants.KM_PER_DEGREE)).will(returnValue(homes));&lt;br /&gt;&lt;br /&gt; List&amp;lt;Home&amp;gt; result = manager.findInPerimeter(center, radius);&lt;br /&gt; assertEquals(result, homes);&lt;/pre&gt;This tells the mock that we expect the next method call of the proxied object (in this case a dao) to be of parameter findInPerimeter with the given parameters and to have a result of returnValue. manager uses this proxy to verify the call.</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/8291378172353028910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/8291378172353028910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/8291378172353028910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/8291378172353028910'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/05/jmock-1-short-how-to.html' title='JMock 1 short how-to'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-6898980850379956679</id><published>2008-05-19T20:38:00.007+02:00</published><updated>2008-05-19T20:58:32.728+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hibernate"/><category scheme="http://www.blogger.com/atom/ns#" term="mmis2"/><category scheme="http://www.blogger.com/atom/ns#" term="uni"/><title type='text'>By-directional one-to-many relations with Hibernate and annotations</title><content type='html'>If have a POJO User and Home. One user can have multiple homes, and homes should know their user. Thus, one user should have many homes, and homes have one owner. Since I ran into some trouble while doing this, this is a short example of what to do. Another simple &lt;a href=&quot;http://www.informatik.fh-wiesbaden.de/%7Eknauf/SWTVertiefung2006/kuchenzutat/index.html&quot;&gt;example&lt;/a&gt; (in German) helped me to come to a correct solution&lt;br /&gt;&lt;br /&gt;My POJOs look like:&lt;br /&gt;If have a POJO User and Home. One user can have multiple homes, and homes should know their user. Thus, one user should have many homes, and homes have one owner. Since I ran into some trouble while doing this, this is a short example of what to do. Another simple &lt;a href=&quot;http://www.informatik.fh-wiesbaden.de/%7Eknauf/SWTVertiefung2006/kuchenzutat/index.html&quot;&gt;example&lt;/a&gt; (in German) helped me to come to a correct solution&lt;br /&gt;&lt;br /&gt;My POJOs look like:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;@Entity&lt;br /&gt;@Table(name=\&quot;app_user\&quot;)&lt;br /&gt;public class User implements Serializable {&lt;br /&gt;&lt;br /&gt;   private Long id;&lt;br /&gt; &lt;br /&gt;   private Set&amp;lt;Home&amp;gt; homes = new HashSet&amp;lt;Home&amp;gt;();&lt;br /&gt;  &lt;br /&gt;   /**&lt;br /&gt;    * Default constructor - creates a new instance with no values set.&lt;br /&gt;    */&lt;br /&gt;   public User() {}&lt;br /&gt;&lt;br /&gt;   @Id @GeneratedValue(strategy=GenerationType.AUTO)&lt;br /&gt;   public Long getId() {&lt;br /&gt;       return id;&lt;br /&gt;   }&lt;br /&gt;  &lt;br /&gt;   @OneToMany(mappedBy=\&quot;owner\&quot;)&lt;br /&gt;   public Set&amp;lt;Home&amp;gt; getHomes()&lt;br /&gt;   {&lt;br /&gt;       return homes;&lt;br /&gt;   }&lt;br /&gt;  &lt;br /&gt;   // setters, ...&lt;br /&gt;}&lt;/pre&gt; and &lt;pre&gt;@Entity @Table(name=\&quot;home\&quot;)&lt;br /&gt;public class Home extends BaseObject {&lt;br /&gt;&lt;br /&gt; private Long id;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;   private User owner;&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;   @Id&lt;br /&gt;   @GeneratedValue(strategy = GenerationType.AUTO)&lt;br /&gt;   public Long getId() {&lt;br /&gt;       return id;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   @ManyToOne&lt;br /&gt;   @JoinColumn(name=\&quot;user_id\&quot;)&lt;br /&gt;   public User getOwner() {&lt;br /&gt;    return owner;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // setters, ...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;The relationship is saved in Home in the property owner (Home.owner). The foreign key is saved in the field user_id of table home.&lt;br /&gt;&lt;br /&gt;When you get the error &lt;pre&gt;mappedBy reference an unknown target&lt;/pre&gt;this means that the mappedBy is not set correctly. Ensure that the target is set correctly -- in this scenario, mappedBy specifies field owner of class Home as target.</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/6898980850379956679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/6898980850379956679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/6898980850379956679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/6898980850379956679'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/05/by-directional-one-to-many-relations.html' title='By-directional one-to-many relations with Hibernate and annotations'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-3021083723667745742</id><published>2008-05-19T17:25:00.003+02:00</published><updated>2008-05-19T17:28:34.729+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="appfuse"/><category scheme="http://www.blogger.com/atom/ns#" term="mmis2"/><category scheme="http://www.blogger.com/atom/ns#" term="uni"/><title type='text'>How to edit the AppFuse user class (and others)</title><content type='html'>For my AppFuse application, I need to add some functionality regarding the basic user class. Fortunately, this seems to be rather easy, if the &lt;a href=&quot;http://appfuse.org/display/APF/AppFuse+Core+Classes&quot;&gt;AppFuse documentation&lt;/a&gt; is correct. In this way, one should be able to edit the core classes.&lt;br /&gt;&lt;br /&gt;I tested everything up to really editing the core classes. Still, I do not expect any problems from what I&#39;ve seen so far.</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/3021083723667745742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/3021083723667745742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/3021083723667745742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/3021083723667745742'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/05/how-to-edit-appfuse-user-class-and.html' title='How to edit the AppFuse user class (and others)'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-7820179944856238546</id><published>2008-05-17T12:04:00.007+02:00</published><updated>2008-05-19T17:28:55.393+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="appfuse"/><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="mmis2"/><category scheme="http://www.blogger.com/atom/ns#" term="spring"/><category scheme="http://www.blogger.com/atom/ns#" term="uni"/><title type='text'>Some Eclipse plug-ins worth to look at</title><content type='html'>There are some cool &lt;a href=&quot;http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/europa/winter/eclipse-jee-europa-winter-win32.zip&quot;&gt;Eclipse Europe&lt;/a&gt; plugins worth to look at. Here is just a small collection one can use when developing with Maven, Spring and AppFuse:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://subclipse.tigris.org/&quot;&gt;Subclipse&lt;/a&gt; -- SVN client from within Eclipse. I prefer to have the team functionality in my IDE. I can still use &lt;a href=&quot;http://tortoisesvn.tigris.org/&quot;&gt;TortoiseSVN&lt;/a&gt; at the same time, which is my default SVN client in Windows.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://m2eclipse.codehaus.org/&quot;&gt;Maven Integration for Eclipse&lt;/a&gt; to get some of the Maven stuff into Eclipse.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://springide.org/blog/&quot;&gt;Spring IDE&lt;/a&gt; -- I haven&#39;t checked out the full functionality yt, but it seems to be quite nice.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://candy4appfuse.sourceforge.net/&quot;&gt;Candy for Appfuse&lt;/a&gt; -- again, I don&#39;t know the full functionality yet.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://commonclipse.sourceforge.net/&quot;&gt;CommonClipse&lt;/a&gt; -- provides generators for methods like toString(), hashCode(), ...&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/7820179944856238546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/7820179944856238546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/7820179944856238546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/7820179944856238546'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/05/some-eclipse-plugins-worth-to-look-at.html' title='Some Eclipse plug-ins worth to look at'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-927123371623901299</id><published>2008-05-15T16:26:00.006+02:00</published><updated>2008-05-19T17:29:54.916+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="appfuse"/><category scheme="http://www.blogger.com/atom/ns#" term="jetty"/><category scheme="http://www.blogger.com/atom/ns#" term="mmis2"/><category scheme="http://www.blogger.com/atom/ns#" term="uni"/><title type='text'>Get Jetty to run without WAR</title><content type='html'>After looking at Appfuse for quite a while, I finally found out how to enable the &lt;span style=&quot;font-family: courier new;&quot;&gt;mvn jetty:run &lt;/span&gt;command. This is especially important for editing the front-end, since it does not need packaging the war file when there were just JSP pages edited.&lt;br /&gt;&lt;br /&gt;The solution, &lt;a href=&quot;http://appfuse.org/display/APF/FAQ#FAQ-appfuse1vs2&quot;&gt;hidden somewhere in the AppFuse FAQ:&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Run &lt;span style=&quot;font-family: courier new;&quot;&gt;mvn war:inplace&lt;/span&gt; in the project&#39;s base folder&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Delete the folder &lt;span style=&quot;font-family: courier new;&quot;&gt;src/main/webapp/WEB-INF/lib&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;Nothing more to do. Now you can run &lt;span style=&quot;font-family: courier new;&quot;&gt;mvn jetty:run&lt;/span&gt;. Your web page will be updated if you update your jsp files and refresh the browser.</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/927123371623901299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/927123371623901299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/927123371623901299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/927123371623901299'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/05/get-jetty-to-run-without-war.html' title='Get Jetty to run without WAR'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-5989079845026656738</id><published>2008-05-15T13:08:00.004+02:00</published><updated>2008-05-19T17:30:14.212+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jetty"/><category scheme="http://www.blogger.com/atom/ns#" term="maven"/><category scheme="http://www.blogger.com/atom/ns#" term="mmis2"/><category scheme="http://www.blogger.com/atom/ns#" term="spring"/><category scheme="http://www.blogger.com/atom/ns#" term="uni"/><title type='text'>PIX application and Jetty</title><content type='html'>I do not like to install new software on my production environment, especially when it comes to servers. And I&#39;m currently too lazy to start up a virtual machine and configure it as I need to.&lt;br /&gt;&lt;br /&gt;Therefore, I&#39;m pretty fond of the &lt;a href=&quot;http://mojo.codehaus.org/jetty-maven-plugin/&quot;&gt;maven jetty plugin&lt;/a&gt;. &lt;a href=&quot;http://www.mortbay.org/jetty-6/&quot;&gt;Jetty&lt;/a&gt; is a Java web server which can be used to serve your content. The good thing: By using the jetty plugin, I can avoid to set-up a full web server. Instead, I only type &lt;span style=&quot;font-family:courier new;&quot;&gt;mvn jetty:run&lt;/span&gt; in order to test my web app on &lt;span style=&quot;font-family:courier new;&quot;&gt;localhost:8080&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I copied the necessary plugin information from an &lt;a href=&quot;http://appfuse.org/display/APF/Home&quot;&gt;Appfuse 2&lt;/a&gt; project and included it into the pom.xml of the PIX application. The lines I included are:&lt;br /&gt;&lt;pre&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;      &amp;lt;groupId&amp;gt;org.mortbay.jetty&amp;lt;/groupId&amp;gt;&lt;br /&gt;      &amp;lt;artifactId&amp;gt;maven-jetty-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;      &amp;lt;version&amp;gt;6.1.6&amp;lt;/version&amp;gt;&lt;br /&gt;      &amp;lt;configuration&amp;gt;&lt;br /&gt;          &amp;lt;contextPath&amp;gt;/&amp;lt;/contextPath&amp;gt;&lt;br /&gt;          &amp;lt;scanIntervalSeconds&amp;gt;3&amp;lt;/scanIntervalSeconds&amp;gt;&lt;br /&gt;          &amp;lt;scanTargetPatterns&amp;gt;&lt;br /&gt;              &amp;lt;scanTargetPattern&amp;gt;&lt;br /&gt;                  &amp;lt;directory&amp;gt;src/main/webapp/WEB-INF&amp;lt;/directory&amp;gt;&lt;br /&gt;                  &amp;lt;excludes&amp;gt;&lt;br /&gt;                      &amp;lt;exclude&amp;gt;**/*.jsp&amp;lt;/exclude&amp;gt;&lt;br /&gt;                  &amp;lt;/excludes&amp;gt;&lt;br /&gt;                  &amp;lt;includes&amp;gt;&lt;br /&gt;                      &amp;lt;include&amp;gt;**/*.properties&amp;lt;/include&amp;gt;&lt;br /&gt;                      &amp;lt;include&amp;gt;**/*.xml&amp;lt;/include&amp;gt;&lt;br /&gt;                  &amp;lt;/includes&amp;gt;&lt;br /&gt;              &amp;lt;/scanTargetPattern&amp;gt;&lt;br /&gt;          &amp;lt;/scanTargetPatterns&amp;gt;&lt;br /&gt;      &amp;lt;/configuration&amp;gt;&lt;br /&gt;&amp;lt;/plugin&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You can even shorten all this stuff down to:&lt;br /&gt;&lt;pre&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt; &amp;lt;groupId&amp;gt;org.mortbay.jetty&amp;lt;/groupId&amp;gt;&lt;br /&gt; &amp;lt;artifactId&amp;gt;maven-jetty-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt; &amp;lt;configuration&amp;gt;&lt;br /&gt;   &amp;lt;contextPath&amp;gt;/&amp;lt;/contextPath&amp;gt;&lt;br /&gt; &amp;lt;/configuration&amp;gt;&lt;br /&gt;&amp;lt;/plugin&amp;gt;&lt;/pre&gt;&lt;br /&gt;By doing this, you do not rely on a particular version as well. The only thing necessary was the contextPath. Otherwise, jetty will complain that there is &lt;span style=&quot;font-family: courier new;&quot;&gt;&quot;No context on this server matched or handled this request.&quot;&lt;/span&gt; You will have to click on one link to select the correct context.</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/5989079845026656738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/5989079845026656738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/5989079845026656738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/5989079845026656738'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/05/pix-application-and-jetty.html' title='PIX application and Jetty'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-7351890652518544512</id><published>2008-05-15T12:08:00.005+02:00</published><updated>2008-05-19T17:30:24.625+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="maven"/><category scheme="http://www.blogger.com/atom/ns#" term="mmis2"/><category scheme="http://www.blogger.com/atom/ns#" term="spring"/><category scheme="http://www.blogger.com/atom/ns#" term="uni"/><title type='text'>Getting the PIX application to run</title><content type='html'>The &lt;a href=&quot;http://media.wiley.com/product_ancillary/1X/04701016/DOWNLOAD/begspringcode_121607.zip&quot;&gt;pix-demo&lt;/a&gt; of the &lt;a href=&quot;http://www.amazon.com/Beginning-Spring-Framework-Thomas-Velde/dp/047010161X&quot;&gt;Beginning  Spring Framework 2&lt;/a&gt; book seems to be nice to get to know all the technology we&#39;re planning to use a little bit better. However, it does not compile as-is, unfortunately, as I&#39;ve received the error&lt;br /&gt;&lt;pre&gt;The plugin &#39;org.codehaus.mojo:xfire-maven-plugin&#39; does not exist or no valid version could be found&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So I entered the build error I received in Google and voilà -- just one hit, but it was the &lt;a href=&quot;http://p2p.wrox.com/topic.asp?whichpage=1&amp;amp;TOPIC_ID=67845%F0%A4%B3%9F&quot;&gt;right one&lt;/a&gt;. Thanks to user &lt;span style=&quot;font-style: italic;&quot;&gt;aneesha&lt;/span&gt; for providing the hint I needed:&lt;br /&gt;&lt;br /&gt;You have to edit your &lt;span style=&quot;font-family: courier new;&quot;&gt;pom.xml&lt;/span&gt; file in order to get the app to compile. I&#39;m no pro with maven, so I don&#39;t quite get what was done, but here&#39;s my working version of &lt;span style=&quot;font-family: courier new;&quot;&gt;pom.xml&lt;/span&gt;:&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&amp;lt;project&amp;gt;&lt;br /&gt; &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;&lt;br /&gt; &amp;lt;groupId&amp;gt;wrox&amp;lt;/groupId&amp;gt;&lt;br /&gt; &amp;lt;artifactId&amp;gt;pixweb&amp;lt;/artifactId&amp;gt;&lt;br /&gt; &amp;lt;packaging&amp;gt;war&amp;lt;/packaging&amp;gt;&lt;br /&gt; &amp;lt;version&amp;gt;0.0.1&amp;lt;/version&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;&lt;br /&gt; &amp;lt;build&amp;gt;&lt;br /&gt;   &amp;lt;sourceDirectory&amp;gt;src/main/java&amp;lt;/sourceDirectory&amp;gt;&lt;br /&gt;   &amp;lt;testSourceDirectory&amp;gt;src/test/java&amp;lt;/testSourceDirectory&amp;gt;&lt;br /&gt;   &amp;lt;resources&amp;gt;&lt;br /&gt;     &amp;lt;resource&amp;gt;&lt;br /&gt;       &amp;lt;filtering&amp;gt;true&amp;lt;/filtering&amp;gt;&lt;br /&gt;       &amp;lt;directory&amp;gt;src/main/java&amp;lt;/directory&amp;gt;&lt;br /&gt;       &amp;lt;excludes&amp;gt;&lt;br /&gt;         &amp;lt;exclude&amp;gt;**/*.java&amp;lt;/exclude&amp;gt;&lt;br /&gt;       &amp;lt;/excludes&amp;gt;&lt;br /&gt;     &amp;lt;/resource&amp;gt;&lt;br /&gt;     &amp;lt;resource&amp;gt;&lt;br /&gt;       &amp;lt;directory&amp;gt;src/main/resources&amp;lt;/directory&amp;gt;&lt;br /&gt;       &amp;lt;includes&amp;gt;&lt;br /&gt;         &amp;lt;include&amp;gt;**/*.properties&amp;lt;/include&amp;gt;&lt;br /&gt;         &amp;lt;include&amp;gt;**/*.xml&amp;lt;/include&amp;gt;&lt;br /&gt;       &amp;lt;/includes&amp;gt;&lt;br /&gt;     &amp;lt;/resource&amp;gt;&lt;br /&gt;   &amp;lt;/resources&amp;gt;&lt;br /&gt;   &amp;lt;testResources&amp;gt;&lt;br /&gt;     &amp;lt;testResource&amp;gt;&lt;br /&gt;       &amp;lt;filtering&amp;gt;true&amp;lt;/filtering&amp;gt;&lt;br /&gt;       &amp;lt;directory&amp;gt;src/test/java&amp;lt;/directory&amp;gt;&lt;br /&gt;       &amp;lt;excludes&amp;gt;&lt;br /&gt;         &amp;lt;exclude&amp;gt;**/*.java&amp;lt;/exclude&amp;gt;&lt;br /&gt;       &amp;lt;/excludes&amp;gt;&lt;br /&gt;     &amp;lt;/testResource&amp;gt;&lt;br /&gt;     &amp;lt;testResource&amp;gt;&lt;br /&gt;       &amp;lt;directory&amp;gt;src/test/resources&amp;lt;/directory&amp;gt;&lt;br /&gt;     &amp;lt;/testResource&amp;gt;&lt;br /&gt;   &amp;lt;/testResources&amp;gt;&lt;br /&gt;   &amp;lt;plugins&amp;gt;&lt;br /&gt;     &amp;lt;plugin&amp;gt;&lt;br /&gt;       &amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;       &amp;lt;configuration&amp;gt;&lt;br /&gt;         &amp;lt;source&amp;gt;1.5&amp;lt;/source&amp;gt;&lt;br /&gt;         &amp;lt;target&amp;gt;1.5&amp;lt;/target&amp;gt;&lt;br /&gt;       &amp;lt;/configuration&amp;gt;&lt;br /&gt;     &amp;lt;/plugin&amp;gt;&lt;br /&gt;     &amp;lt;plugin&amp;gt;&lt;br /&gt;       &amp;lt;artifactId&amp;gt;maven-eclipse-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;       &amp;lt;configuration&amp;gt;&lt;br /&gt;         &amp;lt;wtpversion&amp;gt;1.0&amp;lt;/wtpversion&amp;gt;&lt;br /&gt;         &amp;lt;additionalBuildcommands&amp;gt;&lt;br /&gt;           &amp;lt;buildcommand&amp;gt;org.springframework.ide.eclipse.core.springbuilder&amp;lt;/buildcommand&amp;gt;&lt;br /&gt;         &amp;lt;/additionalBuildcommands&amp;gt;&lt;br /&gt;         &amp;lt;additionalProjectnatures&amp;gt;&lt;br /&gt;           &amp;lt;projectnature&amp;gt;org.springframework.ide.eclipse.core.springnature&amp;lt;/projectnature&amp;gt;&lt;br /&gt;         &amp;lt;/additionalProjectnatures&amp;gt;&lt;br /&gt;       &amp;lt;/configuration&amp;gt;&lt;br /&gt;     &amp;lt;/plugin&amp;gt;&lt;br /&gt;   &amp;lt;plugin&amp;gt;&lt;br /&gt;       &amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;&lt;br /&gt;       &amp;lt;version&amp;gt;1.0-20061017.160413-3&amp;lt;/version&amp;gt;&lt;br /&gt;       &amp;lt;artifactId&amp;gt;xfire-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;         &amp;lt;executions&amp;gt;&lt;br /&gt;          &amp;lt;execution&amp;gt;&lt;br /&gt;             &amp;lt;goals&amp;gt;&lt;br /&gt;                &amp;lt;goal&amp;gt;wsgen&amp;lt;/goal&amp;gt;&lt;br /&gt;             &amp;lt;/goals&amp;gt;&lt;br /&gt;          &amp;lt;/execution&amp;gt;&lt;br /&gt;       &amp;lt;/executions&amp;gt;&lt;br /&gt;       &amp;lt;configuration&amp;gt;&lt;br /&gt;         &amp;lt;package&amp;gt;com.wrox.webservice.emailvalidation.client&amp;lt;/package&amp;gt;&lt;br /&gt;         &amp;lt;overwrtite&amp;gt;true&amp;lt;/overwrtite&amp;gt;&lt;br /&gt;         &amp;lt;generateServerStubs&amp;gt;false&amp;lt;/generateServerStubs&amp;gt;&lt;br /&gt;         &amp;lt;forceBare&amp;gt;false&amp;lt;/forceBare&amp;gt;&lt;br /&gt;         &amp;lt;outputDirectory&amp;gt;${project.build.directory}/generated-sources&amp;lt;/outputDirectory&amp;gt;&lt;br /&gt;         &amp;lt;wsdls&amp;gt;&lt;br /&gt;           &amp;lt;wsdl&amp;gt;http://ws.xwebservices.com/XWebEmailValidation/V2/XWebEmailValidation.wsdl&amp;lt;/wsdl&amp;gt;&lt;br /&gt;         &amp;lt;/wsdls&amp;gt;&lt;br /&gt;       &amp;lt;/configuration&amp;gt;&lt;br /&gt;     &amp;lt;/plugin&amp;gt;&lt;br /&gt;   &amp;lt;/plugins&amp;gt;&lt;br /&gt; &amp;lt;/build&amp;gt;&lt;br /&gt; &amp;lt;pluginRepositories&amp;gt;&lt;br /&gt;  &amp;lt;pluginRepository&amp;gt;&lt;br /&gt;     &amp;lt;id&amp;gt;Codehaus Snapshots&amp;lt;/id&amp;gt;&lt;br /&gt;     &amp;lt;url&amp;gt;http://snapshots.repository.codehaus.org/&amp;lt;/url&amp;gt;&lt;br /&gt;     &amp;lt;snapshots&amp;gt;&lt;br /&gt;       &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;     &amp;lt;/snapshots&amp;gt;&lt;br /&gt;     &amp;lt;releases&amp;gt;&lt;br /&gt;       &amp;lt;enabled&amp;gt;false&amp;lt;/enabled&amp;gt;&lt;br /&gt;     &amp;lt;/releases&amp;gt;&lt;br /&gt; &amp;lt;/pluginRepository&amp;gt;&lt;br /&gt;&amp;lt;/pluginRepositories&amp;gt;&lt;br /&gt; &amp;lt;dependencies&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;taglibs&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;standard&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${taglibs-standard-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;jstl&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${jstl-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;servlet-api&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${servlet-api-version}&amp;lt;/version&amp;gt;&lt;br /&gt;     &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;commons-fileupload&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;commons-fileupload&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${commons-fileupload-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;spring-webmvc&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${spring-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;spring-jpa&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${spring-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.hibernate&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;hibernate-entitymanager&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;3.2.1.ga&amp;lt;/version&amp;gt;&lt;br /&gt;     &amp;lt;exclusions&amp;gt;&lt;br /&gt;       &amp;lt;exclusion&amp;gt;&lt;br /&gt;         &amp;lt;artifactId&amp;gt;jta&amp;lt;/artifactId&amp;gt;&lt;br /&gt;         &amp;lt;groupId&amp;gt;javax.transaction&amp;lt;/groupId&amp;gt;&lt;br /&gt;       &amp;lt;/exclusion&amp;gt;&lt;br /&gt;     &amp;lt;/exclusions&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;geronimo-spec&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;geronimo-spec-jta&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;1.0.1B-rc4&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;spring-aspects&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${spring-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;spring-aop&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${spring-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;spring-webflow&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${spring-webflow-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;spring-mock&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${spring-version}&amp;lt;/version&amp;gt;&lt;br /&gt;     &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;spring-jms&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${spring-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;hsqldb&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;hsqldb&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${hsqldb-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.directwebremoting&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;dwr&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${dwr-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;junit&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;junit&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${junit-version}&amp;lt;/version&amp;gt;&lt;br /&gt;     &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;commons-lang&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;commons-lang&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${commons-lang-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;log4j&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;log4j&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${log4j-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;com.lowagie&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;itext&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;1.4.8&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;rome&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;rome&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;0.9&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.codehaus.xfire&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;xfire-aegis&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${xfire-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.codehaus.xfire&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;xfire-core&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${xfire-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.codehaus.xfire&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;xfire-spring&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${xfire-version}&amp;lt;/version&amp;gt;&lt;br /&gt;     &amp;lt;exclusions&amp;gt;&lt;br /&gt;       &amp;lt;exclusion&amp;gt;&lt;br /&gt;         &amp;lt;artifactId&amp;gt;spring&amp;lt;/artifactId&amp;gt;&lt;br /&gt;         &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;&lt;br /&gt;       &amp;lt;/exclusion&amp;gt;&lt;br /&gt;     &amp;lt;/exclusions&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.codehaus.xfire&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;xfire-java5&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;1.2.5&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.codehaus.xfire&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;xfire-generator&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${xfire-version}&amp;lt;/version&amp;gt;&lt;br /&gt;     &amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;&lt;br /&gt;     &amp;lt;exclusions&amp;gt;&lt;br /&gt;       &amp;lt;exclusion&amp;gt;&lt;br /&gt;         &amp;lt;artifactId&amp;gt;spring&amp;lt;/artifactId&amp;gt;&lt;br /&gt;         &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;&lt;br /&gt;       &amp;lt;/exclusion&amp;gt;&lt;br /&gt;     &amp;lt;/exclusions&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.codehaus.xfire&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;xfire-jaxws&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${xfire-version}&amp;lt;/version&amp;gt;&lt;br /&gt;     &amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;org.apache.activemq&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;activemq-core&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${activemq-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;fm.void.jetm&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;jetm&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${jetm-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;fm.void.jetm&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;jetm-optional&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${jetm-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;cglib&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;cglib-nodep&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;${cglib-version}&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt; &amp;lt;/dependencies&amp;gt;&lt;br /&gt; &amp;lt;properties&amp;gt;&lt;br /&gt;   &amp;lt;activemq-version&amp;gt;4.1.1&amp;lt;/activemq-version&amp;gt;&lt;br /&gt;   &amp;lt;spring-webflow-version&amp;gt;1.0.3&amp;lt;/spring-webflow-version&amp;gt;&lt;br /&gt;   &amp;lt;spring-version&amp;gt;2.0.5&amp;lt;/spring-version&amp;gt;&lt;br /&gt;   &amp;lt;junit-version&amp;gt;3.8.2&amp;lt;/junit-version&amp;gt;&lt;br /&gt;   &amp;lt;commons-lang-version&amp;gt;2.1&amp;lt;/commons-lang-version&amp;gt;&lt;br /&gt;   &amp;lt;dwr-version&amp;gt;2.0.1&amp;lt;/dwr-version&amp;gt;&lt;br /&gt;   &amp;lt;jstl-version&amp;gt;1.0&amp;lt;/jstl-version&amp;gt;&lt;br /&gt;   &amp;lt;taglibs-standard-version&amp;gt;1.1.1&amp;lt;/taglibs-standard-version&amp;gt;&lt;br /&gt;   &amp;lt;hsqldb-version&amp;gt;1.8.0.7&amp;lt;/hsqldb-version&amp;gt;&lt;br /&gt;   &amp;lt;servlet-api-version&amp;gt;2.5&amp;lt;/servlet-api-version&amp;gt;&lt;br /&gt;   &amp;lt;log4j-version&amp;gt;1.2.14&amp;lt;/log4j-version&amp;gt;&lt;br /&gt;   &amp;lt;commons-fileupload-version&amp;gt;1.1.1&amp;lt;/commons-fileupload-version&amp;gt;&lt;br /&gt;   &amp;lt;xfire-version&amp;gt;1.2.4&amp;lt;/xfire-version&amp;gt;&lt;br /&gt;   &amp;lt;jetm-version&amp;gt;1.2.1&amp;lt;/jetm-version&amp;gt;&lt;br /&gt;   &amp;lt;cglib-version&amp;gt;2.1_3&amp;lt;/cglib-version&amp;gt;&lt;br /&gt; &amp;lt;/properties&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Another thing: If you want the unit tests to succeed, you have to put a file called &lt;span style=&quot;font-family: courier new;&quot;&gt;football.jpg&lt;/span&gt; into the folder &lt;span style=&quot;font-family: courier new;&quot;&gt;src\test\resources&lt;/span&gt;. Otherwise, you will get an error when calling the unit tests.&lt;br /&gt;&lt;br /&gt;By performing this action, I was able to run &lt;span style=&quot;font-family: courier new;&quot;&gt;mvn test&lt;/span&gt; successfully. After downloading loads and loads of packages, of course :)</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/7351890652518544512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/7351890652518544512' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/7351890652518544512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/7351890652518544512'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/05/getting-pix-application-to-run.html' title='Getting the PIX application to run'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-1595812907398235273</id><published>2008-05-15T10:19:00.011+02:00</published><updated>2008-05-19T17:30:30.853+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="maven"/><category scheme="http://www.blogger.com/atom/ns#" term="mmis2"/><category scheme="http://www.blogger.com/atom/ns#" term="spring"/><category scheme="http://www.blogger.com/atom/ns#" term="uni"/><title type='text'>First steps with Spring and Maven</title><content type='html'>I just started to get acquainted with Spring and Maven two, after currently working on a project using Spring and Hibernate with the Appfuse maven2 archetype. Since this archetype gives me some headache when trying to compile and run the project, I decided to restart from the basics in order to get a grip on all the technology we&#39;re using.&lt;br /&gt;&lt;br /&gt;I start off with the tutorials and demo projects of the book &lt;a href=&quot;http://www.amazon.com/Beginning-Spring-Framework-Thomas-Velde/dp/047010161X&quot;&gt;Beginning Spring Framework 2&lt;/a&gt;. You can find all the demos &lt;a href=&quot;http://media.wiley.com/product_ancillary/1X/04701016/DOWNLOAD/begspringcode_121607.zip&quot;&gt;online&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The first example can be found in the directory &lt;span style=&quot;font-family:courier new;&quot;&gt;src\chapter1\springfirst&lt;/span&gt;. It is a modularized calculator, taking command line arguments and -- depending on the configuration -- either adds or multiplies the arguments.&lt;br /&gt;&lt;br /&gt;The pom.xml file in the base directory contains all dependencies needed, so Maven2 will download these dependencies to compile and run the application. The compilation process ist started by calling&lt;br /&gt;&lt;pre&gt;mvn compile&lt;br /&gt;&lt;/pre&gt;on the command line. Dependencies (&lt;span style=&quot;font-family:courier new;&quot;&gt;spring-aspects, spring-aop, junit&lt;/span&gt;) will be downloaded upon the first call.&lt;br /&gt;&lt;br /&gt;The target directory now contains the compiled code and needed resources. The example can be started by calling&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mvn exec:java -Dexec.mainClass=com.wrox.begspring.CalculateSpring -Dexec.args=&quot;3000 3&quot;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This starts the application and calculates the result (either add oder multiply 3000 and 3).&lt;br /&gt;&lt;br /&gt;How it works:&lt;br /&gt;&lt;br /&gt;The main class &lt;span style=&quot;font-family:courier new;&quot;&gt;CalculateSpring&lt;/span&gt; uses Spring in order to execute the multiplication. It uses a bean factory that can be configured in the bean.xml file. The &lt;span style=&quot;font-family:courier new;&quot;&gt;bean.xml&lt;/span&gt; looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;bean id=&quot;screen&quot; class=&quot;com.wrox.begspring.ScreenWriter&quot; /&amp;gt;&lt;br /&gt;&amp;lt;bean id=&quot;multiply&quot; class=&quot;com.wrox.begspring.OpMultiply&quot; /&amp;gt;&lt;br /&gt;&amp;lt;bean id=&quot;add&quot; class=&quot;com.wrox.begspring.OpAdd&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bean id=&quot;opsbean&quot; class=&quot;com.wrox.begspring.CalculateSpring&quot;&amp;gt;&lt;br /&gt;&amp;lt;property name=&quot;ops&quot; ref=&quot;multiply&quot; /&amp;gt;&lt;br /&gt;&amp;lt;property name=&quot;writer&quot; ref=&quot;screen&quot;/&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;/pre&gt;Here, the beans are registered and wired.&lt;br /&gt;&lt;br /&gt;How the program execution works: Spring creates instances of &lt;span style=&quot;font-family:courier new;&quot;&gt;ScreenWriter&lt;/span&gt;, &lt;span style=&quot;font-family:courier new;&quot;&gt;OpMultiply &lt;/span&gt;and &lt;span style=&quot;font-family:courier new;&quot;&gt;OpAdd &lt;/span&gt;and then another instance of &lt;span style=&quot;font-family:courier new;&quot;&gt;CalculateSpring &lt;/span&gt;where it sets references to the defined writer (screen) and operation (multiply). If you change the last part of beans.xml to&lt;br /&gt;&lt;pre&gt;&amp;lt;bean id=&quot;opsbean&quot; class=&quot;com.wrox.begspring.CalculateSpring&quot;&amp;gt;&lt;br /&gt;&amp;lt;property name=&quot;ops&quot; ref=&quot;add&quot; /&amp;gt;&lt;br /&gt;&amp;lt;property name=&quot;writer&quot; ref=&quot;screen&quot;/&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;/pre&gt;and execute the program, you can see that the operation has changed from multiplication to addition.&lt;br /&gt;&lt;br /&gt;These are the first steps with Spring and its dependency injection mechanism. More to come, hopefully.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;Edit:&lt;/span&gt; There is another way of wiring the objects, namely auto-wiring by type. This looks something like this:&lt;br /&gt;&lt;pre&gt;&amp;lt;bean id=&quot;screen&quot; class=&quot;com.wrox.begspring.ScreenWriter&quot; /&amp;gt;&lt;br /&gt;&amp;lt;bean id=&quot;add&quot; class=&quot;com.wrox.begspring.OpAdd&quot; /&amp;gt;&lt;br /&gt;&amp;lt;bean id=&quot;opsbean&quot; class=&quot;com.wrox.begspring.CalculateSpring&quot; autowire=&quot;byType&quot; /&amp;gt;&lt;br /&gt;&lt;/pre&gt;Put this in your &lt;span style=&quot;font-family: courier new;&quot;&gt;beans.xml&lt;/span&gt; and the wiring will happen automagically.</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/1595812907398235273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/1595812907398235273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/1595812907398235273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/1595812907398235273'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/05/first-steps-with-spring-and-maven.html' title='First steps with Spring and Maven'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7830640718498208421.post-2040124717289220948</id><published>2008-05-14T18:20:00.002+02:00</published><updated>2008-05-14T18:28:22.276+02:00</updated><title type='text'>Brainfukk blog launched</title><content type='html'>&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Finally&lt;/span&gt;, I &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;launched&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;first&lt;/span&gt; blog. &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;It&lt;/span&gt;&#39;s more a &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;notepad for myself and some other guys than a serious blog. Nevertheless, perhaps somebody might find some of this information useful.&lt;br /&gt;&lt;br /&gt;I&#39;ll mainly my texts in English, since this is the main language my sources are using (even though I&#39;m a native German speaker -- well, Austrian, but I can speak German fluently as well :)).&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainfukk.blogspot.com/feeds/2040124717289220948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7830640718498208421/2040124717289220948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/2040124717289220948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7830640718498208421/posts/default/2040124717289220948'/><link rel='alternate' type='text/html' href='http://brainfukk.blogspot.com/2008/05/brainfukk-blog-launched.html' title='Brainfukk blog launched'/><author><name>Norrin Radd</name><uri>http://www.blogger.com/profile/00938885932433333268</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF1oUfo1T9G0c9ooYKhdWmxbcttpbglBlK2JnQjKKwzzwsjcUj1aR54VDviDtyR0XVJ2a0qpVZqJ4Yf0MVnRvMtxn0sYJMFWZVj99qrWnYtWwBxBMrvJTHVmDBsqhtvUY/s220/Surfertoon.jpg'/></author><thr:total>0</thr:total></entry></feed>