<?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-2776101062641534104</id><updated>2011-12-02T13:22:28.772+01:00</updated><category term='gender equality flaws'/><category term='gender equality'/><category term='wicket'/><title type='text'>Pure Blood Nigerian: Sometimes Technological. Other times I plead the ignorance amendment</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techfreeman.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://techfreeman.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Adedayo Ominiyi</name><uri>http://www.blogger.com/profile/13537905701073254794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-mDyyVDSJSgU/TnvI72pcfhI/AAAAAAAAACE/sjY_sgES9ME/s220/topcat_1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2776101062641534104.post-6298172237205994744</id><published>2011-12-02T13:22:00.000+01:00</published><updated>2011-12-02T13:22:28.794+01:00</updated><title type='text'>Bean Validation Made Simple With JSR 303</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a href="http://jcp.org/en/jsr/detail?id=303" target="_blank"&gt;JSR 303&lt;/a&gt; (Bean Validation) is the specification of the Java API for JavaBean validation in Java EE and Java SE. Simply put it provides an easy way of ensuring that the properties of your JavaBean(s) have the right values in them. This post aims to show you how to use the Bean Validation API in your project.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp; &amp;nbsp; To begin, imagine that you were building the next Facebook and you would need member(s) to register to use your application. In order to successfully register, prospective member(s) have to provide the following: a last name, a first name, a gender, an email address and a date of birth. In addition, the individual who is registering must be between 18 and 150 years inclusive.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;Prior to JSR 303, you probably would have needed a bunch of if-else statements to achieve the above requirements. Thankfully, not any more.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;We will begin by creating a JavaBean named 'Member' that would hold all the properties we are interested in.&lt;/div&gt;&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="2" cellpadding="3" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;code&gt;&lt;span style="color: grey;"&gt;01&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;validationapiblog.model;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;02&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;03&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.util.Date;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;04&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;validationapiblog.enums.Gender;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;05&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;06&lt;/span&gt;&amp;nbsp;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;07&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;08&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@author&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Adedayo&amp;nbsp;Ominiyi&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;09&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Member&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;lastName&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;firstName&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;14&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Gender&amp;nbsp;gender&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;emailAddress&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Date&amp;nbsp;dateOfBirth&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;18&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Member&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;19&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;20&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;21&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;getFirstName&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;22&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;firstName;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;23&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;24&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;25&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setFirstName&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;firstName&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;26&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.firstName&amp;nbsp;=&amp;nbsp;firstName;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;27&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;28&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;29&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Gender&amp;nbsp;getGender&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;30&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;gender;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;31&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;32&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;33&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setGender&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Gender&amp;nbsp;gender&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;34&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.gender&amp;nbsp;=&amp;nbsp;gender;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;35&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;36&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;37&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;getLastName&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;38&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;lastName;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;39&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;40&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;41&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setLastName&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;lastName&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;42&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.lastName&amp;nbsp;=&amp;nbsp;lastName;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;43&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;44&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;45&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Date&amp;nbsp;getDateOfBirth&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;46&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;dateOfBirth;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;47&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;48&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;49&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setDateOfBirth&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Date&amp;nbsp;dateOfBirth&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;50&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.dateOfBirth&amp;nbsp;=&amp;nbsp;dateOfBirth;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;51&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;52&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;53&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Integer&amp;nbsp;getAge&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;54&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.dateOfBirth&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;55&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;calculate&amp;nbsp;age&amp;nbsp;of&amp;nbsp;member&amp;nbsp;here&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;56&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;57&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;58&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;59&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;60&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;getEmailAddress&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;61&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;emailAddress;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;62&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;63&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;64&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setEmailAddress&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;emailAddress&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;65&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.emailAddress&amp;nbsp;=&amp;nbsp;emailAddress;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;66&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;67&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;/code&gt;       &lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;    &lt;td align="right"&gt;&lt;small&gt;&lt;a href="http://www.java2html.de/" target="_blank"&gt;Java2html&lt;/a&gt;&lt;/small&gt;    &lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;The gender property is a simple enum and is shown below&lt;br /&gt;&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="2" cellpadding="3" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;code&gt;&lt;span style="color: grey;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;validationapiblog.enums;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@author&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Adedayo&amp;nbsp;Ominiyi&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;enum&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Gender&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;8&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;MALE,&amp;nbsp;FEMALE;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;/code&gt;       &lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;    &lt;td align="right"&gt;&lt;small&gt;&lt;a href="http://www.java2html.de/" target="_blank"&gt;Java2html&lt;/a&gt;&lt;/small&gt;    &lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Now that we have the pieces to the puzzle. The next step is to download an implementation of JSR 303. For this post we would be using the reference implementation namely &lt;a href="http://www.hibernate.org/subprojects/validator.html" target="_blank"&gt;Hibernate Validator&lt;/a&gt;. The version as at the time this post was written is 4.2.0 Final. After downloading it you should add the following 4 jars to the classpath of your project:&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;hibernate-validator-4.2.0.Final.jar&lt;/li&gt;&lt;li&gt;hibernate-validator-annotation-processor-4.2.0.Final.jar&lt;/li&gt;&lt;li&gt;slf4j-api-1.6.1.jar&lt;/li&gt;&lt;li&gt;validation-api-1.0.0.GA.jar&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Once this is done, you simply annotate the 'Member' JavaBean we created earlier to indicate which properties need be validated. You can annotate either the fields or the accessor (or getter) methods of the JavaBean. In this post I will be annotating the accessor methods.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="2" cellpadding="3" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;code&gt;&lt;span style="color: grey;"&gt;01&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;validationapiblog.model;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;02&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;03&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.util.Date;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;04&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;javax.validation.constraints.Max;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;05&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;javax.validation.constraints.Min;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;06&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;javax.validation.constraints.NotNull;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;07&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;javax.validation.constraints.Past;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;08&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;javax.validation.constraints.Pattern;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;09&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.hibernate.validator.constraints.Email;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.hibernate.validator.constraints.NotBlank;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;validationapiblog.enums.Gender;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;14&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@author&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Adedayo&amp;nbsp;Ominiyi&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Member&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;18&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;19&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;lastName&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;20&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;firstName&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;21&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Gender&amp;nbsp;gender&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;22&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;emailAddress&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;23&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Date&amp;nbsp;dateOfBirth&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;24&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;25&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Member&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;26&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;27&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;28&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@NotNull&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"First&amp;nbsp;name&amp;nbsp;is&amp;nbsp;compulsory"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;29&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@NotBlank&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"First&amp;nbsp;name&amp;nbsp;is&amp;nbsp;compulsory"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;30&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@Pattern&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;regexp&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"[a-z-A-Z]*"&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"First&amp;nbsp;name&amp;nbsp;has&amp;nbsp;invalid&amp;nbsp;characters"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;31&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;getFirstName&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;32&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;firstName;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;33&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;34&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;35&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setFirstName&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;firstName&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;36&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.firstName&amp;nbsp;=&amp;nbsp;firstName;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;37&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;38&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;39&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@NotNull&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"Gender&amp;nbsp;is&amp;nbsp;compulsory"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;40&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Gender&amp;nbsp;getGender&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;41&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;gender;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;42&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;43&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;44&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setGender&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Gender&amp;nbsp;gender&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;45&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.gender&amp;nbsp;=&amp;nbsp;gender;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;46&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;47&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;48&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@NotNull&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"Last&amp;nbsp;name&amp;nbsp;is&amp;nbsp;compulsory"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;49&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@NotBlank&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"Last&amp;nbsp;name&amp;nbsp;is&amp;nbsp;compulsory"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;50&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@Pattern&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;regexp&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"[a-z-A-Z]*"&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"Last&amp;nbsp;name&amp;nbsp;has&amp;nbsp;invalid&amp;nbsp;characters"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;51&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;getLastName&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;52&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;lastName;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;53&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;54&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;55&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setLastName&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;lastName&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;56&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.lastName&amp;nbsp;=&amp;nbsp;lastName;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;57&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;58&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;59&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@Past&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"Date&amp;nbsp;of&amp;nbsp;Birth&amp;nbsp;must&amp;nbsp;be&amp;nbsp;the&amp;nbsp;past"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;60&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@NotNull&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;61&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Date&amp;nbsp;getDateOfBirth&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;62&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;dateOfBirth;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;63&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;64&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;65&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setDateOfBirth&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Date&amp;nbsp;dateOfBirth&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;66&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.dateOfBirth&amp;nbsp;=&amp;nbsp;dateOfBirth;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;67&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;68&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;69&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@Min&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;value&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #990000;"&gt;18&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"Age&amp;nbsp;must&amp;nbsp;be&amp;nbsp;greater&amp;nbsp;than&amp;nbsp;or&amp;nbsp;equal&amp;nbsp;to&amp;nbsp;18"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;70&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@Max&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;value&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #990000;"&gt;150&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"Age&amp;nbsp;must&amp;nbsp;be&amp;nbsp;less&amp;nbsp;than&amp;nbsp;or&amp;nbsp;equal&amp;nbsp;to&amp;nbsp;150"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;71&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Integer&amp;nbsp;getAge&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;72&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.dateOfBirth&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;73&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;calculate&amp;nbsp;age&amp;nbsp;of&amp;nbsp;member&amp;nbsp;here&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;74&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;75&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;76&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;77&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;78&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@NotNull&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;message=&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"Email&amp;nbsp;Address&amp;nbsp;is&amp;nbsp;compulsory"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;79&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@NotBlank&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;message=&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"Email&amp;nbsp;Address&amp;nbsp;is&amp;nbsp;compulsory"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;80&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@Email&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;message&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"Email&amp;nbsp;Address&amp;nbsp;is&amp;nbsp;not&amp;nbsp;a&amp;nbsp;valid&amp;nbsp;format"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;81&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;getEmailAddress&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;82&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;emailAddress;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;83&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;84&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;85&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setEmailAddress&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;String&amp;nbsp;emailAddress&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;86&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.emailAddress&amp;nbsp;=&amp;nbsp;emailAddress;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;87&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;88&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;/code&gt;       &lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;    &lt;td align="right"&gt;&lt;small&gt;&lt;a href="http://www.java2html.de/" target="_blank"&gt;Java2html&lt;/a&gt;&lt;/small&gt;    &lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Please note that these are just some of the annotations available in JSR 303. In addition Hibernate Validator introduces a few of its own that are not in the specification. Feel free to study the annotations not in this post in your free time you might find something interesting. There is also the ability to create your own custom validator if the need arises. Now lets review the annotations used:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;@NotNull - Checks that the annotated value is not null. Unfortunately it doesn't check for empty string values&lt;/li&gt;&lt;li&gt;@Pattern - Checks if the annotated string matches the regular expression given. We used it to ensure that the last name and first name properties have valid string values&lt;/li&gt;&lt;li&gt;@Past - The annotated element must be a date in the past.&lt;/li&gt;&lt;li&gt;@Min - The annotated element must be a number whose value must be greater or equal to the specified minimum&lt;/li&gt;&lt;li&gt;@Max - The annotated element must be a number whose value must be lower or equal to the specified maximum&lt;/li&gt;&lt;li&gt;@NotBlank - Checks that the annotated string is not null and the trimmed length is greater than 0. This annotation is not in JSR 303&lt;/li&gt;&lt;li&gt;@Email - Checks whether the specified string is a valid email address. This annotation is also not in JSR 303&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;To test the validation we could use a unit test as shown below.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="2" cellpadding="3" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;validationapiblog.test;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.util.Set;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;javax.validation.ConstraintViolation;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;javax.validation.Validation;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;javax.validation.Validator;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;javax.validation.ValidatorFactory;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;validationapiblog.model.Member;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.junit.Test;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.junit.Assert.*;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@author&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Adedayo&amp;nbsp;Ominiyi&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ValidationAPIUnitTest&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ValidationAPIUnitTest&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #646464;"&gt;@Test&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;testMemberWithNoValues&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Member&amp;nbsp;member&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Member&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;validate&amp;nbsp;the&amp;nbsp;input&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ValidatorFactory&amp;nbsp;factory&amp;nbsp;=&amp;nbsp;Validation.buildDefaultValidatorFactory&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Validator&amp;nbsp;validator&amp;nbsp;=&amp;nbsp;factory.getValidator&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Set&amp;lt;ConstraintViolation&amp;lt;Member&amp;gt;&amp;gt;&amp;nbsp;violations&amp;nbsp;=&amp;nbsp;validator.validate&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;member&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;assertEquals&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;violations.size&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #990000;"&gt;5&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;/code&gt;       &lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;    &lt;td align="right"&gt;&lt;small&gt;&lt;a href="http://www.java2html.de/" target="_blank"&gt;Java2html&lt;/a&gt;&lt;/small&gt;    &lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In conclusion, you should experiment with JSR 303 and see for yourself which annotations you like. Thank you and have fun.&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/2776101062641534104-6298172237205994744?l=techfreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techfreeman.blogspot.com/feeds/6298172237205994744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techfreeman.blogspot.com/2011/12/bean-validation-made-simple-with-jsr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/6298172237205994744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/6298172237205994744'/><link rel='alternate' type='text/html' href='http://techfreeman.blogspot.com/2011/12/bean-validation-made-simple-with-jsr.html' title='Bean Validation Made Simple With JSR 303'/><author><name>Adedayo Ominiyi</name><uri>http://www.blogger.com/profile/13537905701073254794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-mDyyVDSJSgU/TnvI72pcfhI/AAAAAAAAACE/sjY_sgES9ME/s220/topcat_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2776101062641534104.post-8468240496176021842</id><published>2011-09-21T10:23:00.002+01:00</published><updated>2011-09-23T01:16:15.385+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gender equality'/><category scheme='http://www.blogger.com/atom/ns#' term='gender equality flaws'/><title type='text'>Gender Equality: A Noble but Flawed Cause</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 18px;"&gt;Disclaimer&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 18px;"&gt;: This post is strictly about gender equality and not about women rights. I am in no way an advocate of beating women, mutilating their genitals or any other inhumane acts against them. I love women (in a can’t live with them, can’t live without them way). In addition if the following does not apply to you or you don’t agree. Instead of bashing me with words you can kindly tell us how you or your life is different and create a learning experience for the rest of us.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif; font-size: 16px; line-height: 18px;"&gt;The ideology behind gender equality advocacy is “It doesn’t’ matter what your gender is, we are equal in everything”. That is, no gender stereotyping. That is the ideal; now let us discuss the reality.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif; font-size: 16px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif; font-size: 16px; line-height: 18px;"&gt;To start with I will make the bold claim that “In today’s world, most women are guilty of gender stereotyping”. You will see what I mean shortly.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif; font-size: 16px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif; font-size: 16px; line-height: 18px;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;I always thought that the goal of any anti-&lt;insert campaign="" here="" your=""&gt; (such as anti-racism, anti-tribalism, anti-genderalism (if that is even a word) and so on) was to walk (or work) under the guise that the factor that gave rise to the “-ism” in the first place did not exist (such as a black man being black or a white man being white). Wouldn’t it be a cool sight when a white man can say to a black man in a truly race-equal environment “Hey black man do you want to go get a drink” and the black man replies without taking offence “Sure white boy I would love to”. Of course this kind of dialogue should have taken place before they exchange names if not it would be stupid. But I digress. Today’s write-up asks the question, why is it that when most women want to get you to do something you don’t want to do or can’t do they always use 1 of the following 2 statements (They are particularly used when money is involved):&lt;/insert&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif; font-size: 16px; line-height: 18px;"&gt;You don’t love me (if you are in a relationship or trying to get into one with her)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif; font-size: 16px; line-height: 18px;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;Are you not a man?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;The former I will skip for today. The latter is the one of interest. WTF (kids please close your ears), I thought the whole gender equality thing was so that we stop such gender stereotyping.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;It is amazing how the same gender of human beings can go from saying “What a man can do a woman can do better” to saying something as contradicting as “Are you not a man?” all in the same 24 hour clock. Interesting isn’t it? In the first statement, she is strong and superhuman and in the second statement she suddenly became the weak and helpless victim. I don’t know if I should call this hypocrisy, vacuousness or mental manipulation. Wouldn’t it be a truly gender equal world when a man can say to a woman “You sleep on the couch while I sleep in the bed”. Without the man hearing a cliché “You are not even a gentleman”. More gender stereotyping in action if you ask me. Seriously what happened to my fundamental human right and free will to choose to say no or yes when I want to. I am not sure if you see where I am going with this.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;"&gt;My response is simple. Real men can see through this act. The only men who fall for it are babies, wankers or have less testosterone than the rest of us. Nobody is trying to disrespect you or not help out when we can. But when a man says he can’t do something, he can’t. Let it go. Well I pity the fool who falls victim of this lame act and ends up dead in a bid to please a selfish woman. I rest my case.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&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/2776101062641534104-8468240496176021842?l=techfreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techfreeman.blogspot.com/feeds/8468240496176021842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techfreeman.blogspot.com/2011/09/gender-equality-noble-but-flawed-cause.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/8468240496176021842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/8468240496176021842'/><link rel='alternate' type='text/html' href='http://techfreeman.blogspot.com/2011/09/gender-equality-noble-but-flawed-cause.html' title='Gender Equality: A Noble but Flawed Cause'/><author><name>Adedayo Ominiyi</name><uri>http://www.blogger.com/profile/13537905701073254794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-mDyyVDSJSgU/TnvI72pcfhI/AAAAAAAAACE/sjY_sgES9ME/s220/topcat_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2776101062641534104.post-6740312547063265405</id><published>2010-09-25T10:40:00.025+01:00</published><updated>2010-09-25T11:46:42.552+01:00</updated><title type='text'>Playing with a DBMonster</title><content type='html'>&lt;p style="text-align: justify;"&gt;I recently had the privilege of using &lt;a href="http://dbmonster.kernelpanic.pl"&gt;DBMonster&lt;/a&gt; when I needed to generate some random test data for a MySQL database. What I am about to demonstrate is a simple use of the DBMonster tool.&lt;br /&gt;                                                           &lt;br /&gt;The SQL statement for the simple table used in this writeup is as follows (of course you will have to create a database first):&lt;br /&gt;&lt;br /&gt;    CREATE TABLE person (&lt;br /&gt;        id int not null auto_increment,&lt;br /&gt;        last_name varchar(45) not null,&lt;br /&gt;        first_name varchar(45) not null,&lt;br /&gt;        gender varchar(6) not null,&lt;br /&gt;        date_of_birth date not null,&lt;br /&gt;        PRIMARY KEY  (id)&lt;br /&gt;    );&lt;br /&gt;&lt;br /&gt;Note that, the SQL statement is for MySQL only although if you remove the auto_increment statement it should work for your database.&lt;br /&gt;&lt;br /&gt;Now that we are all set we can start to use DBMonster. The simplest way to start is by using DBMonster to reverse engineer the database table and generate a schema for itself. Then you can tweak the schema to your satisfaction.&lt;br /&gt;&lt;br /&gt;To start (you will need access to the JDBC Driver for your database):&lt;br /&gt;a)    &lt;a href="http://dbmonster.kernelpanic.pl/downloads.html"&gt;Download DBMonster&lt;/a&gt; and unzip. I will call this directory "&amp;lt;DBMonster_Home&amp;gt;".&lt;br /&gt;b)    In the &amp;lt;DBMonster_Home&amp;gt; directory, create a file call "dbmonster.properties". In this file insert the following (each on a separate line):&lt;br /&gt;        dbmonster.jdbc.driver=com.mysql.jdbc.Driver&lt;br /&gt;        dbmonster.jdbc.url=jdbc:mysql://localhost:3306/&amp;lt;database_name&amp;gt;&lt;br /&gt;        dbmonster.jdbc.username=&amp;lt;username&amp;gt;&lt;br /&gt;        dbmonster.jdbc.password=&amp;lt;password&amp;gt;&lt;br /&gt;c)    When this is done, launch the command prompt and navigate to the &amp;lt;DBMonster_Home&amp;gt; directory, at the command prompt type the following (without the inverted commas):&lt;br /&gt;        "java -classpath ../mysql-connector-java-5.1.6-bin.jar;dbmonster-core-1.0.3.jar pl.kernelpanic.dbmonster.Launcher -c dbmonster.properties --grab -o dbmonster-schema.xml"&lt;br /&gt;d) A Schema file called "dbmonster-schema.xml" should have been generated for you. We will be making some changes to this file.&lt;br /&gt;&lt;br /&gt;Note: Do not close the command prompt we will be reusing it later&lt;br /&gt;&lt;br /&gt;The changes we will be making in the dbmonster-schema.xml file are:&lt;br /&gt;a) We will reduce the number of rows to 50 unless you have the time to wait for 1000 entries&lt;br /&gt;b) For the last_name and first_name fields, spaces should not be allowed. We will change that.&lt;br /&gt;c) It makes no sense for gender to be anything other than Male or Female. Fortunately, DBMonster has a DictionaryGenerator we can use for this.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;To proceed,&lt;br /&gt;a) Open the dbmonster-schema.xml file in your favorite XML editor.&lt;br /&gt;b) Look for &amp;lt;table name="person" rows="1000"&amp;gt; and change to &amp;lt;table name="person" rows="50"&amp;gt;&lt;br /&gt;c) Also look for &amp;lt;column name="last_name" databaseDefault="false"&amp;gt;. Within this tag, there should be a &amp;lt;property name="allowSpaces" value="true"/&amp;gt; change that to &amp;lt;property name="allowSpaces" value="false"/&amp;gt;. Repeat this for the &amp;lt;column name="first_name" databaseDefault="false"&amp;gt; tag.&lt;br /&gt;d) Create a file called "gender_dictionary.txt" in the &amp;lt;DBMonster_Home&amp;gt; directory and put the following in it (each on a separate line)&lt;br /&gt;    Male&lt;br /&gt;    Female&lt;br /&gt;e) In the dbmonster-schema.xml file, replace the entire &amp;lt;column name="gender" databaseDefault="false"&amp;gt; tag withe the following:&lt;br /&gt;        &amp;lt;column name="gender" databaseDefault="false"&amp;gt;&lt;br /&gt;            &amp;lt;generator type="pl.kernelpanic.dbmonster.generator.DictionaryGenerator"&amp;gt;&lt;br /&gt;            &amp;lt;property name="unique" value="false"/&amp;gt;&lt;br /&gt;            &amp;lt;property name="dictFile" value="gender_dictionary.txt"/&amp;gt;&lt;br /&gt;            &amp;lt;/generator&amp;gt;&lt;br /&gt;        &amp;lt;/column&amp;gt;&lt;br /&gt;&lt;br /&gt;We have finished with the dbmonster-schema.xml file. To generate the test data run the following at the command prompt (without the inverted commas):&lt;br /&gt;"java -classpath ../mysql-connector-java-5.1.6-bin.jar;dbmonster-core-1.0.3.jar pl.kernelpanic.dbmonster.Launcher -s dbmonster-schema.xml -c dbmonster.properties"&lt;br /&gt;&lt;br /&gt;Do not hesitate to visit the &lt;a href="http://dbmonster.kernelpanic.pl"&gt;DBMonster Homepage&lt;/a&gt; to learn more.&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2776101062641534104-6740312547063265405?l=techfreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techfreeman.blogspot.com/feeds/6740312547063265405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techfreeman.blogspot.com/2010/09/i-recently-had-privilege-of-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/6740312547063265405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/6740312547063265405'/><link rel='alternate' type='text/html' href='http://techfreeman.blogspot.com/2010/09/i-recently-had-privilege-of-using.html' title='Playing with a DBMonster'/><author><name>Adedayo Ominiyi</name><uri>http://www.blogger.com/profile/13537905701073254794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-mDyyVDSJSgU/TnvI72pcfhI/AAAAAAAAACE/sjY_sgES9ME/s220/topcat_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2776101062641534104.post-2571521630210950315</id><published>2010-09-18T15:17:00.005+01:00</published><updated>2011-03-18T06:39:20.495+01:00</updated><title type='text'>All Religion is Flawed</title><content type='html'>&lt;div style="text-align: justify;"&gt;    Yes, you read that right "All Religion is Flawed". The goal of any religion is to portray the "Worshipped" of the chosen religion in a perspective that is far superior to the "worshipped" of alternative religions. And yet no one asks where all these chaos originated from. I was speaking to a guy the other day whose religion borders on the principle that the individual in his religion is God. That you made (or make) the decision of where you are now (or need to be) from where you have been (in terms of being born). So I asked him "Are you saying I have been here  (the world) before?". He said "Yes". Then I said "Are you saying I chose to come back here (the world)?". He said "Yes". So I said to him "Wake up. It doesn't make any sense why would I choose to come back to this sh*t hole if I have already been here before. And on top of that to be my own God I will have to be all-knowing, all-powerful and all-seeing". He said "You are". Then I replied "That means that all of us in this world are our own Gods". He said "We are". Damn, talk about a classic case of "too many cooks spoil the broth". Imagine one billion plus (1, 000, 000, 000+) all-knowing, all-powerful and all-seeing Gods working around on this earth for their individual, selfish reasons. Talk about Chaos.&lt;br /&gt;&lt;br /&gt;This isn't written in order to take a swipe at anyone's religion. I just got tired of listening to all the "Come and worship my God" or "My God is the shiznit" nonsense.&lt;br /&gt;&lt;br /&gt;I don't know a lot of what I expect from a religion but here are a few things that I know and believe:&lt;br /&gt;&lt;br /&gt;a) I am not God. Simply because I don't know it all, I don't see it all and I can't do it all&lt;br /&gt;b) It is not possible for any human being (flesh and blood) to be God (same reason as (a))&lt;br /&gt;c) There is a God. Simply because it takes creativity to create something as interesting as this world. The air I breathe, the water I drink, the food I eat, the women I see and so on. Its all perfect except for one (1) thing "chaos"&lt;br /&gt;d) It is clear that there is good and there is evil. And both definitely do not like one another.&lt;br /&gt;e) Human beings love to receive good things or things that make us feel good all the time (a promotion, lovely gifts, a check in the mail, a beautiful wife, a pretty girlfriend, a loving husband, a caring boyfriend, a cool car, a nice house, a tasty meal, a good hair do and so on. The list is endless). Which means we clearly lean towards good in our receiving but in our giving that's another story (the classic shades of gray symptom).&lt;br /&gt;&lt;br /&gt;To summarize, a good-loving intelligent God  created this world and created human beings to live in it. Note that I have reserved the use of the words: all-knowing, all-seeing and all-powerful to describe this God. Why did I say "good-loving"? Simply because I do not think that an "evil-loving" God will create beings who constantly love to receive good things. Evil likes evil, Good likes good. So it seems only natural that their offsprings would like what their parents like (at least on the receiving side of things).&lt;br /&gt;&lt;br /&gt;Now the question arises "How did a good-loving God create something (or someone) that loves to receives good things all the time but on the giving side of things, it (he/she) can give either good or evil?". Good question. Unfortunately, I don't know the answer to that. If I did I would be all-knowing (you see my point).&lt;br /&gt;&lt;br /&gt;However a few possibilities come to mind:&lt;br /&gt;a) A fundamental flaw in the design (or in computer speak, a bug in the programming). If this is true it would definitely undermine the perception of an all-knowing God that many religions proclaim. I hope you now see why I reserved the word "all-knowing" to describe the God that created this world.&lt;br /&gt;b) The design was done intentionally (or on purpose). Now this one is interesting. Why? Simply because it would mean good created something that could please evil. Maybe good has a crush on evil (pun intended). Reminds me of high school. This would definitely grant credibility to the "free-will" concept of some religions.&lt;br /&gt;&lt;br /&gt;In summary, if it was a flaw in the design then why hasn't it been fixed all these thousands of years later. Does it mean that the Creator doesn't care or simply doesn't mind that evil festers. Or does it simply mean the Creator cannot fix it. That would mean the Creator is not "all-powerful" as some would have us believe. On the other side of things, if it was a purposeful design why is it a criminal gets punished for using his/her design feature. That is, if the feature is there and it is used is it valid to consider it a crime. "I wonder, I really wonder". The same applies to religions with an "after-life" concept. Either way you will get punished for evil whether it was the Creator's design fault that the ability to do evil was there in the first place or whether you exercised your "free-will" in doing the evil. Both ways you are screwed.&lt;br /&gt;&lt;br /&gt;In conclusion, I am hoping you see why I began by saying "All Religion is Flawed". They all say the same thing "Follow me if you want to see the light". Unfortunately, there is no light at the end of all their tunnels. My advice, if you like receiving good so much, others like it as well so you should try as much as possible to give out as much good as you can on  a daily basis (or their might be a shortage of good in the world).&lt;br /&gt;&lt;br /&gt;Thank you, have a nice day and may the Creator (whoever that may be) be with you all. (Pun intended).&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/2776101062641534104-2571521630210950315?l=techfreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techfreeman.blogspot.com/feeds/2571521630210950315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techfreeman.blogspot.com/2010/09/yes-you-read-that-right-all-religion-is.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/2571521630210950315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/2571521630210950315'/><link rel='alternate' type='text/html' href='http://techfreeman.blogspot.com/2010/09/yes-you-read-that-right-all-religion-is.html' title='All Religion is Flawed'/><author><name>Adedayo Ominiyi</name><uri>http://www.blogger.com/profile/13537905701073254794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-mDyyVDSJSgU/TnvI72pcfhI/AAAAAAAAACE/sjY_sgES9ME/s220/topcat_1.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2776101062641534104.post-4147346078032014217</id><published>2010-04-27T19:29:00.005+01:00</published><updated>2010-04-27T19:38:51.211+01:00</updated><title type='text'>EJB Unit testing with OpenEJB 3.1.2 and Netbeans 6.8 (again without Maven)</title><content type='html'>I recently became interested in researching the possibility of unit-testing my Enterprise JavaBeans (EJBs) 3.0. This led me to look at &lt;a href="http://openejb.apache.org/"&gt;OpenEJB&lt;/a&gt;. Upon my journey through the OpenEJB documentation, I found that there were many examples at the &lt;a href="http://openejb.apache.org/download.html"&gt;OpenEJB Download page&lt;/a&gt;. However these examples are based on the Maven way of doing things and although it was possible to run them in Eclipse it wasn't so easy to do the same in Netbeans as I was offline when I was trying the examples (quite frankly my Maven skills is down there with my graphics skills (that is, almost non-existent)).&lt;br /&gt;   After reading through the simple-stateless unit test example I decided to try and run it in my Netbeans 6.8, it went well so I decided to document it for others who might be interested. Btw, my operating system (OS) is Windows Vista but I believe this should work on any OS that supports Java.&lt;br /&gt;&lt;br /&gt;    The first steps are (duh):&lt;br /&gt;a) Download and Install &lt;a href="http://netbeans.org/"&gt;Netbeans 6.8&lt;/a&gt;&lt;br /&gt;b) Download the OpenEJB Standalone Server (openejb-3.1.2.zip) and the OpenEJB Examples (openejb-examples-3.1.2.zip) from the &lt;a href="http://openejb.apache.org/download.html"&gt;OpenEJB website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have done that launch Netbean 6.8 and&lt;br /&gt;a) Choose New Project... from the menu.&lt;br /&gt;b) Choose Java from the Categories list and select Java Application from the Projects list. Click on the Next button&lt;br /&gt;c) Enter simple-stateless as the Project Name and click the Finish button&lt;br /&gt;d) In the Projects explorer to your left, right-click on the Source Packages and choose New-&gt;Java Package... (if you don't see the Java Package... option choose Other... and look under the Java Categories list)&lt;br /&gt;e) Enter org.superbiz.calculator as the Package Name and click Finish&lt;br /&gt;f) Again, right-click on the Test Packages and choose New-&gt;Java Package...&lt;br /&gt;g) Enter org.superbiz.calculator as the Package Name and click Finish&lt;br /&gt;h) Again, right-click on the Source Packages and choose New-&gt;Folder (if you don't see the Folder option choose Other... and look under the Other Categories list)&lt;br /&gt;i) Enter META-INF as the Folder Name and click Finish.&lt;br /&gt;j) Unzip the OpenEJB Examples zip file that you downloaded and look inside the directory. You will see a directory called simple-stateless. Enter that directory and navigate to src-&gt;main-&gt;java-&gt;org-&gt;superbiz-&gt;calculator. Select all the Java files (namely: CalculatorImpl.java, CalculatorLocal.java and CalculatorRemote.java), copy (Ctrl+C) and paste it into Netbeans by first selecting the org.superbiz.calculator package of the Source Packages that you created, right-click and choose Paste (Ctrl+V)&lt;br /&gt;k) Return to the simple-stateless directory and navigate to src-&gt;main-&gt;resources-&gt;META-INF. Copy the ejb-jar.xml file and paste it into Netbeans in the META-INF folder you created earlier.&lt;br /&gt;l) Return again to the simple-stateless directory and navigate to src-&gt;test-&gt;java-&gt;org-&gt;superbiz-&gt;calculator. Copy the CalculatorTest.java file and paste it into Netbeans by first selecting the org.superbiz.calculator package of the Test Packages that you created, right-click and choose Paste.&lt;br /&gt;m) Unzip the OpenEJB Statndalone Server that you downloaded. Go back to Netbeans and select Libraries from the Projects explorer. Right-click and choose Add Library...&lt;br /&gt;n) Select Create... from the Add Library dialog box that appears. Enter OpenEJB as the Library Name in the Create New Library dialog box and click Ok.&lt;br /&gt;o) Ensure that the Classpath tab is selected from the Customize Library dialog and click Add JAR/Folder. Navigate to the unzip OpenEJB Standalone Server and open the lib directory. Choose all the JAR files in the lib directory and click the Add JAR/Folder button of the Browse JAR/Folder file chooser.&lt;br /&gt;p) Click Ok to close the Customize Library dialog box.&lt;br /&gt;q) Make sure the OpenEJB library is selected from the Available Libraries of the Add Library dialog and click the Add Library button&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That is all that is required. Now all you have to do is choose the CalculatorTest.java from the Test Packages, right-click and choose Run File (Shift+F6) and watch your test fail spectaculously. Cool isn't it.&lt;br /&gt;Now right-click on the simple-stateless project and choose Clean and Build. When this is done, choose the CalculatorTest.java file and Run File again.&lt;br /&gt;Now the unit test should pass.&lt;br /&gt;&lt;br /&gt;Hope this wasn't too long. As I learn more I will definitely post it. Thanks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2776101062641534104-4147346078032014217?l=techfreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techfreeman.blogspot.com/feeds/4147346078032014217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techfreeman.blogspot.com/2010/04/ejb-unit-testing-with-openejb-312-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/4147346078032014217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/4147346078032014217'/><link rel='alternate' type='text/html' href='http://techfreeman.blogspot.com/2010/04/ejb-unit-testing-with-openejb-312-and.html' title='EJB Unit testing with OpenEJB 3.1.2 and Netbeans 6.8 (again without Maven)'/><author><name>Adedayo Ominiyi</name><uri>http://www.blogger.com/profile/13537905701073254794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-mDyyVDSJSgU/TnvI72pcfhI/AAAAAAAAACE/sjY_sgES9ME/s220/topcat_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2776101062641534104.post-9122377058151963455</id><published>2009-08-13T17:15:00.034+01:00</published><updated>2011-09-28T09:38:37.592+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wicket'/><title type='text'>Hello World Wicket Development without the Maven burden</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;For most of us in Nigeria (this does not apply to the privileged few) learning a new technology nowadays is usually a challenge. Imagine a situation where I am trying to learn how to use a technology like Tapestry 5 or Wicket for the first time and having to pick up another technology like Maven. Don't get me wrong Maven is cool (hope the Ant people are not annoyed. Ant is cool too).&lt;br /&gt;&lt;br /&gt;Okay I was in my little room feeling happy that I had just downloaded the Wicket 1.4 stable release using a free connection (I don't have one at home don't ask why) and I would like to try it out with its support for generics among others. I open up my Eclipse 3.4.0 and then I remember what happened when I first used Wicket 1.3 (refer to the Wicket Quickstart if you don't know what I am blabbing about). No Maven on this computer and no Internet. Damn. Hence this post was written to teach you how to use Wicket without relying on Maven. Read on if you are interested.&lt;br /&gt;&lt;br /&gt;This post assumes that you are familiar with Java, Eclipse (with the Java EE perspective) and that you have downloaded Wicket 1.4. Your Eclipse environment should also have been setup to run on a server like Apache Tomcat 6.&lt;br /&gt;&lt;br /&gt;These are the basic steps:&lt;br /&gt;a) In your Eclipse IDE start a new Dynamic Web Project (name the project HelloWorldWicket)&lt;br /&gt;&lt;br /&gt;b) Unzip your Wicket download to anywhere you like (for example, C:\apache-wicket-1.4.0)&lt;br /&gt;&lt;br /&gt;c) Navigate to the lib folder under the the folder where you unzipped Wicket and copy the file named wicket-1.4.0.jar to the WEB-INF/lib of your Eclipse project.&lt;br /&gt;&lt;br /&gt;d) Create 2 Java class files HelloWorldApplication.java and HelloWorld.java under the package helloworld (copy and paste the code for these files from this post)&lt;br /&gt;&lt;br /&gt;e) Create an html file called HelloWorld.html and place it in the sample package folder as the HelloWorld.java (copy and paste the code for this file from this post)&lt;br /&gt;&lt;br /&gt;f) Copy and paste the code for the web.xml file from this post and replace the WEB-INF/web.xml file in your eclipse project.&lt;br /&gt;&lt;br /&gt;g) If you try to run the project now your will get an error java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory. The tricky part starts now&lt;br /&gt;&lt;br /&gt;h) Navigate to the lib folder under the the folder where you unzipped Wicket. You will see a file called wicket-examples-1.4.0.war. Use the jar command to unzip the WEB/lib folder (for those that do not know the command is "&amp;lt;path_to_java_jdk_installation&amp;gt;/bin/jar -xvf &amp;lt;path_to_unzipped_wicket&amp;gt;/wicket-examples-1.4.0.war WEB-INF/lib" without the curly braces). The files we are interested in are called log4j-1.2.13.jar, slf4j-api-1.4.2.jar and slf4j-log4j12-1.4.2.jar. Copy these files to the WEB/lib of your Eclipse project and run the application. You should now see a nice Hello World by navigating your browser to http://localhost:8080/HelloWorldWicket/&lt;br /&gt;&lt;br /&gt;Hope this post is useful. As I promised the code for this post is found below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;HelloWorldApplication.java&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="2" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;helloworld;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;  &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.apache.wicket.Page;&lt;/span&gt;&amp;nbsp;  &lt;span style="color: #7f0055;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.apache.wicket.protocol.http.WebApplication;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;HelloWorldApplication&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;extends&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;WebApplication &lt;/span&gt;{&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #646464;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #646464;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;/span&gt;  &lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Class&amp;nbsp;getHomePage&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;  &lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;HelloWorld.&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;  &lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;  &lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: black;"&gt;} &lt;/span&gt;&lt;/code&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;     &lt;td align="right"&gt;&lt;small&gt; &lt;a href="http://www.java2html.de/" target="_blank"&gt;Java2html&lt;/a&gt;  &lt;/small&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;HelloWorld.java&lt;/span&gt; &lt;br /&gt;&lt;pre&gt;&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="2" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;code&gt; &lt;span style="color: #7f0055;"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;helloworld;&lt;/span&gt;  &lt;span style="color: white;"&gt;&lt;/span&gt;  &lt;span style="color: #7f0055;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.apache.wicket.markup.html.WebPage;&lt;/span&gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt; &lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.apache.wicket.markup.html.basic.Label;&lt;/span&gt;   &lt;span style="color: white;"&gt;&lt;/span&gt; &lt;span style="color: #7f0055;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;HelloWorld&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;extends&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;WebPage&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt; &amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;HelloWorld&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;  &lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Label&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"message"&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"HelloWorld"&lt;/span&gt;&lt;span style="color: black;"&gt;))&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;  &lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;     &lt;td align="right"&gt;&lt;small&gt; &lt;a href="http://www.java2html.de/" target="_blank"&gt;Java2html&lt;/a&gt;  &lt;/small&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;HelloWorld.html&lt;/span&gt;&lt;br /&gt;&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;html&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;body&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;span&lt;/span&gt;&lt;span style="color: #274796;"&gt; wicket:&lt;/span&gt;&lt;span style="color: #074726;"&gt;id&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"message"&lt;/span&gt;&lt;span style="color: #274796;"&gt; &lt;/span&gt;&lt;span style="color: #074726;"&gt;id&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"message"&lt;/span&gt;&lt;span style="color: #274796;"&gt; &lt;/span&gt;&lt;span style="color: #a65700;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;body&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;html&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;web.xml&lt;/span&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="HelloWorldWicket" version="2.5"&amp;gt;&lt;br /&gt;&amp;lt;display-name&amp;gt;HelloWorldWicket&amp;lt;/display-name&amp;gt;&lt;br /&gt;&amp;lt;filter&amp;gt;&lt;br /&gt;&amp;lt;filter-name&amp;gt;HelloWorldApplication&amp;lt;/filter-name&amp;gt;&lt;br /&gt;&amp;lt;filter-class&amp;gt;org.apache.wicket.protocol.http.WicketFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt;&amp;lt;init-param&amp;gt;&lt;br /&gt;&amp;lt;param-name&amp;gt;applicationClassName&amp;lt;/param-name&amp;gt;&lt;br /&gt;&amp;lt;param-value&amp;gt;helloworld.HelloWorldApplication&amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;lt;/init-param&amp;gt;&lt;br /&gt;&amp;lt;/filter&amp;gt;&lt;br /&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;&amp;lt;filter-name&amp;gt;HelloWorldApplication&amp;lt;/filter-name&amp;gt;&lt;br /&gt;&amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&amp;lt;/web-app&amp;gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2776101062641534104-9122377058151963455?l=techfreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techfreeman.blogspot.com/feeds/9122377058151963455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techfreeman.blogspot.com/2009/08/helloworld-wicket-development-for-maven.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/9122377058151963455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/9122377058151963455'/><link rel='alternate' type='text/html' href='http://techfreeman.blogspot.com/2009/08/helloworld-wicket-development-for-maven.html' title='Hello World Wicket Development without the Maven burden'/><author><name>Adedayo Ominiyi</name><uri>http://www.blogger.com/profile/13537905701073254794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-mDyyVDSJSgU/TnvI72pcfhI/AAAAAAAAACE/sjY_sgES9ME/s220/topcat_1.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2776101062641534104.post-28387716958451335</id><published>2009-07-27T17:57:00.007+01:00</published><updated>2009-07-30T14:38:42.735+01:00</updated><title type='text'>My First Post - Fun and Supposedly Meaningless</title><content type='html'>Thank God it seems I am finally able to post something. Awesome... I wasn't sure what it should be so I decided to practice with this somewhat meaningless writeup. Not much for my first post right.&lt;br /&gt;  Some of my posts may be tutorial-style while others may be just random babbling. When they do seem like random babbling take note that I have probably been overworked and I am probable just letting off some steam.&lt;br /&gt;  I am hoping that some of my posts will be useful to some people just as the posts of others have been useful to me (the 80-20 rule).&lt;br /&gt;  Have fun.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2776101062641534104-28387716958451335?l=techfreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techfreeman.blogspot.com/feeds/28387716958451335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techfreeman.blogspot.com/2009/07/my-first-post-fun-and-supposedly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/28387716958451335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2776101062641534104/posts/default/28387716958451335'/><link rel='alternate' type='text/html' href='http://techfreeman.blogspot.com/2009/07/my-first-post-fun-and-supposedly.html' title='My First Post - Fun and Supposedly Meaningless'/><author><name>Adedayo Ominiyi</name><uri>http://www.blogger.com/profile/13537905701073254794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-mDyyVDSJSgU/TnvI72pcfhI/AAAAAAAAACE/sjY_sgES9ME/s220/topcat_1.jpg'/></author><thr:total>0</thr:total></entry></feed>
