<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5936887697378880105</id><updated>2026-03-22T11:45:39.323-07:00</updated><title type='text'>Nutpan Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.nutpan.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-1872067209108943173</id><published>2016-07-06T05:10:00.007-07:00</published><updated>2022-07-25T03:31:51.895-07:00</updated><title type='text'>Run programs directly from your Blog or Website</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
  &lt;div&gt;
    &lt;span style=&quot;font-weight:bold&quot;&gt;Update 2022:&lt;/span&gt; JDoodle provides 4 options to include IDE to a blog/website. This article just covers one of them. Please refer &lt;a href=&quot;https://docs.jdoodle.com/integrating-compiler-ide-to-your-application&quot;&gt;JDoodle Documentation &lt;/a&gt; for more details.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;margin-top:20px&quot; trbidi=&quot;on&quot;&gt;
How nice it would be if the programs in your website/blog is directly executable without copying to an editor. Yes now it is possible with JDoodle.com.&lt;br /&gt;
&lt;br /&gt;
JDoodle is an online compiler and editor for Java, C, C++ and many more languages, now using JDoodle you can make the programs in your website executable for around 76+ languages supported by JDoodle. Below is a sample program which you can execute from this blog itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div data-pym-src=&quot;https://www.jdoodle.com/embed/v0/2?stdin=0&amp;arg=0&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is an another Java Program where you can pass Input Parameters to the program
&lt;br /&gt;
&lt;br /&gt;
&lt;div data-pym-src=&quot;https://www.jdoodle.com/embed/v0/3?stdin=0&amp;arg=1&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is an another Java Program where you can pass Standard Input (STDIN) inputs to the program
&lt;br /&gt;
&lt;br /&gt;
&lt;div data-pym-src=&quot;https://www.jdoodle.com/embed/v0/xm?stdin=1&amp;arg=0&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Including executable programs into your website/blog is easy
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Goto JDoodle.com&lt;/li&gt;
&lt;li&gt;Sign-in, if you don&#39;t have an account create one, it just takes a minute.&lt;/li&gt;
&lt;li&gt;select the language in which you want to write program&lt;/li&gt;
&lt;li&gt;create a program&lt;/li&gt;
&lt;li&gt;save the program&lt;/li&gt;
&lt;li&gt;click on Others --&amp;gt; Share/Embed&lt;/li&gt;
&lt;li&gt;copy embed url&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Goto your website insert the copied url in a div as follows&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;div data-pym-src=&quot;https://www.jdoodle.com/embed/v0/2?stdin=0&amp;amp;arg=0&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;include the below at &lt;u style=&quot;font-weight: bold;&quot;&gt;bottom &lt;/u&gt;&amp;nbsp;of the Blog Post or Website&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;script src=&quot;https://www.jdoodle.com/assets/jdoodle-pym.min.js&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
By Default embed url will display the stdin (for all languages) and arguments (java only) input boxes, they can be disabled by passing following parameters&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
stdin=0 (hide stdin box), arg=0 (hide argument box), changing from 0 to 1 will display the boxes.&lt;br /&gt;
  &lt;b&gt;To make the plugin writeable use rw=1 parameter in the url&lt;/b&gt;  
&lt;br /&gt;
To set default values for arguments use &quot;set_args&quot; parameter.
 &lt;br/&gt;
Alternatively you can access your shared programs in 3 different plain format (xml, json, text) by just adding format parameter at the end of your shared url. Below are some examples&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;
&lt;a data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=https://www.jdoodle.com/api/get-share/2?format%3Dtext&amp;amp;source=gmail&amp;amp;ust=1506679669787000&amp;amp;usg=AFQjCNFVXclPi0M6AEsa0yhF4A1oyOAR_g&quot; href=&quot;https://www.jdoodle.com/api/get-share/2?format=text&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;https://www.jdoodle.com/api/get-share/2?&lt;wbr&gt;&lt;/wbr&gt;format=text&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;
&lt;a data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=https://www.jdoodle.com/api/get-share/2?format%3Djson&amp;amp;source=gmail&amp;amp;ust=1506679669787000&amp;amp;usg=AFQjCNFD1rPgC0gq7YULjfC34LWezpf9SA&quot; href=&quot;https://www.jdoodle.com/api/get-share/2?format=json&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;https://www.jdoodle.com/api/get-share/2?&lt;wbr&gt;&lt;/wbr&gt;format=json&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;
&lt;a data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=https://www.jdoodle.com/api/get-share/2?format%3Dxml&amp;amp;source=gmail&amp;amp;ust=1506679669787000&amp;amp;usg=AFQjCNH_ZBdwUetApL2fUdqabeScoNCEgg&quot; href=&quot;https://www.jdoodle.com/api/get-share/2?format=xml&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;https://www.jdoodle.com/api/get-share/2?&lt;wbr&gt;&lt;/wbr&gt;format=xml&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;
Alternatively if you want to redirect your user to JDoodle with the code snippet you want, you can just post your code to JDoodle as follows&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;color: #222222; font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;&amp;lt;form action=&quot;https://www.jdoodle.com/api/redirect-to-post&lt;b&gt;/online-java-compiler&lt;/b&gt;&quot; method=&quot;post&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;&amp;nbsp; Script: &amp;lt;textarea name=&quot;initScript&quot; rows=&quot;8&quot; cols=&quot;80&quot;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; value=&quot;Submit&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #222222; font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;Just replace &quot;&lt;/span&gt;&lt;/span&gt;&lt;b style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;/online-java-compiler&quot; &lt;/b&gt;&lt;span style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;with the compiler url you want to redirect to. For example if you want to redirect to C compiler use -&amp;nbsp; &quot;&lt;/span&gt;&lt;span style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;https://www.jdoodle.com/api/redirect-to-post&lt;/span&gt;&lt;b style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;/&lt;/b&gt;&lt;span style=&quot;color: #222222; font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;&lt;b&gt;c-online-compiler&lt;/b&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Please contact JDoodle and inform if you are embedding code in your site, so that they can update regarding embed functionality in advance if any.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #353535; font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; text-align: justify;&quot;&gt;if you are using Wordpress, there is a nice plugin you can use -&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/evonox/jdoodle-for-wp&quot; nofollow=&quot;&quot; rel=&quot;nofollow&quot; style=&quot;background-color: white; color: #0088cc; font-family: arial, sans-serif; font-size: 14px; text-align: justify;&quot;&gt;JDoodle Plugin for WordPress&lt;/a&gt;&lt;span style=&quot;background-color: white; color: #353535; font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; text-align: justify;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;faq-note&quot; style=&quot;background-color: white; color: #353535; font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 12px; font-style: italic; text-align: justify;&quot;&gt;Please note: This wordpress plugin is 3rd Party Plugin, Thanks to Vikor for developing this, JDoodle is not responsible for this plugin in anyway including content, function, update and maintenance.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;script src=&quot;https://www.jdoodle.com/assets/jdoodle-pym.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/1872067209108943173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2016/07/run-programs-directly-from-your-blog-or.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/1872067209108943173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/1872067209108943173'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2016/07/run-programs-directly-from-your-blog-or.html' title='Run programs directly from your Blog or Website'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-2265405751186511835</id><published>2015-02-07T03:52:00.000-08:00</published><updated>2015-02-07T03:52:25.794-08:00</updated><title type='text'>Hapijs in Openshift</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Today I tried to host a small Hapijs app in Openshift, as it may be useful for others just documenting here,&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Creating new Gear with Nodejs cartridge in Openshift&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;Goto&amp;nbsp;https://openshift.redhat.com/app/console/applications&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Click Add application and add nodejs cartridge&lt;/li&gt;
&lt;/ol&gt;
&lt;u&gt;Create a Hapijs Application&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;clone the project just created in openshift.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;delete all the files/folders except .openshift folder (note: make sure files deleted in git as well)&lt;/li&gt;
&lt;li&gt;&amp;nbsp;create new hapijs project on the same folder (refer:&amp;nbsp;http://hapijs.com/tutorials)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f3f3f3; color: #6f6f6f; font-family: inconsolata, menlo, consolas, monospaced; font-size: 16px; line-height: 28px;&quot;&gt;npm init&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f3f3f3; color: #6f6f6f; font-family: inconsolata, menlo, consolas, monospaced; font-size: 16px; line-height: 28px;&quot;&gt;npm install --save hapi&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;create a file called index.js with following content&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo;&quot;&gt;&lt;pre style=&quot;font-family: Menlo;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;#!/bin/env node&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;var &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;Hapi &lt;/span&gt;= require(&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;hapi&#39;&lt;/span&gt;);

&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;// Create a server with a host and port&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;var &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;server &lt;/span&gt;= &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;Hapi&lt;/span&gt;.&lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;Server&lt;/span&gt;();

&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;var &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;ipaddress &lt;/span&gt;= process.env.OPENSHIFT_NODEJS_IP;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;var &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;port      &lt;/span&gt;= process.env.OPENSHIFT_NODEJS_PORT || &lt;span style=&quot;color: blue;&quot;&gt;8080&lt;/span&gt;;

&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;typeof &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;ipaddress &lt;/span&gt;=== &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;undefined&quot;&lt;/span&gt;) {
    &lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;//  Log errors on OpenShift but continue w/ 127.0.0.1 - this allows us to run/test the app locally.&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #7a7a43;&quot;&gt;warn&lt;/span&gt;(&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;No OPENSHIFT_NODEJS_IP var, using 127.0.0.1&#39;&lt;/span&gt;);
    &lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;ipaddress &lt;/span&gt;= &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;127.0.0.1&quot;&lt;/span&gt;;
};

&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;server&lt;/span&gt;.&lt;span style=&quot;color: #7a7a43;&quot;&gt;connection&lt;/span&gt;({
    &lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;host&lt;/span&gt;: &lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;ipaddress&lt;/span&gt;,
    &lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;port&lt;/span&gt;: &lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;port&lt;/span&gt;});

&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;// Add the route&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;server&lt;/span&gt;.&lt;span style=&quot;color: #7a7a43;&quot;&gt;route&lt;/span&gt;({
    &lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;method&lt;/span&gt;: &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;GET&#39;&lt;/span&gt;,
    &lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;path&lt;/span&gt;:&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;/&#39;&lt;/span&gt;,
    &lt;span style=&quot;color: #7a7a43;&quot;&gt;handler&lt;/span&gt;: &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;function &lt;/span&gt;(request, reply) {
        reply.&lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;file&lt;/span&gt;(&#39;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;Hello World!!!&#39;&lt;/span&gt;);
    }
});

&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;// Start the server&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;server&lt;/span&gt;.&lt;span style=&quot;color: #7a7a43;&quot;&gt;start&lt;/span&gt;();&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;

&lt;/span&gt;&lt;/pre&gt;
&lt;span style=&quot;font-size: 12pt;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
Test it locally and push it to openshit, enjoy coding.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/2265405751186511835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2015/02/hapijs-in-openshift.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/2265405751186511835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/2265405751186511835'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2015/02/hapijs-in-openshift.html' title='Hapijs in Openshift'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-8081383202792438042</id><published>2014-12-28T17:47:00.000-08:00</published><updated>2015-03-06T15:01:02.826-08:00</updated><title type='text'>Website Review Tool - Alternative to woorank</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Website creation involves lot of things, Especially the search engine and mobile friendliness needs lot of factors to be maintained like,&lt;br /&gt;
&lt;br /&gt;
1. load time&lt;br /&gt;
2. backlinks&lt;br /&gt;
3. social popularity&lt;br /&gt;
4. page rank&lt;br /&gt;
5. sitemap.xml and robots.txt&lt;br /&gt;
6. Html fitness&lt;br /&gt;
7. keyword positioning&lt;br /&gt;
8. security&lt;br /&gt;
9. Trust worthiness of your site&lt;br /&gt;
10. etc, etc.&lt;br /&gt;
&lt;br /&gt;
Periodically checking these factors is very important to keep your search engine ranking and to attract more users. Using different tools to check different factors will take lot of time.&lt;br /&gt;
&lt;br /&gt;
This post introduces a free online WebSite/SEO Review Tool called -&amp;nbsp;&lt;a href=&quot;http://www.htmlbee.com/&quot; target=&quot;_blank&quot;&gt;Htmlbee.com&lt;/a&gt;, which reviews websites for so many factors in single click.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By using&amp;nbsp;&lt;a href=&quot;http://www.htmlbee.com/&quot; target=&quot;_blank&quot;&gt;Htmlbee.com&lt;/a&gt;&amp;nbsp;you can review your website for&lt;br /&gt;
&lt;br /&gt;
1. Social Media positon&lt;br /&gt;
2. Google - Rank, pagespeed&lt;br /&gt;
3. Resource statistics&lt;br /&gt;
4. Html correctness/fitness&lt;br /&gt;
5. Performance&lt;br /&gt;
6. Keyword analysis&lt;br /&gt;
7. and many more (almost 45 slides with 100 items).&lt;br /&gt;
&lt;br /&gt;
The good thing about this review is, it explains importance of each and every factor with your position. It gives lot of wealthy information about each review points on your site with authenticated reference links (mostly Googles Webmaster).&lt;br /&gt;
&lt;br /&gt;
Once you click on the review button, it makes you wait for few seconds to collect all the information about your site (unlike few other review sites which displays partial informations and confuse), and presents all the information in a good slide format, which can be navigated using arrow keys or by swipe(in mobiles).&lt;br /&gt;
&lt;br /&gt;
Even you can print the report in well formatted manner.&lt;br /&gt;
&lt;br /&gt;
Below are some sample screens from the Htmlbee.com,&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEH6YIh9HHvf97ZfRH55WbauoX5-HHGuLkOUcLWnj3cn5jrgCEdqKXbdCRttf3ZqdHL-oO6Csjw-lohQIjArnvvO7m2rb1IjV3sF7wpP4OKAXthhhC73KqH7qBF6zZv1ySSerQarCP8V0/s1600/Free+SEO+Tools+++SEO+Tips+++Website+Checker+++Website+Review.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEH6YIh9HHvf97ZfRH55WbauoX5-HHGuLkOUcLWnj3cn5jrgCEdqKXbdCRttf3ZqdHL-oO6Csjw-lohQIjArnvvO7m2rb1IjV3sF7wpP4OKAXthhhC73KqH7qBF6zZv1ySSerQarCP8V0/s1600/Free+SEO+Tools+++SEO+Tips+++Website+Checker+++Website+Review.png&quot; height=&quot;320&quot; width=&quot;291&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM96_f7dWy2NlgY8_2aDTQwNXBHot6ssKmoWta6a05vlMGCEVbm4U9jjRmovP_OPVmPjkHeCykRVK9iusMkYSAhK0Xvop0UQD4GZ92bU248X49Tp9YFg0eGPFtwgw6FL-V9XpX732pPeQ/s1600/scree1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM96_f7dWy2NlgY8_2aDTQwNXBHot6ssKmoWta6a05vlMGCEVbm4U9jjRmovP_OPVmPjkHeCykRVK9iusMkYSAhK0Xvop0UQD4GZ92bU248X49Tp9YFg0eGPFtwgw6FL-V9XpX732pPeQ/s1600/scree1.png&quot; height=&quot;189&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtcbMPvKs9VsBXKaPORcSHry02-OnjE2Qkr0bv4jf1QcS08hi1EruAwuyvTEXsqeTe8YHb5pQgSHqdFx-BQaVQDmIx9Nj2MGMEN46X3ZZJXozkpK3QrEpSIjBfodJkYi5JvRqP4rEU0To/s1600/screen3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtcbMPvKs9VsBXKaPORcSHry02-OnjE2Qkr0bv4jf1QcS08hi1EruAwuyvTEXsqeTe8YHb5pQgSHqdFx-BQaVQDmIx9Nj2MGMEN46X3ZZJXozkpK3QrEpSIjBfodJkYi5JvRqP4rEU0To/s1600/screen3.png&quot; height=&quot;126&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVRI5cHzHDmcerdoSb-ceBO8y4VC5z_aNXfq2X7ENXS8uKeQMIZLi3yRf1BHsQ4MGUML0Nka82S_113ARJsigWI0lw2OuE_d5CEbneN-9QGvp-Mg8pJHS-7BlyYNgtgpMVgpToJEaAjVE/s1600/screen4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVRI5cHzHDmcerdoSb-ceBO8y4VC5z_aNXfq2X7ENXS8uKeQMIZLi3yRf1BHsQ4MGUML0Nka82S_113ARJsigWI0lw2OuE_d5CEbneN-9QGvp-Mg8pJHS-7BlyYNgtgpMVgpToJEaAjVE/s1600/screen4.png&quot; height=&quot;320&quot; width=&quot;285&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhndeibCGvVz7-I65JpKkI5LGHCKu6d-ziRhq679cj9rapogFOnGvw2r1xti1a8DZasUzVF61T8Sr8mdUfIURk9ZYubeeQ10O1-UMNzHShm-Fg_HqDFhI_f20ykT3a7yyI0AZ435Ga-Hk/s1600/screen5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhndeibCGvVz7-I65JpKkI5LGHCKu6d-ziRhq679cj9rapogFOnGvw2r1xti1a8DZasUzVF61T8Sr8mdUfIURk9ZYubeeQ10O1-UMNzHShm-Fg_HqDFhI_f20ykT3a7yyI0AZ435Ga-Hk/s1600/screen5.png&quot; height=&quot;320&quot; width=&quot;222&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Remember Htmlbee.com is still in Beta, Check how your website doing today and share your comments here, Thanks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/8081383202792438042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2014/12/how-is-your-website-doing.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/8081383202792438042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/8081383202792438042'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2014/12/how-is-your-website-doing.html' title='Website Review Tool - Alternative to woorank'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEH6YIh9HHvf97ZfRH55WbauoX5-HHGuLkOUcLWnj3cn5jrgCEdqKXbdCRttf3ZqdHL-oO6Csjw-lohQIjArnvvO7m2rb1IjV3sF7wpP4OKAXthhhC73KqH7qBF6zZv1ySSerQarCP8V0/s72-c/Free+SEO+Tools+++SEO+Tips+++Website+Checker+++Website+Review.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-128304344763229796</id><published>2013-07-21T06:28:00.002-07:00</published><updated>2013-07-21T06:28:59.205-07:00</updated><title type='text'>Grails - Broken Pipe and Cannot release connection</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
In one of my grails applications, I was getting the following exception often,&lt;br /&gt;
&lt;br /&gt;
java.net.SocketException: Broken pipe&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at java.net.SocketOutputStream.write(SocketOutputStream.java:153)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3832)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2471)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2734)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2322)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at org.grails.datastore.gorm.GormStaticApi$_methodMissing_closure2.doCall(GormStaticApi.groovy:108)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:195)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at java.lang.Thread.run(Thread.java:722)&lt;br /&gt;
2013-07-21 12:28:16,794 [http-bio-80-exec-7] ERROR util.JDBCExceptionReporter &amp;nbsp;- Already closed.&lt;br /&gt;
2013-07-21 12:28:16,794 [http-bio-80-exec-7] ERROR util.JDBCExceptionReporter &amp;nbsp;- Already closed.&lt;br /&gt;
2013-07-21 12:28:16,807 [http-bio-80-exec-7] ERROR servlet.GrailsDispatcherServlet &amp;nbsp;- HandlerInterceptor.afterCompletion threw exception&lt;br /&gt;
org.hibernate.exception.GenericJDBCException: Cannot release connection&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:195)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:195)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at java.lang.Thread.run(Thread.java:722)&lt;br /&gt;
Caused by: java.sql.SQLException: Already closed.&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:114)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;... 7 more&lt;br /&gt;
&lt;br /&gt;
The reason was the database connections in the pool was not used for some time and the connection got closed, and when the application tries to use that it was throwing the exception.&lt;br /&gt;
&lt;br /&gt;
The solution worked to me is&lt;br /&gt;
&lt;br /&gt;
Just added 3 properties into my DataSource.groovy file as follows,&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;dbCreate = &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;update&quot;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;// one of &#39;create&#39;, &#39;create-drop&#39;,&#39;update&#39;&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;url = &lt;/span&gt;&quot;jdbc:mysql://localhost/mydb?useUnicode=yes&amp;amp;characterEncoding=UTF-8&quot;&lt;/div&gt;
&lt;div class=&quot;p3&quot;&gt;
username = &lt;span class=&quot;s2&quot;&gt;&quot;root&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p3&quot;&gt;
password = &lt;span class=&quot;s2&quot;&gt;&quot;pwd&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p3&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;properties {&lt;/div&gt;
&lt;div class=&quot;p3&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; validationQuery = &lt;span class=&quot;s2&quot;&gt;&quot;select 1&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p3&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; testWhileIdle = &lt;span class=&quot;s3&quot;&gt;true&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p3&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; testOnBorrow = &lt;span class=&quot;s3&quot;&gt;true&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;p3&quot;&gt;
&amp;nbsp;}&lt;/div&gt;
&lt;div class=&quot;p3&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p3&quot;&gt;
you can find more information on this properties at&amp;nbsp;&lt;a href=&quot;http://commons.apache.org/proper/commons-dbcp/configuration.html&quot; target=&quot;_blank&quot;&gt;http://commons.apache.org/proper/commons-dbcp/configuration.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
One more reason for the same problem could be double pooling, if you have configured your connection from application server (JNDI), please ensure you are not pooling the connections both in application server and grails application. Just remove one of the pooling to solve the issue.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/128304344763229796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2013/07/grails-broken-pipe-and-cannot-release.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/128304344763229796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/128304344763229796'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2013/07/grails-broken-pipe-and-cannot-release.html' title='Grails - Broken Pipe and Cannot release connection'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-4819567444851561375</id><published>2013-07-15T04:55:00.000-07:00</published><updated>2013-08-07T17:36:28.578-07:00</updated><title type='text'>JDoodle.com - Online Java Compiler - Online Java Editor -  Java Code Online</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
As a java developer I often wanted to execute a small piece of code and test it quickly without opening an IDE. Some times the same bit of code we want to execute often and use the result somewhere. May be even we want to share that bit of joy with others. One of the solutions is&amp;nbsp;&lt;a href=&quot;http://www.jdoodle.com/&quot;&gt;JDoodle.com&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.jdoodle.com/&quot;&gt;JDoodle.com&lt;/a&gt; helps compile and execute java programs online. &amp;nbsp;It has simple interface, give a try, if found useful share with friends. Share your thoughts about&amp;nbsp;&lt;a href=&quot;http://www.jdoodle.com/&quot;&gt;JDoodle.com&lt;/a&gt;&amp;nbsp;here in comment.&lt;br /&gt;
&lt;br /&gt;
Try some default shares&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.jdoodle.com/a/1&quot; style=&quot;background-color: white; color: #005580; font-family: arial, sans-serif; font-size: 14px; line-height: 21px; outline: rgb(0, 0, 0); text-align: justify;&quot;&gt;Hello World&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.jdoodle.com/a/2&quot; style=&quot;background-color: white; color: #0088cc; font-family: arial, sans-serif; font-size: 14px; line-height: 21px; text-align: justify;&quot;&gt;Hello World with method&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.jdoodle.com/a/3&quot; style=&quot;background-color: white; color: #0088cc; font-family: arial, sans-serif; font-size: 14px; line-height: 21px; text-align: justify;&quot;&gt;Sample with import and Input Arguments&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
some of the features you may like is&lt;br /&gt;
&lt;br /&gt;
1. auto complete import - just type the class name it will come with whole bunch of suggestions for you, just select the one you want and click Tick button.&lt;br /&gt;
&lt;br /&gt;
2. Recents - you can see all the recently executed codes in the browser here. even you can ask JDoodle to remember this between same browsers different session.&lt;br /&gt;
&lt;br /&gt;
3. Share - makes sharing easier. Not all your code shared by default, so you can always control what to share and what not to.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/4819567444851561375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2013/07/a-handy-tool-for-java-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/4819567444851561375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/4819567444851561375'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2013/07/a-handy-tool-for-java-developers.html' title='JDoodle.com - Online Java Compiler - Online Java Editor -  Java Code Online'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-300066736372090277</id><published>2012-11-07T22:31:00.000-08:00</published><updated>2012-11-07T22:31:31.674-08:00</updated><title type='text'>Customizing Liferay Classes using ext plugin in 6.1</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;line-height: 150%;&quot;&gt;Liferay is highly&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 24px;&quot;&gt;flexible&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;&amp;nbsp;that developers can override any Liferay class by just replacing them in Ext Plugin. But overriding&amp;nbsp;is not a very good action considering
&quot;Open for extension closed for Modification&quot; Principle.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height: 150%;&quot;&gt;so in this blog post I am going to show simple
steps how to extend a Liferay class.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;line-height: 24px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;b style=&quot;line-height: 150%;&quot;&gt;&lt;u&gt;Note:&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;use ext plugin &amp;nbsp;class extension or
replacement as a last&amp;nbsp;resort&amp;nbsp;if and only if the same cannot be&amp;nbsp;achieved&amp;nbsp;through hooks or other ways.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;line-height: 24px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;line-height: 150%;&quot;&gt;Step 1: Create you class by extending the Liferay
class.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height: 150%;&quot;&gt;Step 2: Create a file called&lt;/span&gt;&lt;span class=&quot;apple-converted-space&quot; style=&quot;line-height: 150%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;apple-converted-space&quot; style=&quot;font-size: 14px; line-height: 21px;&quot;&gt;&lt;b style=&quot;text-decoration: underline;&quot;&gt;ext-spring&lt;/b&gt; in folder&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt; line-height: 150%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;&lt;u&gt;docroot/WEB-INF/ext-impl/src/META-INF&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height: 150%;&quot;&gt;Step 3: From Liferay source
code get the file&amp;nbsp;&lt;u&gt;portal-impl/src/META-INF/portal-spring.xml&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height: 150%;&quot;&gt;Step 4: just copy the bean
class you are extending from&amp;nbsp;portal-spring.xml and paste to your ext-spring.xml, change the class name
to your new extended class. (please ensure you have the &amp;lt;beans&amp;gt; outer tag
too in ext-spring as in portal-spring)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height: 150%;&quot;&gt;step 5: deploy your ext, now Liferay will call your class instead of its
own implementation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/300066736372090277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/11/customizing-liferay-classes-using-ext.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/300066736372090277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/300066736372090277'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/11/customizing-liferay-classes-using-ext.html' title='Customizing Liferay Classes using ext plugin in 6.1'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-5857863429026708756</id><published>2012-11-05T22:06:00.002-08:00</published><updated>2012-11-05T22:06:18.260-08:00</updated><title type='text'>Adding JQuery Library to Liferay 6.1 at Portal level</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
As all Liferay developers know, Liferay 5.2.x and earlier had included jQuery library by default at Portal level, so if we want to use jQuery in any portlet or plugins, we do not need to include the library. But from 6.0, Liferay is using YUI, so jQuery is not available by default and we need to include the jQuery library if we want to use.&lt;br /&gt;
&lt;br /&gt;
The following blog entry from Liferay covers three different ways to include jQuery&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.liferay.com/web/nathan.cavanaugh/blog/-/blogs/5363997&quot;&gt;http://www.liferay.com/web/nathan.cavanaugh/blog/-/blogs/5363997&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1. Theme Level&lt;br /&gt;
2. Portlet Level&lt;br /&gt;
3. jsp level.&lt;br /&gt;
&lt;br /&gt;
but I came across one&amp;nbsp;scenario where we wanted to have the same&amp;nbsp;behavior as in 5.2.3, we have multiple themes so we do not want to duplicate same code in every portlet, and want to include the jQuery at portal level..&lt;br /&gt;
&lt;br /&gt;
The solution worked for us is&lt;br /&gt;
&lt;br /&gt;
Step 1: included the&amp;nbsp;jquery-1.2.6.min.js in your hook -&amp;nbsp;/jsp-hook/docroot/WEB-INF/ext-web/docroot/html/js/jquery-1.2.6.min.js&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
Step 2: copy&amp;nbsp;top_js.jspf from&amp;nbsp;source&amp;nbsp;and place that in your hook -&amp;nbsp; /jsp-hook/docroot/META-INF/custom_jsps/html/common/themes/ and add the the line&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;script src=&quot;/html/js/jquery-1.2.6.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
at the end of top_js.jspf.&lt;br /&gt;
&lt;br /&gt;
so now jQuery available throughout the portal in all the themes.&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/5857863429026708756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/11/adding-jquery-library-to-liferay-61-at.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/5857863429026708756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/5857863429026708756'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/11/adding-jquery-library-to-liferay-61-at.html' title='Adding JQuery Library to Liferay 6.1 at Portal level'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-4985633133448011840</id><published>2012-09-03T23:42:00.000-07:00</published><updated>2012-09-03T23:42:26.325-07:00</updated><title type='text'>Is Chrome more secure than other Browsers in XSS attacks</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I come&amp;nbsp;across&amp;nbsp;one&amp;nbsp;interesting&amp;nbsp;thing today, looks like Chrome and Safari are more advanced in preventing XSS attacks &amp;nbsp;than other browsers. To check this, write a small submit form as &amp;nbsp;below&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: orange; font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Test1.jsp&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLFpH2AsukT_ZwlCb5HkY0WBq8l3q0P8FBPgS7BV1JcAgy0LUcdIZ3sPiLPf9JSL96IzmYNHEvtg8k7H_6s0iFTXZC9hiLSlKZh5-U8wr69nQUp2BloZOEqR0qdCH6Dbh0UgdV6INgUliM/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; &amp;lt;body&amp;gt;  
  &amp;lt;form method=&quot;get&quot; action=&quot;test2.jsp&quot;&amp;gt;  
      Attack using this box : &amp;lt;input type=&quot;text&quot; name=&quot;attack&quot;/&amp;gt;  
      &amp;lt;input type=&quot;submit&quot;/&amp;gt;  
  &amp;lt;/form&amp;gt;  
 &amp;lt;/body&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
and a page to handle the submit&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: orange; font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: orange; font-family: Georgia, Times New Roman, serif;&quot;&gt;Test2.jsp&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: orange; font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLFpH2AsukT_ZwlCb5HkY0WBq8l3q0P8FBPgS7BV1JcAgy0LUcdIZ3sPiLPf9JSL96IzmYNHEvtg8k7H_6s0iFTXZC9hiLSlKZh5-U8wr69nQUp2BloZOEqR0qdCH6Dbh0UgdV6INgUliM/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; &amp;lt;%=request.getParameter(&quot;attack&quot;)%&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
open the first one in a browser --&amp;gt; enter &quot;&lt;b&gt;&amp;lt;script&amp;gt; alert(&#39;hi......&#39;); &amp;lt;/script&amp;gt;&lt;/b&gt;&quot; in the text box --&amp;gt; submit.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;IE, Firefox, Opera&lt;/u&gt; - will show you an alert box with message &quot;hi......&quot;&lt;br /&gt;
&lt;u&gt;Chrome and Safari&lt;/u&gt; - will not show anything but a blank screen.&lt;br /&gt;
&lt;br /&gt;
In Chrome Console you can see the below error,&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: red; font-family: Consolas, &#39;Lucida Console&#39;, monospace; font-size: 12px; white-space: pre-wrap;&quot;&gt;&lt;b&gt;Refused to execute a JavaScript script. Source code of script found within request.&lt;/b&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
chrome detects the same source code in request and response and prevents the XSS attack. Same for Post method too.&lt;br /&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/4985633133448011840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/09/is-chrome-more-secure-than-other.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/4985633133448011840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/4985633133448011840'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/09/is-chrome-more-secure-than-other.html' title='Is Chrome more secure than other Browsers in XSS attacks'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-3593923041515048890</id><published>2012-05-16T01:25:00.000-07:00</published><updated>2012-05-16T01:25:38.585-07:00</updated><title type='text'>adding set methods in JAXB for collections</title><content type='html'>Normally the JAXB generated classes will not contain set methods for collections. (The idea here is to access collections only using get as the basis assumption is the change only&amp;nbsp;happens&amp;nbsp;to the contents of the collection).&lt;br /&gt;
&lt;br /&gt;
if you use the maven&amp;nbsp;&lt;span style=&quot;font-family: Consolas; font-size: 10pt;&quot;&gt;maven-jaxb2-plugin,&amp;nbsp;&lt;/span&gt;then you can use&amp;nbsp;&lt;span style=&quot;font-family: Consolas; font-size: 10pt;&quot;&gt;collection-setter-&lt;/span&gt;&lt;wbr style=&quot;font-family: Consolas; font-size: 10pt;&quot;&gt;&lt;/wbr&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10pt;&quot;&gt;injector&amp;nbsp;&lt;/span&gt;plugin along with jaxb2 plugin to create set methods. Below is a sample configuration,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;plugin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;groupId&amp;gt;org.jvnet.jaxb2.maven2&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;artifactId&amp;gt;maven-jaxb2-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;executions&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;execution&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;goals&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;goal&amp;gt;generate&amp;lt;/goal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;/goals&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;phase&amp;gt;generate-sources&amp;lt;/phase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/execution&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/executions&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;!-- This helps generate setter methods--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;args&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;arg&amp;gt;-npa&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;arg&amp;gt;-Xcollection-setter-injector&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/args&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;extension&amp;gt;true&amp;lt;/extension&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;episode&amp;gt;true&amp;lt;/episode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;plugins&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;!-- plugin to generate setter for collection--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;groupId&amp;gt;net.java.dev.vcc.thirdparty&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;artifactId&amp;gt;collection-setter-injector&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;version&amp;gt;0.5.0-1&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/plugins&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/plugin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/3593923041515048890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/05/adding-set-methods-in-jaxb-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/3593923041515048890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/3593923041515048890'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/05/adding-set-methods-in-jaxb-for.html' title='adding set methods in JAXB for collections'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-6015197343485646341</id><published>2012-04-12T03:18:00.001-07:00</published><updated>2012-04-12T03:21:34.604-07:00</updated><title type='text'>adding a new column as primary key in existing table</title><content type='html'>Today I come across a little tricky situation to add new column to existing table and make it as a primary key in MS SQL server, the solution is&amp;nbsp;luckily&amp;nbsp;simple,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLFpH2AsukT_ZwlCb5HkY0WBq8l3q0P8FBPgS7BV1JcAgy0LUcdIZ3sPiLPf9JSL96IzmYNHEvtg8k7H_6s0iFTXZC9hiLSlKZh5-U8wr69nQUp2BloZOEqR0qdCH6Dbh0UgdV6INgUliM/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; alter table my_table add [my_new_id] [int] IDENTITY(1,1);  
 alter table my_table add constraint pk_my_id primary key(my_new_id);  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;span style=&quot;color: grey;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
if you already have a primary key, just remove that and add this new primary key.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/6015197343485646341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/04/adding-new-column-as-primary-key-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/6015197343485646341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/6015197343485646341'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/04/adding-new-column-as-primary-key-in.html' title='adding a new column as primary key in existing table'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-276063110026766362</id><published>2012-04-11T03:57:00.000-07:00</published><updated>2012-04-11T03:57:46.096-07:00</updated><title type='text'>Running Multiple SoapUI Mock Services from single Maven pom</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Sometimes we
may need to run multiple SoapUI mock services as part of Test cases, usually if
we start multiple mock services from SoapUI, all will start in the same port,
but for some reason it is not supported when we start as part of maven
execution. Below is the pom entry which is used to start two or more mock
services in different ports.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;lt;plugin&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;eviware&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;maven-soapui-plugin&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;executions&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;id&amp;gt;&lt;/span&gt;soapui-test1&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;phase&amp;gt;&lt;/span&gt;test&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/phase&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;mock&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;projectFile&amp;gt;&lt;/span&gt;target/mock-project1.xml&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/projectFile&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;port&amp;gt;&lt;/span&gt;8088&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/port&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;noBlock&amp;gt;&lt;/span&gt;true&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/noBlock&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;id&amp;gt;&lt;/span&gt;soapui-test2&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;phase&amp;gt;&lt;/span&gt;test&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/phase&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;mock&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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 style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;projectFile&amp;gt;&lt;/span&gt;target/mock-project2.xml&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/projectFile&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;port&amp;gt;&lt;/span&gt;8089&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/port&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;noBlock&amp;gt;&lt;/span&gt;true&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/noBlock&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/configuration&amp;gt;&lt;/span&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;&amp;nbsp;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&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 style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/executions&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormalCxSpMiddle&quot; style=&quot;line-height: 150%; mso-add-space: auto; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #3f7f7f;&quot;&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/276063110026766362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/04/running-multiple-soapui-mock-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/276063110026766362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/276063110026766362'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/04/running-multiple-soapui-mock-services.html' title='Running Multiple SoapUI Mock Services from single Maven pom'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-8501331718707011910</id><published>2012-04-09T06:18:00.000-07:00</published><updated>2012-04-09T06:18:26.813-07:00</updated><title type='text'>Secure your web apps with HDIV</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Recently integrated hdiv framework into the web application I am working
on.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;We had already had taken enough safety measures to secure the web
application, like&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;1. Always encoding the outputs (like always output from jsp using
&amp;lt;C:out&amp;gt; with xml encoding instead of just printing them)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;2. Code to secure against SQL injections&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;3. etc.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;But HDIV is an&amp;nbsp;interesting&amp;nbsp;framework, it seamlessly integrates
with the existing application, no need to change the existing code (most of the
time) and secures web application mainly against following attacks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;1. Cross site Scripting&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;2. SQL Injections&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;3. URL Tampering (I really like this protection, IMO only the links in
the web site should be used for navigation, user should not be able to change
the URL, especially the values in the path to navigate)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;4. Spring bean auto binding, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;There are good documents&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;about&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;HDIV in its website hdiv.org, but did found much documentation about its
integration with existing applications. So decided to explore my self and found
an interesting example implementation at&amp;nbsp;&lt;a href=&quot;https://github.com/hdiv/hdiv-spring-mvc-showcase&quot;&gt;&lt;span style=&quot;color: blue; mso-bidi-font-size: 11.0pt;&quot;&gt;https://github.com/hdiv/hdiv-spring-mvc-showcase&lt;/span&gt;&lt;/a&gt;,
downloaded that and explored, it is really awesome. So I am documenting some
simple steps to integrate hdiv with your existing spring application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Step 1: Dependencies&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Include following dependencies in your project, for maven,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dependency&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;&amp;lt;groupId&amp;gt;org.hdiv&amp;lt;/groupId&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;artifactId&amp;gt;hdiv-core&amp;lt;/artifactId&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;version&amp;gt;2.1.1&amp;lt;/version&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;dependency&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;groupId&amp;gt;org.hdiv&amp;lt;/groupId&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;&amp;lt;artifactId&amp;gt;hdiv-config&amp;lt;/artifactId&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;&amp;lt;version&amp;gt;2.1.1&amp;lt;/version&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;dependency&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;groupId&amp;gt;org.hdiv&amp;lt;/groupId&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;artifactId&amp;gt;hdiv-spring-mvc&amp;lt;/artifactId&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;version&amp;gt;2.1.1&amp;lt;/version&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;dependency&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;lt;groupId&amp;gt;org.hdiv&amp;lt;/groupId&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;lt;artifactId&amp;gt;hdiv-jstl-taglibs-1.2&amp;lt;/artifactId&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;&amp;lt;version&amp;gt;2.1.1&amp;lt;/version&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-NZ;&quot;&gt;Step 2:
HDIV-Config.xml&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-NZ;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Copy&amp;nbsp;hdiv-config.xml&amp;nbsp;to your resource folder(alternatively
classpath, sample found in the showcase app)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;see details about hdiv-config at bottom of this post.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-NZ;&quot;&gt;Step 3:
&amp;nbsp;web.xml Changes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-NZ;&quot;&gt;Step 3.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Include hdiv-config.xml in context config location as&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;context-param&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;param-name&amp;gt;contextConfigLocation&amp;lt;/param-name&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;param-value&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&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;&amp;nbsp; classpath:/spring-context.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&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;&amp;nbsp; classpath:/hdiv-config.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/param-value&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/context-param&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-NZ;&quot;&gt;Step 3.2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;include following hdiv specific entries as,&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;!-- HDIV Init Listener --&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;listener&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;listener-class&amp;gt;org.hdiv.listener.InitListener&amp;lt;/listener-class&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/listener&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;!-- HDIV Validator Filter --&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;filter&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-name&amp;gt;ValidatorFilter&amp;lt;/filter-name&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-class&amp;gt;org.hdiv.filter.ValidatorFilter&amp;lt;/filter-class&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/filter&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;filter-mapping&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-name&amp;gt;ValidatorFilter&amp;lt;/filter-name&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;servlet-name&amp;gt;dispatcher&amp;lt;/servlet-name&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/filter-mapping&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;here dispatcher is the nothing but spring dispatcher servlet, example&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;servlet&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;servlet-name&amp;gt;dispatcher&amp;lt;/servlet-name&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;servlet-class&amp;gt;org.springframework.web.servlet.DispatcherServlet&amp;lt;/servlet-class&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/servlet&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-NZ;&quot;&gt;Step 3.3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span color:black;mso-fareast-language:en-nz&#39;=&quot;&quot; mso-fareast-font-family:&quot;times=&quot;&quot; new&quot;;=&quot;&quot; new=&quot;&quot; roman&quot;;mso-bidi-font-family:&quot;courier=&quot;&quot; roman&#39;&quot;,&quot;serif&quot;;=&quot;&quot; style=&quot;font-family: &amp;quot;; font-size: 10.0pt;&quot; times=&quot;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;point JSTL to hdiv customized JSTL tag
library.&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;jsp-config&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;taglib&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;taglib-uri&amp;gt;http://java.sun.com/jsp/jstl/core&amp;lt;/taglib-uri&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;taglib-location&amp;gt;/WEB-INF/tlds/hdiv-c.tld&amp;lt;/taglib-location&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/taglib&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/jsp-config&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-NZ;&quot;&gt;Step 4:
copy hdiv-c.tld to web-inf&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;copy the hdiv-c.tld from sample app to web-inf/tlds folder&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-NZ;&quot;&gt;Step 5:
Create your initial landing page&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;HDIV protected site always&amp;nbsp;expects an HDIV state code to validate
the page, if you are trying to access any page without hdiv state it will
redirect you to the error page, so we have to create some initial landing page
which redirect to other page with hdiv state, following is an sample jsp for
initial landing page&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;name: index.jsp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;body&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;c:redirect
url=&quot;login/login.html&quot;&amp;gt;&amp;lt;/c:redirect&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/body&amp;gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;span &quot;times=&quot;&quot; en-nz&#39;=&quot;&quot; new&quot;;color:black;mso-fareast-language:=&quot;&quot; new=&quot;&quot; roman&quot;;mso-bidi-font-family:&quot;courier=&quot;&quot; roman&#39;&quot;,&quot;serif&quot;;mso-fareast-font-family:=&quot;&quot; style=&quot;font-family: &amp;quot;; font-size: 10.0pt;&quot; times=&quot;&quot;&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;include this file in welcome pages list in web.xml and place it in the
root folder and add the root folder as starting pages folder in hdiv-config.xml,
example&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;hdiv:config
errorPage=&quot;/error.jsp&quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;hdiv:startPages&amp;gt;/&amp;lt;/hdiv:startPages&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;hdiv:paramsWithoutValidation&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;hdiv:mapping
url=&quot;/job/[0-9]*/.*/update.ht&quot;&amp;nbsp;
parameters=&quot;.*&quot;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/hdiv:paramsWithoutValidation&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/hdiv:config&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;All the files in the root folder(/) is considered as landing or starting
page, so will be exampted from validation for hdiv state.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-NZ;&quot;&gt;Important
points:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;1. Spring tags 3.0 and later has build in support for hdiv, so they can
be simple used along with hdiv, but to use&amp;nbsp;previous&amp;nbsp;versions of
spring tags, you may need to point your tlds to customized spring tlds, please
refer the hdiv document for more details.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;2. When using along with spring security or other frameworks which
intercept the request and redirects to different pages, special care should be
given otherwise it will end up in&amp;nbsp;indefinite redirection loops. I had
spring security in the project, so moved all the spring security related
files(login, logout, etc) to different path which will not be intercepted by hdiv
for more clarity.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;3. whenever accessing hdiv protected paths from non protected paths
always use redirects as mentioned in the landing pages step above.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-NZ;&quot;&gt;Some
Points on hdiv-config.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;There are three main sections in this file&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 12pt;&quot;&gt;&amp;lt;hdiv:config&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt; section, which is &amp;nbsp;used to configure the
start pages path, error page and validation exceptions&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 12pt;&quot;&gt;&amp;lt;hdiv:validation&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt; section, which is used to define the acceptable
input formats&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;3.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 12pt;&quot;&gt;&amp;lt;hdiv:editableValidations&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;section, which is used to associate the
validations defined in&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 12pt;&quot;&gt;&amp;lt;hdiv:validation&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt; section with paths.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;HDIV is really an added protection to the sites, developers may miss few
things when protecting the site. By using a framework like HDIV, developers can
concentrate more on&amp;nbsp;building&amp;nbsp;the logic than protecting each and every
page.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Give a try, post comment on how you go....&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/8501331718707011910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/04/secure-your-web-apps-with-hdiv.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/8501331718707011910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/8501331718707011910'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/04/secure-your-web-apps-with-hdiv.html' title='Secure your web apps with HDIV'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-8268423151456399288</id><published>2012-03-19T03:24:00.000-07:00</published><updated>2012-03-20T04:28:21.689-07:00</updated><title type='text'>Maven Shortcuts</title><content type='html'>Maven is cool, but&amp;nbsp;repeatably&amp;nbsp;typing the long maven&amp;nbsp;commands&amp;nbsp;is little bit&amp;nbsp;boring&amp;nbsp;and waste of time. one simple solution is to create set of batch files for the&amp;nbsp;repeatably&amp;nbsp;used commands.&lt;br /&gt;
&lt;br /&gt;
Most of us use our own set of batch files, I thought of&amp;nbsp;organizing&amp;nbsp;them in single place (atleast for me whenever I move to new project I&amp;nbsp;don&#39;t&amp;nbsp;need to create my own batch files again and again). I have created a project in github for this purpose and have included very&amp;nbsp;minimum&amp;nbsp;number of very frequently used commands.&lt;br /&gt;
&lt;br /&gt;
The project located at&amp;nbsp;&lt;a href=&quot;https://github.com/nutpan/Maven-Shortcuts&quot;&gt;https://github.com/nutpan/Maven-Shortcuts&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
you can download that and place it your classpath to save your time with maven commands.&lt;br /&gt;
&lt;br /&gt;
Purposefully I have kept the number of commands as minimum, please send me your&amp;nbsp;frequently&amp;nbsp;used commands by raising a issue at&amp;nbsp;&lt;a href=&quot;https://github.com/nutpan/Maven-Shortcuts/issues&quot;&gt;https://github.com/nutpan/Maven-Shortcuts/issues&lt;/a&gt;&amp;nbsp;or by adding a comment here, I would like to grow the collection in this way on need basis, so that it will have only the most wanted comments.&lt;br /&gt;
&lt;br /&gt;
Below are the shortcuts and their actual maven command&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mvnc - mvn clean&lt;br /&gt;
mvni - mvn install&lt;br /&gt;
&lt;br /&gt;
mvnci - mvn clean install&lt;br /&gt;
mvnciwt - mvn clean install with out tests&lt;br /&gt;
mvnt - mvn test&lt;br /&gt;
mvnt %1 - mvn test on single test file (eg : mvnt MyTest)&lt;br /&gt;
mvnee - mvn eclipse:eclipse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For Windows, copy all the batch files in to a folder and add the folder in classpath&lt;br /&gt;
For linux/unix, you can copy the sh files into bin folder and give executable permission using commands in makeItExec.sh&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/8268423151456399288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/03/maven-shortcuts.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/8268423151456399288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/8268423151456399288'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/03/maven-shortcuts.html' title='Maven Shortcuts'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-7594205153194040597</id><published>2012-03-18T02:37:00.000-07:00</published><updated>2012-03-18T02:37:04.697-07:00</updated><title type='text'>Liquibase Maven Plugin - Issue with non local database</title><content type='html'>There is an option in Liquibase to prompt for permission if the database it connects to is not in local system.&lt;br /&gt;
By default this option is turned off as per the Liquibase documentation, but when execute through maven Liquibase plugin seems like this default is&amp;nbsp;other way&amp;nbsp;round and by default it is true and even if add the property&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;promptOnNonLocalDatabase=false&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
to liquibase properties file, it is not changing its&amp;nbsp;behavior, when we execute this in non head environments like unix, it does&amp;nbsp;through&amp;nbsp;following exception&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #666666; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt;&quot;&gt;No X11 DISPLAY variable WAS set, this program aims Performed year operation Which &lt;br /&gt;Requires it. &lt;br /&gt;at java.awt.GraphicsEnvironment.&lt;wbr&gt;&lt;/wbr&gt;checkHeadless (GraphicsEnvironment.java: 159) &lt;br /&gt;at java.awt.Window.(Window.java: 407) &lt;br /&gt;at java.awt.Frame.(Frame.java: 402) &lt;br /&gt;at java.awt.Frame.(Frame.java: 367) &lt;br /&gt;at $ javax.swing.SwingUtilities SharedOwnerFrame.(&lt;wbr&gt;&lt;/wbr&gt;SwingUtilities.java: 1731) &lt;br /&gt;at javax.swing.SwingUtilities.&lt;wbr&gt;&lt;/wbr&gt;getSharedOwnerFrame (SwingUtilities.java: 1808) &lt;br /&gt;at javax.swing.JOptionPane.&lt;wbr&gt;&lt;/wbr&gt;getRootFrame (JOptionPane.java: 1673) &lt;br /&gt;at javax.swing.JOptionPane.&lt;wbr&gt;&lt;/wbr&gt;showOptionDialog (JOptionPane.java: 846) &lt;br /&gt;at javax.swing.JOptionPane.&lt;wbr&gt;&lt;/wbr&gt;showConfirmDialog (JOptionPane.java: 779) &lt;br /&gt;at javax.swing.JOptionPane.&lt;wbr&gt;&lt;/wbr&gt;showConfirmDialog (JOptionPane.java: 741) &lt;br /&gt;at liquibase.SwingUIFacade.&lt;wbr&gt;&lt;/wbr&gt;promptForNonLocalDatabase (SwingUIFacade.java: 15)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #666666; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
Solution to this problem is ,&lt;span style=&quot;color: #666666; font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Just add the following in to the maven&amp;nbsp;plugin&amp;nbsp;configuration section&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10pt;&quot;&gt;promptOnNonLocalDatabase&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10pt;&quot;&gt;fals&lt;wbr&gt;&lt;/wbr&gt;e&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10pt;&quot;&gt;promptOnNonLocalDatabase&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background: silver; color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;build&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;plugins&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;org.liquibase&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;groupI&lt;wbr&gt;&lt;/wbr&gt;d&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;u&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;liquibase&lt;/span&gt;&lt;/u&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;-&lt;u&gt;maven&lt;/u&gt;-&lt;u&gt;pl&lt;wbr&gt;&lt;/wbr&gt;ugin&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;2.0.1&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;executions&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&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=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;execution&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&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;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;phase&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;process-resources&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;phas&lt;wbr&gt;&lt;/wbr&gt;e&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&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;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;propertyFile&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;target/classes/&lt;wbr&gt;&lt;/wbr&gt;liquibase.properties&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;property&lt;wbr&gt;&lt;/wbr&gt;File&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: teal; font-family: Consolas;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas;&quot;&gt;promptOnNonLocalDatabase&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;fals&lt;wbr&gt;&lt;/wbr&gt;e&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas;&quot;&gt;promptOnNonLocalDatabase&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&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;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&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;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;goals&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;goal&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;update&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;goal&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&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;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;goals&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&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=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;execution&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;executions&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;plugins&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background: silver; color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;&quot;&gt;build&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: teal; font-family: Consolas; font-size: 10.0pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Hope this helps....&lt;span style=&quot;color: teal; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/7594205153194040597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/03/liquibase-maven-plugin-issue-with-non.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/7594205153194040597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/7594205153194040597'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/03/liquibase-maven-plugin-issue-with-non.html' title='Liquibase Maven Plugin - Issue with non local database'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-4251551783097981623</id><published>2012-03-01T01:55:00.000-08:00</published><updated>2012-03-01T01:55:41.261-08:00</updated><title type='text'>Mock Testing for Java Mail</title><content type='html'>&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Testing the email related code comes with its own&amp;nbsp;challenges,&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;we may need a dedicated test mail server with test mail box&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;verification part of the test can not be executed right after the setup of test due to the latency in the mail delivery (due to milliseconds delay the test may fail).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;setup and maintenance may cost its own&amp;nbsp;penalties&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Especially in CI and Unit testing, testing email part of the code is not so easy.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There are few good alternatives with Mock Mail testing, one of the interesting and very handy options is Mock-JavaMail. It does not require any&amp;nbsp;additional&amp;nbsp;setup or configuration, just drop the jar into classpath,&amp;nbsp;that&#39;s&amp;nbsp;all it requires.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It redirects all the mails to in-memory mail box which can be easily used in unit tests.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Lets see this with small example.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Maven Dependency configuration&amp;nbsp;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Include the following dependency in maven (if not using maven, just drop the jar to classpath)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;groupId&amp;gt;org.jvnet.mock-javamail&amp;lt;/groupId&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;artifactId&amp;gt;mock-javamail&amp;lt;/artifactId&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;version&amp;gt;1.9&amp;lt;/version&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/dependency&amp;gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Example Mail Code&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
I have used Apache Commons Mail api for this example for&amp;nbsp;simplicity, but works fine with any implementation of Java Mail.&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;package com.nutpan.example;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import org.apache.commons.mail.Email;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import org.apache.commons.mail.EmailException;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import org.apache.commons.mail.SimpleEmail;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;public class MyMailSender {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public void sendMail(String to, String from, String subject, String msg) throws EmailException {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;Email email = new SimpleEmail();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;email.addTo(to);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;email.setFrom(from);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;email.setSubject(subject);&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;email.setMsg(msg);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;email.setHostName(&quot;testmail.com&quot;);&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;email.send();&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JUnit Test Code&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div style=&quot;font-weight: bold; text-decoration: underline;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;package com.nutpan.example;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-weight: bold;&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import static junit.framework.Assert.assertEquals;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import static junit.framework.Assert.assertTrue;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import java.io.IOException;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import java.util.List;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import java.util.Properties;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import javax.mail.Folder;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import javax.mail.Message;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import javax.mail.MessagingException;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import javax.mail.Session;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import javax.mail.Store;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import org.apache.commons.mail.EmailException;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import org.junit.Before;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import org.junit.Test;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;import org.jvnet.mock_javamail.Mailbox;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;public class MyMailSenderTest {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;private MyMailSender mailSender;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;@Before&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public void setUp() {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;mailSender = new MyMailSender();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;//clear Mock JavaMail box&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Mailbox.clearAll();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;@Test&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public void testSendInRegualarJavaMail() throws MessagingException, IOException, EmailException {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String subject = &quot;Test1&quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String body = &quot;Test Message1&quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;mailSender.sendMail(&quot;test.dest@nutpan.com&quot;, &quot;test.src@nutpan.com&quot;, subject, body);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Session session = Session.getDefaultInstance(new Properties());&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Store store = session.getStore(&quot;pop3&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;store.connect(&quot;nutpan.com&quot;, &quot;test.dest&quot;, &quot;password&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Folder folder = store.getFolder(&quot;inbox&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;folder.open(Folder.READ_ONLY);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Message[] msg = folder.getMessages();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;assertTrue(msg.length == 1);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;assertEquals(subject, msg[0].getSubject());&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;assertEquals(body, msg[0].getContent());&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;folder.close(true);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;store.close();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;@Test&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public void testSendInMockWay() throws MessagingException, IOException, EmailException {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String subject = &quot;Test2&quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String body = &quot;Test Message2&quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;mailSender.sendMail(&quot;test.dest@nutpan.com&quot;, &quot;test.src@nutpan.com&quot;, subject, body);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;List&amp;lt;Message&amp;gt; inbox = Mailbox.get(&quot;test.dest@nutpan.com&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;assertTrue(inbox.size() == 1);&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;assertEquals(subject, inbox.get(0).getSubject());&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;assertEquals(body, inbox.get(0).getContent());&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;First Test uses the regular Javamail approach for reading the mail and the other one uses the Mock-JavaMail &amp;nbsp;approach to read the mails from the Mock Email Server. I have included the whole import statements to show the different apis from where the classes imported (JavaMail and some from Mock-JavaMail).&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;You can get more information about this work at&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;http://java.net/projects/mock-javamail&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There are few more alternatives too, following are some of the few&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Wiser&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;dumbster&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Aspirin&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;give a try and keep me posted.... Better tests better software...&amp;nbsp;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/4251551783097981623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/03/mock-testing-for-java-mail.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/4251551783097981623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/4251551783097981623'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/03/mock-testing-for-java-mail.html' title='Mock Testing for Java Mail'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-1542030133331643795</id><published>2012-02-07T02:39:00.000-08:00</published><updated>2012-02-07T02:39:29.676-08:00</updated><title type='text'>Backref Hibernate exception</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;&quot;&gt;One
of the possible reasons for &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;org.hibernate.PropertyValueException: not-null property references a
null or transient value: com.server.X._YBackref &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;&quot;&gt;is
cascading same data multiple time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;&quot;&gt;For
Example you have have two classes &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;Class Person {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;List&amp;lt;Car&amp;gt; carsOwned;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;Car preferredCar;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;….&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;Class Car {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;….&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #FAFAFA; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;&quot;&gt;And
the mapping&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: teal; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: silver; color: #3f7f7f; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-highlight: silver;&quot;&gt;bag&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;name&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;carsOwned&quot;&lt;/span&gt;&lt;/i&gt;
&lt;span style=&quot;color: #7f007f;&quot;&gt;table&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;person_cars&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;access&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;property&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;cascade&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;all,delete-orphan&quot;&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: teal; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #3f7f7f; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt;&quot;&gt;key&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;column&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;person_id&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;not-null&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;true&quot;&lt;/span&gt;&lt;/i&gt;
&lt;span style=&quot;color: #7f007f;&quot;&gt;update&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;false&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: teal;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: teal; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #3f7f7f; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt;&quot;&gt;one-to-many&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;class&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;Car&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: teal;&quot;&gt;/&amp;gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: teal; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: silver; color: #3f7f7f; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-highlight: silver;&quot;&gt;bag&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: teal; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: teal; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: teal; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #3f7f7f; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;many-to-one&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;
&lt;span style=&quot;color: #7f007f;&quot;&gt;name&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;preferredCar&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;class&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;Car&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;column&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;preferred_car_id&quot;&lt;/span&gt;&lt;/i&gt;
&lt;span style=&quot;color: #7f007f;&quot;&gt;not-null&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;false&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;unique&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;true&quot;&lt;/span&gt;&lt;/i&gt;
&lt;span style=&quot;color: #7f007f;&quot;&gt;cascade&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;all,delete-orphan&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: teal;&quot;&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;&quot;&gt;In
this case you may get the : not-null property references a null or transient
value: com.server.X._YBackref exception.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;&quot;&gt;It
is because the same car is referred from two fields and both are trying to
save/update. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;&quot;&gt;The
solution to this problem is change the preferredCar mapping as &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: teal; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #3f7f7f; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;many-to-one&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%;&quot;&gt;
&lt;span style=&quot;color: #7f007f;&quot;&gt;name&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;preferredCar&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;class&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;Car&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;column&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;preferred_car_id&quot;&lt;/span&gt;&lt;/i&gt;
&lt;span style=&quot;color: #7f007f;&quot;&gt;not-null&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;false&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;unique&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;true&quot;&lt;/span&gt;&lt;/i&gt;
&lt;span style=&quot;color: #7f007f;&quot;&gt;cascade&lt;/span&gt;=&lt;i&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;color: teal;&quot;&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/1542030133331643795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/02/backref-hibernate-exception.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/1542030133331643795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/1542030133331643795'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/02/backref-hibernate-exception.html' title='Backref Hibernate exception'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-355805667007338454</id><published>2012-01-24T00:30:00.000-08:00</published><updated>2012-01-24T03:42:27.253-08:00</updated><title type='text'>Generating Liquibase change set from the differences of two Two database Instances</title><content type='html'>One of the easiest way to generate the Liquibase Changeset is to keep the two sets of database instances and update one instance with the required changes and generate the changeset using the following command&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;code&quot; style=&quot;background-color: white; border-bottom-color: rgb(222, 231, 236); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(222, 231, 236); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(222, 231, 236); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(222, 231, 236); border-top-style: dashed; border-top-width: 1px; font-size: 12px; margin-bottom: 1em; overflow-x: auto; overflow-y: auto; padding-bottom: 0.5em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.5em; text-align: justify;&quot;&gt;liqubase.bat --driver=oracle.jdbc.OracleDriver \
        --url=jdbc:oracle:thin:@testdb:1521:test \
        --username=bob \
        --password=bob \
    &lt;span class=&quot;search_hit&quot; style=&quot;background-color: #ffff99; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;diffChangeLog&lt;/span&gt; \
        --referenceUrl=jdbc:oracle:thin:@localhost/XE \
        --referenceUsername=bob \
        --referencePassword=bob&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Writing such a long command could be error prone and if you create a batch file(or shell script) that could be used only for diffChangeLog, if you want to see just the diff then you have to write one more batch file, in the same way for every liquibase command (parameterised batch also could not work well for all possible command options).&lt;br /&gt;
&lt;br /&gt;
Alternatively you can just create liquibase.properties file in the liquibase root folder as in the below example&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;code&quot; style=&quot;background-color: white; border-bottom-color: rgb(222, 231, 236); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(222, 231, 236); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(222, 231, 236); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(222, 231, 236); border-top-style: dashed; border-top-width: 1px; font-size: 12px; margin-bottom: 1em; overflow-x: auto; overflow-y: auto; padding-bottom: 0.5em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.5em; text-align: justify;&quot;&gt;&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; text-align: -webkit-auto; white-space: normal;&quot;&gt;
changeLogFile = changeset.xml&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; text-align: -webkit-auto; white-space: normal;&quot;&gt;
url = jdbc:postgresql://localhost:5432/instance1&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; text-align: -webkit-auto; white-space: normal;&quot;&gt;
username = username1&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; text-align: -webkit-auto; white-space: normal;&quot;&gt;
password = password1&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; text-align: -webkit-auto; white-space: normal;&quot;&gt;
referenceUrl = jdbc:postgresql://localhost:5432/instance2&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; text-align: -webkit-auto; white-space: normal;&quot;&gt;
referenceUsername = username2&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; text-align: -webkit-auto; white-space: normal;&quot;&gt;
referencePassword = password2&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; text-align: -webkit-auto; white-space: normal;&quot;&gt;
driver = org.postgresql.Driver&lt;/div&gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
Once created this file, you can simply execute the commands like&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
liquibase diff&lt;/div&gt;
&lt;div&gt;
liquibase diffChangeLog&lt;/div&gt;
&lt;div&gt;
etc&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
with out passing any parameter. Liquibase will use the liquibase.properties file for the parameters.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/355805667007338454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/01/generating-liquibase-change-set-from.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/355805667007338454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/355805667007338454'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/01/generating-liquibase-change-set-from.html' title='Generating Liquibase change set from the differences of two Two database Instances'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total><georss:featurename>Sydney NSW, Australia</georss:featurename><georss:point>-33.873651 151.2068896</georss:point><georss:box>-33.8868345 151.1871486 -33.860467500000006 151.22663060000002</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-6802315473466645446</id><published>2012-01-23T00:30:00.000-08:00</published><updated>2012-01-23T00:30:00.043-08:00</updated><title type='text'>Mock Service Integration Testing with SoapUI and Maven</title><content type='html'>Now the days mock testing is very common in all developments, usually we mock the object&amp;nbsp;behaviors&amp;nbsp;and use them in Unit tests.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;When it comes to web services testing, just mocking the object is not good enough to test. We actually have to mock the&amp;nbsp;behavior&amp;nbsp;at SOAP message level. It is good practice to test against mock services before actually doing the integration test against the actual service.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Using SoapUI, one approach to do this is,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
1. Create a Mock service Project in SoapUI project using the WSDL&lt;/div&gt;
&lt;div&gt;
2. Define mock request and responses.&lt;/div&gt;
&lt;div&gt;
3. start the mock service in SoapUI&lt;/div&gt;
&lt;div&gt;
4. &amp;nbsp;run your tests against that.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
you can read&amp;nbsp;&lt;a href=&quot;http://www.soapui.org/Service-Mocking/mocking-soap-services.html&quot;&gt;http://www.soapui.org/Service-Mocking/mocking-soap-services.html&lt;/a&gt;&amp;nbsp;for step by step example to create and start mock services.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This may be helpful during the development in developer machine, but when we want to include this tests as part of automated tests and to execute in continues integration tests. The better approach could be to include the starting and&amp;nbsp;stopping&amp;nbsp;of the mock services without installing the SoapUI. This can be&amp;nbsp;achieved&amp;nbsp;using SoapUI maven plugin.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Create a mock service project in SoapUI project using WSDL (refer&amp;nbsp;
&amp;nbsp;&lt;a href=&quot;http://www.soapui.org/Service-Mocking/mocking-soap-services.html&quot;&gt;http://www.soapui.org/Service-Mocking/mocking-soap-services.html&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Define Mock requests and responses.&lt;/li&gt;
&lt;li&gt;copy the SoapUI mock services project into your classpath.&lt;/li&gt;
&lt;li&gt;Include the following in you pom file&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;u&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;eviware&lt;/span&gt;&lt;/u&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;u&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;maven&lt;/span&gt;&lt;/u&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;-&lt;u&gt;soapui&lt;/u&gt;-&lt;u&gt;plugi&lt;wbr&gt;&lt;/wbr&gt;n&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&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=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;projectFile&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;${basedir}/&lt;wbr&gt;&lt;/wbr&gt;target/myservice-soapui-mock-project.xml&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;projectFile&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&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=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;noBlock&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;noBlock&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&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=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;executions&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&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=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;execution&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&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;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;u&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;soapui&lt;/span&gt;&lt;/u&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;-test&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&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;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;phase&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;phase&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&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;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;goals&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;goal&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;mock&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;goal&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&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;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;goals&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&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=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;execution&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;executions&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;This will start the mock services at the start of the test phase and stop at the end of the test phase. Now you can execute the tests as part of the automated unit tests against this mock services to ensure more reliable code.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;noBlock&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;noBlock&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: teal; font-family: &#39;Courier New&#39;; font-size: 10pt;&quot;&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;is for automated tests, otherwise manual intervention is required to stop the mock service.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/6802315473466645446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/01/mock-service-integration-testing-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/6802315473466645446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/6802315473466645446'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/01/mock-service-integration-testing-with.html' title='Mock Service Integration Testing with SoapUI and Maven'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Sydney NSW, Australia</georss:featurename><georss:point>-33.873651 151.2068896</georss:point><georss:box>-33.8868345 151.1871486 -33.860467500000006 151.22663060000002</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-368346791164784418</id><published>2012-01-22T00:30:00.000-08:00</published><updated>2012-01-22T04:28:11.720-08:00</updated><title type='text'>bug with JDK 1.6.0.29?</title><content type='html'>I came across an&amp;nbsp;weird&amp;nbsp;issue, We communicate with an existing&amp;nbsp;web service from one of our new projects, when I try to execute the project from my system which talks to the web service in test server (GlassFish), The request was failing in server end with the following error.&lt;br /&gt;
&lt;br /&gt;
&quot;The markup in the document preceding the root element must be well-formed.&quot;&lt;br /&gt;
&lt;br /&gt;
And the error was intermittent. The same project executes fine in my all other teammates systems. After doing all the normal initial trouble shooting (syncing&amp;nbsp;with the latest in code base, clean up the maven repo, capturing outgoing message and try from SoapUI etc). The only difference between my system and others were jdk version, I was using 1.6.0.29, and other were using 1.6.0.27. After I reduced my JDK version to 1.6.0.27, it started to work fine. So&amp;nbsp;Weird, I did not find any difference in the outgoing SOAP message too. I will update this post if I found any thing useful in this.</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/368346791164784418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/01/bug-with-jdk-16029.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/368346791164784418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/368346791164784418'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/01/bug-with-jdk-16029.html' title='bug with JDK 1.6.0.29?'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Sydney NSW, Australia</georss:featurename><georss:point>-33.873651 151.2068896</georss:point><georss:box>-33.8868345 151.1871486 -33.860467500000006 151.22663060000002</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5936887697378880105.post-3479318199810153163</id><published>2012-01-20T14:15:00.000-08:00</published><updated>2012-01-20T14:15:31.738-08:00</updated><title type='text'>APIs at Project Level or Application Server Level?</title><content type='html'>As all of us know, any libraries, apis could be included at application server level or at project level (within war file).&lt;br /&gt;
&lt;br /&gt;
Like any other libraries, Metro web services could be included at project level or application server level. Main difference here with other libraries is, usually installing at project level is the default choice, and server level installation is rare, but Metro suggests this in its documentation and it comes with GlassFish as pre-installed package. Metro also provides an installer to install Metro to Tomcat, so here including at server level becomes default choice.&lt;br /&gt;
&lt;br /&gt;
We can always avoid Metro at application server level, and include it at Project level. &amp;nbsp;Here it triggers some thoughts on best approach, not just for Metro but for any Libraries, in my view,&lt;br /&gt;
&lt;br /&gt;
Including at project level is better, because&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Libraries should be specific to projects, not common to all the projects deployed in the application server&lt;/li&gt;
&lt;li&gt;Upgrading all the projects in an Application server to new version of the library is not practical&lt;/li&gt;
&lt;li&gt;Keeping projects independent of application server specific libraries is always increases&amp;nbsp;manageability&amp;nbsp;and avoids release issues.&lt;/li&gt;
&lt;li&gt;Usually upgrading and installing the libraries at server level will be the task of Server admins, In my view handling libraries should be the task of developers not admins.&lt;/li&gt;
&lt;li&gt;Including at project level bundles the library with the project, so at the stage of delivery the project has been tested along with the library, so it reduces the delivery time bugs.&lt;/li&gt;
&lt;li&gt;It keeps the application server as unchanged from its installation and avoids&amp;nbsp;configuration&amp;nbsp;issues&lt;/li&gt;
&lt;li&gt;Clean application server, so no conflict with the libraries from the project.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
In my recent experience, we faced a library conflict issue because of using metro at server level, now we changed to project level and looks our project and application server is independent of each other and works fine. Share your views too. Thanks.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nutpan.com/feeds/3479318199810153163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nutpan.com/2012/01/apis-at-project-level-or-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/3479318199810153163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5936887697378880105/posts/default/3479318199810153163'/><link rel='alternate' type='text/html' href='http://blog.nutpan.com/2012/01/apis-at-project-level-or-application.html' title='APIs at Project Level or Application Server Level?'/><author><name>Nutpan</name><uri>http://www.blogger.com/profile/06307605312954706933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>