<?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-3870011884959277662</id><updated>2024-10-05T12:29:28.248+05:30</updated><category term="Eclipse"/><category term="Java"/><category term="crossdomain.xml"/><category term="cross domain"/><category term="cxf-rs"/><category term="JFace"/><category term="coaching"/><category term="flXHR"/><category term="flash"/><category term="jQuery"/><category term="people management"/><category term="service"/><category term="swt"/><category term="Action"/><category term="ActionContributionItem"/><category term="Builder"/><category term="Button"/><category term="CXF"/><category term="Comparison"/><category term="Flex"/><category term="IAction"/><category term="India"/><category term="Interview"/><category term="RS"/><category term="Spring"/><category term="TableViewer"/><category term="Windows"/><category term="apache"/><category term="camel"/><category term="endpoints"/><category term="generation"/><category term="mapping"/><category term="problem"/><category term="tomcat"/><category term="work"/><category term="3d"/><category term="3d effect"/><category term="AOP"/><category term="Application"/><category term="Applications"/><category term="ArrayCollection"/><category term="Browse"/><category term="CURD"/><category term="ColumnLabelProvider"/><category term="Compiler"/><category term="Concurrency"/><category term="Connection"/><category term="Conquer"/><category term="DB"/><category term="Design"/><category term="Desktop"/><category term="Divide"/><category term="Dolphin"/><category term="Dynamic Languages Toolkit"/><category term="ESB"/><category term="Eclipse. Escape"/><category term="EndpointInjection"/><category term="FF 4"/><category term="FactoryBean"/><category term="Features"/><category term="Firefox"/><category term="FlashBuilder"/><category term="Fuse ESB"/><category term="Gear"/><category term="Gear 2"/><category term="Gear 2 neo"/><category term="HTTPClient"/><category term="Hide"/><category term="IContributionItem"/><category term="IE 9"/><category term="IE7"/><category term="ILabelProvider"/><category term="Internet Explorer"/><category term="JBI"/><category term="JDK"/><category term="Jackson"/><category term="Mac"/><category term="Master Detail"/><category term="Netbeans"/><category term="New"/><category term="Nexus"/><category term="No mapping found"/><category term="OS"/><category term="OSGI"/><category term="PageNotFound"/><category term="Pasting"/><category term="Print"/><category term="ProducerTemplate"/><category term="Progress"/><category term="Reset"/><category term="SCM"/><category term="SU"/><category term="Scalable"/><category term="Scrollbars"/><category term="Scroller"/><category term="Servicemix"/><category term="Shutdown"/><category term="SocketException"/><category term="Software"/><category term="String"/><category term="TableColumn"/><category term="TableColumns"/><category term="Thread"/><category term="Threads"/><category term="TreeViewer"/><category term="UI"/><category term="XMLList"/><category term="access"/><category term="add"/><category term="ajax"/><category term="algorithm"/><category term="all"/><category term="attributes"/><category term="auto"/><category term="best practice"/><category term="bufferedreader"/><category term="camelcontext"/><category term="change"/><category term="class"/><category term="code"/><category term="compilation"/><category term="conflict"/><category term="content assist"/><category term="controller"/><category term="convert"/><category term="crash"/><category term="cross"/><category term="css"/><category term="culture"/><category term="custom"/><category term="difference"/><category term="dltk"/><category term="domain"/><category term="draw 2d"/><category term="draw2d"/><category term="dynamic"/><category term="editor"/><category term="endpoint"/><category term="excel"/><category term="expedia"/><category term="experience"/><category term="export"/><category term="first"/><category term="font-weight"/><category term="generate"/><category term="getting"/><category term="hibernate"/><category term="hidden"/><category term="hiding"/><category term="i18n"/><category term="implements"/><category term="inteface"/><category term="jaxrs"/><category term="jettison"/><category term="join"/><category term="json"/><category term="limitation"/><category term="links"/><category term="list"/><category term="listing"/><category term="look and feel"/><category term="maven"/><category term="metrics-spring"/><category term="mobile"/><category term="not working"/><category term="office"/><category term="overflow"/><category term="phantom"/><category term="platforms"/><category term="play framework"/><category term="pojo"/><category term="produces"/><category term="prototype"/><category term="questions"/><category term="recipientList"/><category term="reference"/><category term="repository"/><category term="response"/><category term="roo"/><category term="route"/><category term="routebuilder"/><category term="routedefinition"/><category term="runtime"/><category term="sample"/><category term="securityError"/><category term="semibold"/><category term="should"/><category term="soft"/><category term="solution"/><category term="started"/><category term="strong"/><category term="subclipse"/><category term="svn"/><category term="tips"/><category term="to"/><category term="together"/><category term="tool"/><category term="tree"/><category term="weak"/><category term="web"/><category term="working"/><category term="wsdl"/><category term="wsdl2java"/><category term="xjc"/><category term="xml"/><category term="xp"/><category term="xsd"/><category term="xsd2wsdl"/><title type='text'>Coaching for people managers</title><subtitle type='html'>My Opinion. </subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-18780918350578562</id><published>2020-04-23T18:46:00.003+05:30</published><updated>2020-04-30T11:39:21.278+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="bufferedreader"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Write a Java program to read console data using bufferedreader API</title><content type='html'>&lt;div&gt;&lt;em&gt;&lt;a href=&quot;https://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html&quot;&gt;BufferedReader&lt;/a&gt; &lt;/em&gt;is
 a class which simplifies reading text from a character input stream. It
 buffers the characters in order to enable efficient reading of 
text&amp;nbsp;data.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt; The buffer size may be specified, or the default size may be used.  The
 default is large enough for most purposes.

 &lt;/p&gt;&lt;p&gt; In general, each read request made of a Reader causes a corresponding
 read request to be made of the underlying character or byte stream.  It is
 therefore advisable to wrap a BufferedReader around any Reader whose read()
 operations may be costly, such as FileReaders and InputStreamReaders.  For
 example,

 &lt;/p&gt;&lt;pre&gt;&lt;span style=&quot;color: #ba67c8;&quot;&gt; // BufferedReader in = new BufferedReader(new FileReader(&quot;foo.in&quot;));&lt;/span&gt;
 &lt;/pre&gt;

 will buffer the input from the specified file.  Without buffering, each
 invocation of read() or readLine() could cause bytes to be read from the
 file, converted into characters, and then returned, which can be very
 inefficient.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;import java.io.BufferedReader;&lt;/div&gt;import java.io.IOException;&lt;br /&gt;import java.io.InputStreamReader;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;public class BufferedReaderExample {&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; public static void main(String[] s) throws IOException {&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #4285f4;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Wrap System.in with InputStreamReader followed by BufferedReader&lt;/span&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.print(&quot;&lt;span style=&quot;color: #41b375;&quot;&gt;Enter Name: &lt;/span&gt;&quot;);&lt;br /&gt;&lt;div&gt;&amp;nbsp; &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #4285f4;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Finally read from bufferedReader &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; String name = bufferedReader.readLine();&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;&lt;span style=&quot;color: #0f9d58;&quot;&gt;Name&lt;/span&gt;: &quot; + name);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/18780918350578562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2020/04/write-java-program-to-read-console-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/18780918350578562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/18780918350578562'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2020/04/write-java-program-to-read-console-data.html' title='Write a Java program to read console data using bufferedreader API'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-262325466080682921</id><published>2020-01-30T11:21:00.004+05:30</published><updated>2020-08-27T09:21:06.587+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="coaching"/><category scheme="http://www.blogger.com/atom/ns#" term="people management"/><title type='text'>Absorbing Feedback</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
We all want to improve, absorbing feedback is the most important step in the process of improvement. Even when we get feedback, we don&#39;t know how to act on it.&lt;br /&gt;
&lt;br /&gt;
We have good techniques for giving feedback like SBI (Situation, Behavior, Impact) however, it took me some time to develop a good framework to absorb and act on feedback. Let me start with a real-life situation:&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;i&gt;A couple of years back, &lt;/i&gt;I received feedback, however incapable of acting on it. I was struggling to make any improvement. During this phase, I developed the framework which helped me.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
This framework has two attributes &quot;&lt;i&gt;Understand Deeply&quot; &lt;/i&gt;and&lt;i&gt; &quot;Act Swiftly&quot;.&amp;nbsp;&lt;/i&gt;&lt;/div&gt;
&lt;div i=&quot;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Understand Deeply&lt;/b&gt; is about understanding the feedback and situations where behaviour is depicted so that you can relate to the situation. Some situations bring out the same undesired behaviour. It is also very important to understand the intent of the feedback.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Act Swiftly &lt;/b&gt;talks about acting on feedback, taking steps to implement the feedback and correct the behaviour. It is really important to act promptly on feedback, people are more likely to give feedback if they see action on it.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&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/AVvXsEgBsJAEN_dCY0m5G6j9XskqQOmdLk12DnGHF2zyThj2CfTPjMvPoMZDhhHAThWVCMGJkDEzrUEPlAqSjBEwtZtlkuRrTqjSgsw7LJfZk82kp5fcNoV_D_XqML7GuZOBAlsmC_O0kWwN5_Q3/s1600/Screen+Shot+2019-11-02+at+9.46.44+pm.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;790&quot; data-original-width=&quot;1288&quot; height=&quot;392&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBsJAEN_dCY0m5G6j9XskqQOmdLk12DnGHF2zyThj2CfTPjMvPoMZDhhHAThWVCMGJkDEzrUEPlAqSjBEwtZtlkuRrTqjSgsw7LJfZk82kp5fcNoV_D_XqML7GuZOBAlsmC_O0kWwN5_Q3/s640/Screen+Shot+2019-11-02+at+9.46.44+pm.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
These behaviours don&#39;t work in isolation but rather has an amplifier impact when combined together.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Let&#39;s start with the first quadrant on the top left corner and go anti-clockwise.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Insincere quadrant&lt;/b&gt;, in this quadrant feedback, is well understood however not ready to act. There could be multiple reasons for not acting on a feedback example it requires some fundamental behaviour change, requires too much effort etc. One way to change is to try to divide the feedback into smaller pieces and tackle a piece at a time.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;b&gt;Indifferent quadrant &lt;/b&gt;this is the hardest quarter to be in where you don&#39;t (want to) understand the feedback because the intent to act on the feedback is missing. Change needed in this situation is fundamental. Burnout, de-motivation or lack of interest could be some of the reasons. Taking a break sometimes help, if its a team, work or manager related issue changing the team or even the company might also help.&lt;br /&gt;
&lt;br /&gt;
Next comes &lt;b&gt;Frustrated quadrant&lt;/b&gt; where feedback is being acted upon is not getting addressed and all the is going waste. It&#39;s best to take a step back to try and understand the feedback more deeply. Same feedback in a different situation could have very different meanings.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;True&amp;nbsp;and lasting change&lt;/b&gt; happens when we understand the feedback and act upon it promptly to go through change-learn-improve cycles. Remember when the feedback is well understood it becomes easy to incrementally improve.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Hope this helps.&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/262325466080682921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2019/11/absorbing-feedback.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/262325466080682921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/262325466080682921'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2019/11/absorbing-feedback.html' title='Absorbing Feedback'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBsJAEN_dCY0m5G6j9XskqQOmdLk12DnGHF2zyThj2CfTPjMvPoMZDhhHAThWVCMGJkDEzrUEPlAqSjBEwtZtlkuRrTqjSgsw7LJfZk82kp5fcNoV_D_XqML7GuZOBAlsmC_O0kWwN5_Q3/s72-c/Screen+Shot+2019-11-02+at+9.46.44+pm.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-696245088351690437</id><published>2019-05-28T05:32:00.001+05:30</published><updated>2020-03-23T18:29:43.225+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="coaching"/><category scheme="http://www.blogger.com/atom/ns#" term="people management"/><title type='text'>Grow faster by making yourself redundant!</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;b&gt;Redundant&lt;/b&gt;! but why? What about job security? Shouldn&#39;t we be consolidating our position instead of going redundant? All these questions are obvious when you read the title of this article. Don&#39;t worry, we are not talking about how to get yourself fired but opposite, how to grow faster by &lt;b&gt;&lt;i&gt;making yourself redundant in a role&lt;/i&gt;&lt;/b&gt;. In a job, we are expected to play roles that are needed from us e.g. program manager, project manager, people manager, technical lead are few roles engineering managers play to be successful. This article talks about how we can progressively outgrow in our current role and start learning (or mastering) the new roles. Transferring responsibilities to people you are managing are the best way of making space for learning something new. Over the past couple of years as an engineering manager, I have been following this philosophy to learn new things. Let&#39;s take an example of leading a project to understand this better.&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/AVvXsEjXh7ZWCwfQWgVMZWxcu1sm957yTpnfy_BCwKOm74QQrkiDGdstAbEFBXevdCT1O79Ol1nzynEwZTD10Q0Ap-Qfe016zP4DmC9EZuMYNuFfv12UmEgtEdhMdN8IL0fyiRKLxBKz70rFLbVK/s1600/0.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;480&quot; data-original-width=&quot;620&quot; height=&quot;308&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXh7ZWCwfQWgVMZWxcu1sm957yTpnfy_BCwKOm74QQrkiDGdstAbEFBXevdCT1O79Ol1nzynEwZTD10Q0Ap-Qfe016zP4DmC9EZuMYNuFfv12UmEgtEdhMdN8IL0fyiRKLxBKz70rFLbVK/s400/0.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Engineering Managers are the backbone of the team. However, they are also the weakest link in the team&lt;i&gt;, often they are the single point of failure.&lt;/i&gt; The team rely on them to make crucial decisions. In a normal situation, nothing is wrong with this arrangement but when they are away (in conferences, multi-day-meetings, holidays or sick) projects gets derailed due to decrease in decision making velocity and lack of process ownership in the team.&lt;br /&gt;
&lt;br /&gt;
If EM spends too much time on project execution, they won&#39;t have enough time for people &lt;i&gt;(call it&lt;/i&gt;&lt;b&gt; 100% harvesting and no investing&lt;/b&gt;&lt;i&gt;). &lt;/i&gt;In my experience, time spent on people is directly proportional&amp;nbsp;to the happiness of the team which has a flywheel effect on deliverables. On the other hand, unhappy teams lead to lower development velocity and error-prone deliverables, which results in managers spending more time on execution.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;This cycle leads to burnout in managers and also results in unhappy teams which have a domino effect on deliverables (poor in both quantity and quality).&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
To avoid this situation the most important step for the managers is to automate the execution and funnel more-time in people management and product planning. However, it&#39;s not a trivial task and involves rolling out well-orchestrated process changes in small implement-and-improve iterations. For me, it took 6 months to achieve a sustainable execution model.&lt;br /&gt;
&lt;br /&gt;
This article will take you through the journey of &quot;making myself redundant&quot;.&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;Phase 1: &quot;Doing all the things an EM should be doing! Well, I want to change it!&quot; &lt;/b&gt;&lt;/blockquote&gt;
&lt;h2&gt;
&lt;b&gt;Identifying delegation worthy responsibilities!&lt;/b&gt;&amp;nbsp;&lt;/h2&gt;
&lt;b&gt;Question&lt;/b&gt;: What are the responsibilities my team can own and run?&lt;br /&gt;
Planning? Retrospective? They do it fortnightly hence have a very good understanding which means they can be independent on this quite quickly.&lt;br /&gt;
&lt;b&gt;Question&lt;/b&gt;: Who should own it? Do we need a new role? What should be the responsibilities of this new role?&lt;br /&gt;
Probably we need a feature/project lead. Who should be a Lead?&lt;br /&gt;
A-Team member.&lt;br /&gt;
Why don&#39;t I ask my team, what they think they should be doing as a Lead?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Time for brainstorming:&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
We as a team gathered in a room and listed responsibilities which will be owned by the lead. E.g. updating the project status, finalizing implementation approach, sprint planning,&lt;br /&gt;
&lt;del class=&quot;strikethrough&quot;&gt;retro, demos&lt;/del&gt;&amp;nbsp;(team rotates these) etc. Point worth noting, we didn&#39;t define everything, like how to manage external dependencies or how to distribute work.&amp;nbsp;&lt;i&gt;The plan was to start with something small and keep on increasing the responsibilities&lt;/i&gt;&lt;i&gt;.&lt;/i&gt;&lt;br /&gt;
&lt;h2&gt;
&lt;b&gt;&amp;nbsp;Why not define comprehensive roles and responsibilities?&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
Defining clear R&amp;amp;R in one go is very easy and leads to very clear paths however it also means decoupled roles which are recipe for disaster when you starting something this big. We can compare it with athlete training, they can&#39;t run a marathon in the first week but the distance is increased gradually over a sustainable duration. Similarly, we decided on some base responsibilities with adequate checks in place e.g. leads can always reassign part or whole of responsibility to me (EM) at any moment after discussion.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is this a good model?&lt;/b&gt;&lt;br /&gt;
There are multiple ways a lead can be trained onto new responsibilities:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Coach a lead on everything before handing over the responsibility&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&quot;Throw them in water and let them learn how-to-swim&quot; give them responsibility and let them ask for help.&lt;/li&gt;
&lt;li&gt;Start small &lt;i&gt;take a step at a time, keep on adding responsibilities. &lt;/i&gt;&lt;/li&gt;
&lt;/ol&gt;
I personally like the third option as it leads to sustainable handover where everyone gets the time to adjust and iterate.&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;Phase 2: &quot;Attending all the team meetings as a participant.&quot;&lt;/b&gt;&lt;/blockquote&gt;
Feature lead is starting to onboard on new responsibilities and taking ownership more and more meetings. However, it will start eating into the capacity of the lead which could be a problem. So, apart from defining some basic responsibilities, we also finalized on a rule&lt;b&gt;&amp;nbsp;&quot;lead should start with 20% time on leading&quot;&lt;/b&gt;. &lt;i&gt;The idea here is to increase the responsibility and not to make them unproductive.&lt;/i&gt;&lt;br /&gt;
&lt;h2&gt;
&lt;b&gt;The right mix!&lt;/b&gt;&lt;/h2&gt;
As discussed above, listing role and responsibilities help, however it can also be over-prescriptive. Agreeing on &quot;&lt;b&gt;What&lt;/b&gt;&amp;nbsp;needs to be done&quot;, &quot;&lt;b&gt;When&lt;/b&gt;&amp;nbsp;it needs to be done&quot; in important whereas &quot;&lt;b&gt;How&lt;/b&gt;&quot; can be left open.&lt;br /&gt;
Ask pointed questions, to make sure things are on track, it will surface the trade-offs and flaws. &lt;a href=&quot;https://en.wikipedia.org/wiki/5_Whys&quot; rel=&quot;noopener nofollow&quot; target=&quot;_blank&quot;&gt;&amp;nbsp;Follow five Whys approach if and needed&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;Phase 3: &quot;Coaching the lead!&quot;&lt;/b&gt;&lt;/blockquote&gt;
As lead is taking responsibilities, start spending&amp;nbsp;more&amp;nbsp;time with them to make sure they understand why we are doing something instead of just doing it for the sake of it. This will lead conversations on&amp;nbsp;&lt;b&gt;&quot;why this and not that&quot;,&lt;/b&gt; addressing these questions is like laying the foundation of the leadership, answering every question sincerely will help in developing a good leader for your team.&lt;br /&gt;
&lt;h2&gt;
&lt;i&gt;A healthy team is built on healthy processes&lt;/i&gt;&lt;/h2&gt;
&lt;i&gt;&quot;Processes are the building blocks of trust in a team&quot;. &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&quot;Teams who learn to rely on each-other can solve any problem&quot;.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt; &quot;If we can define a problem, we can solve it and if we can solve it once, we should solve it&amp;nbsp;efficiently the next time&quot;.&lt;/i&gt;&lt;br /&gt;
Healthy team need lightweight (healthy) processes to make sure everything runs smoothly.&amp;nbsp;You can rely on the team and processes to take care of everything.&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;&lt;i&gt;Phase 4:&quot;Give up the power, not the control&lt;/i&gt;!&quot;&lt;/b&gt;&lt;/blockquote&gt;
The last piece of the puzzle is patience.&lt;br /&gt;
Following meetings if well run can help a lot:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Planning&lt;/li&gt;
&lt;li&gt;Stand-up&lt;/li&gt;
&lt;li&gt;Retrospectives&lt;/li&gt;
&lt;li&gt;Health-monitors&amp;nbsp;&lt;/li&gt;
&lt;li&gt;SWOT&lt;/li&gt;
&lt;/ul&gt;
If teams is not happy and motivated you can&#39;t deliver anything worthwhile. Listening to the team&#39;s concerns is the easiest way to address the problems. If team is raising a concern it should be fixed, don&#39;t apply filters without understanding the problem first. Team will always be motivated if you remove (or help them remove) the impediments, remember motivation is key to the successful&amp;nbsp;delivery. &lt;b&gt;&lt;i&gt;I believe the most important part of my job is to keep the team motivated&lt;/i&gt;&lt;/b&gt;. I get the real sense of how we are doing as a team from the meetings listed above.&lt;br /&gt;
&lt;h2&gt;
&lt;b&gt;Right Now!&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;b&gt;Phase 5: &quot;Close to doing nothing related to a project execution! \o/&lt;/b&gt;&lt;/blockquote&gt;
&lt;h2&gt;
&lt;b&gt;Focus on long-term strategy and career planning for the team!&quot;&lt;/b&gt;&lt;/h2&gt;
We successfully delivered the project without delay, covering more than we anticipated and removing all the major blockers we faced.&lt;br /&gt;
&lt;i&gt;As an EM, I need to be do something to keep my anxiety in check.&lt;/i&gt;&lt;br /&gt;
So, I am making sure:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Scope is fixed&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Team stays away from distractions&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Focus on one thing at a time, minimize context switching&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Taking discussions irrelevant&amp;nbsp;to the team away from them&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Address action items on priority&lt;/li&gt;
&lt;/ul&gt;
Giving away your responsibilities is not easy and people would be making mistakes like you did when you started. However, how to make this learning rewarding is the challenge. Remember you are learning as much as the other person, you are learning to be patience, you are learning to give away control, you are learning to diagnose problems early, so much learning is involved in this process. These are the building blocks of being a leader, if you can&#39;t delegate you can&#39;t scale.&lt;br /&gt;
&lt;br /&gt;
In the end, learning is an essential part of the growth for everyone. Focus on growing people in your team for the unforeseen results. Encouraging leadership in your team is the best way of growing your team.&lt;br /&gt;
&lt;br /&gt;
Try being redundant, its addictive!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/696245088351690437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2019/05/making-yourself-redundant.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/696245088351690437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/696245088351690437'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2019/05/making-yourself-redundant.html' title='Grow faster by making yourself redundant!'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXh7ZWCwfQWgVMZWxcu1sm957yTpnfy_BCwKOm74QQrkiDGdstAbEFBXevdCT1O79Ol1nzynEwZTD10Q0Ap-Qfe016zP4DmC9EZuMYNuFfv12UmEgtEdhMdN8IL0fyiRKLxBKz70rFLbVK/s72-c/0.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-7753833892965680359</id><published>2017-05-25T13:47:00.001+05:30</published><updated>2020-01-31T09:18:01.351+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="coaching"/><category scheme="http://www.blogger.com/atom/ns#" term="people management"/><title type='text'>Engineering Leader: How to make a difference? </title><content type='html'>&lt;head&gt;&lt;meta name=&quot;google-site-verification&quot; content=&quot;N90jdKTatLTCSlsGxWoAnU-sYCiqTi0FvYjH9CmyYlw&quot; /&gt;&lt;/head&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;prose&quot; itemprop=&quot;articleBody&quot;&gt;
Being an engineering leader is not an easy task, especially when you are stepping into this role as a first-timer. Seldom you go through a training, however in most situations you are expected to figure it out yourself with little or no guidance. Often leadership&amp;nbsp;demands you to play following roles:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;People Manager&lt;/li&gt;
&lt;li&gt;Product/Business knowledge&lt;/li&gt;
&lt;li&gt;Architect/Senior Developer&lt;/li&gt;
&lt;li&gt;Vision for technology&lt;/li&gt;
&lt;/ul&gt;
I will be writing separate blogs to cover the first two roles. For a beginner, last two roles are very important to gain credibility of the team which is the most important factor in succeeding at your job.&lt;br /&gt;
As a technical leader, you will be facing the challenges from all the directions like decision making, improving team efficiency and choosing the technology roadmap for your team. However, I hope adopting following patterns can help you sail through these challenges.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Decision Making&lt;/strong&gt;: When hit with the problem, as a techie you rely on your technical skills and often start suggesting solutions immediately which is fine in few situations, however in my experience better way would be to ask pointed questions to lead your team in driving the right decision. Questions should be repeatedly asked to highlight the blemishes in the suggested design. For example, &quot;How would you take care of security?&quot;, &quot;How are you addressing scalability?&quot;, &quot;How would application behave under these circumstances?&quot; and many more.&lt;br /&gt;
&lt;br /&gt;
It&#39;s easier to jump to the solution by picking up the first suggestion by trusting the loudest (not literally) person in the room. However, as a coach, you should be involving everyone in the decision-making process. Find out what is missing in the room, is it the knowledge, the skill or the participation. You need to create enough opportunities for everyone to participate.&amp;nbsp;To do that you need to think about various factors like structure of the team, personalities in the team etc.&amp;nbsp;These factors can be neutralized to an extent by bringing everyone to a common understanding of the problem. In my experience, following preparation before hosting an important meeting would make it easier:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Share a document explaining the problem which can educate the team before the discussion&lt;/li&gt;
&lt;li&gt;During the meeting, explain the problem in detail so that team can align their understanding&lt;/li&gt;
&lt;li&gt;Do your homework before going to the meeting. This will help you in asking the right questions and guiding the meeting towards the solution.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;strong&gt;Improving Efficiency&lt;/strong&gt;: Team delivers to the full potential if they are not disturbed and allowed to focus on the problem. As a leader, think about how the team is getting distracted, how can you make them focus on stories or task in hand? Improve the development processes so that you can minimize the impact on the team. For example, in a production issue churn out the non-technical part and direct developer towards solving the technical problem.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Vision for Technology&lt;/strong&gt;: Successful teams stay ahead of the technology curve. As a coach, you need to ensure that your team is adapting to changing landscape of the technology world. While working with your team to strengthen the technology muscle, you need to start focusing on what should be the future technology platform for your team. If you are not thinking at least 3-months down the line, you will lose the war while you were busy fighting battles.&lt;br /&gt;
Be sensitive to what role you are playing in your team. You are not a developer anymore, you are a coach and coaching means understanding before suggesting, listening before speaking, advising rather than commenting.&lt;br /&gt;
&lt;br /&gt;
As a beginner, starting in the world of unknown unknowns of management, I hope my secret sauce can help you prepare the right dish for your team!!!&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/7753833892965680359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2017/05/engineering-leader-how-to-make.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7753833892965680359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7753833892965680359'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2017/05/engineering-leader-how-to-make.html' title='Engineering Leader: How to make a difference? '/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-5731375570923665693</id><published>2015-01-23T08:55:00.002+05:30</published><updated>2020-03-23T18:31:51.059+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="excel"/><category scheme="http://www.blogger.com/atom/ns#" term="export"/><category scheme="http://www.blogger.com/atom/ns#" term="i18n"/><category scheme="http://www.blogger.com/atom/ns#" term="play framework"/><title type='text'>Play framework 1.2.x excel export with I18n and custom filename </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/greenlaw110/play-excel&quot;&gt;play-excel&lt;/a&gt; is a very well written plugin of Play-framework for exporting excel from java objects. &lt;br /&gt;
&lt;br /&gt;
I used this plugin for my requirement of generating the I18n supported xls with custom names. This blog will explain this in details so that I can use it later :). &lt;br /&gt;
&lt;br /&gt;
Line# 4: will basically make the play-excel to take the rendering functionality in play. (you can also use xlsx instead of &quot;xls&quot;)&lt;br /&gt;
&lt;br /&gt;
Line# 5: Will set the exported filename to given name i.e. &quot;downloadUsers.xls&quot; &lt;br /&gt;
&lt;br /&gt;
Line# 6&amp;amp;7: pick up the template from views/&lt;controllername&gt;/users_&lt;lang&gt;.xls.&lt;/lang&gt;&lt;/controllername&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 0px none; color: #222222; font-family: Consolas,Menlo,Monaco,&amp;quot;Lucida Console&amp;quot;,&amp;quot;Liberation Mono&amp;quot;,&amp;quot;DejaVu Sans Mono&amp;quot;,&amp;quot;Bitstream Vera Sans Mono&amp;quot;,&amp;quot;Courier New&amp;quot;,monospace,serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 1em; max-height: 600px; overflow: auto; padding: 5px; text-align: left; text-indent: 0px; text-transform: none; width: auto; word-spacing: 0px; word-wrap: normal;&quot;&gt;&lt;code style=&quot;background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 13px; margin: 0px; padding: 0px; white-space: inherit;&quot;&gt;2.  public static void users() {
3.          List&lt;user&gt; users = User.findAll();
4.          request.format = &quot;&lt;b&gt;xls&lt;/b&gt;&quot;;
5.          renderArgs.put(&quot;&lt;b&gt;__FILE_NAME__&lt;/b&gt;&quot;, &quot;downloadUsers.xls&quot;);
6.          String template = &quot;users-&quot; + &lt;b&gt;Lang.get()&lt;/b&gt; + &quot;.xls&quot;;
7.          &lt;b&gt;renderTemplate&lt;/b&gt;(template, users);
8.    }&lt;/user&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
That&#39;s it you are done. Happy coding :). &lt;/div&gt;
</content><link rel='enclosure' type='text/html' href='https://www.playframework.com/modules/excel' length='0'/><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/5731375570923665693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2015/01/play-framework-12x-excel-export-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/5731375570923665693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/5731375570923665693'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2015/01/play-framework-12x-excel-export-with.html' title='Play framework 1.2.x excel export with I18n and custom filename '/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-680501780014140635</id><published>2014-06-19T10:03:00.000+05:30</published><updated>2020-03-23T18:33:18.841+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Gear"/><category scheme="http://www.blogger.com/atom/ns#" term="Gear 2"/><category scheme="http://www.blogger.com/atom/ns#" term="Gear 2 neo"/><category scheme="http://www.blogger.com/atom/ns#" term="Nexus"/><title type='text'>Gear 2 and Gear 2 Neo working with Nexus 5</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Gear 2 and Gear 2 Neo are working perfectly with Nexus 5. Please go to the following URL:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://forum.xda-developers.com/showthread.php?t=2677686&quot;&gt;http://forum.xda-developers.com/showthread.php?t=2677686 &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
and download the &quot;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Galaxy Gear Manager&lt;/b&gt;&lt;/span&gt;&quot; app on your phone. &lt;br /&gt;
&lt;br /&gt;
Launch the gear manager app and select your gear device and you are good to go. For receiving additional notifications, goto Gear Manager and select Notification item and select from the list of apps you want to receive notification from. &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/680501780014140635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2014/06/gear-2-and-gear-2-neo-working-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/680501780014140635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/680501780014140635'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2014/06/gear-2-and-gear-2-neo-working-with.html' title='Gear 2 and Gear 2 Neo working with Nexus 5'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-7218623167771779561</id><published>2013-07-30T22:37:00.002+05:30</published><updated>2020-04-23T08:16:08.129+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="algorithm"/><category scheme="http://www.blogger.com/atom/ns#" term="Interview"/><category scheme="http://www.blogger.com/atom/ns#" term="questions"/><category scheme="http://www.blogger.com/atom/ns#" term="tree"/><title type='text'>Simplest iterative algorithm Post order traversal </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;package&lt;/span&gt; com.test;&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;import&lt;/span&gt; java.util.Stack;&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;class&lt;/span&gt; PostOrderTraversal {&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p3&quot;&gt;
&lt;span class=&quot;s2&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&lt;/span&gt;static&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;class&lt;span class=&quot;s2&quot;&gt; Node {&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&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;s1&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;s3&quot;&gt;data&lt;/span&gt;;&lt;/div&gt;
&lt;div class=&quot;p1&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;Node &lt;span class=&quot;s3&quot;&gt;left&lt;/span&gt;, &lt;span class=&quot;s3&quot;&gt;right&lt;/span&gt;;&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&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;Node(&lt;span class=&quot;s1&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;s4&quot;&gt;item&lt;/span&gt;) {&lt;/div&gt;
&lt;div class=&quot;p1&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;s3&quot;&gt;data&lt;/span&gt; = &lt;span class=&quot;s4&quot;&gt;item&lt;/span&gt;;&lt;/div&gt;
&lt;div class=&quot;p4&quot;&gt;
&lt;span class=&quot;s2&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&gt;left&lt;span class=&quot;s2&quot;&gt; = &lt;/span&gt;right&lt;span class=&quot;s2&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&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;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;}&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;void&lt;/span&gt; pfIterate(Node &lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;) {&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&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;Node &lt;span class=&quot;s4&quot;&gt;prev&lt;/span&gt; = &lt;span class=&quot;s1&quot;&gt;null&lt;/span&gt;;&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&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;Stack&lt;node&gt; &lt;span class=&quot;s4&quot;&gt;stack&lt;/span&gt; = &lt;span class=&quot;s1&quot;&gt;new&lt;/span&gt; Stack&amp;lt;&amp;gt;();&lt;/node&gt;&lt;/div&gt;
&lt;div class=&quot;p1&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;s4&quot;&gt;stack&lt;/span&gt;.push(&lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;);&lt;/div&gt;
&lt;div class=&quot;p1&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;s1&quot;&gt;while&lt;/span&gt; (!&lt;span class=&quot;s4&quot;&gt;stack&lt;/span&gt;.isEmpty()) {&lt;/div&gt;
&lt;div class=&quot;p1&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;s4&quot;&gt;root&lt;/span&gt; = &lt;span class=&quot;s4&quot;&gt;stack&lt;/span&gt;.pop();&lt;/div&gt;
&lt;div class=&quot;p1&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;s1&quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;left&lt;/span&gt; == &lt;span class=&quot;s1&quot;&gt;null&lt;/span&gt; &amp;amp;&amp;amp; &lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;right&lt;/span&gt; == &lt;span class=&quot;s1&quot;&gt;null&lt;/span&gt;) {&lt;/div&gt;
&lt;div class=&quot;p1&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;System.&lt;span class=&quot;s3&quot;&gt;out&lt;/span&gt;.print(&lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;data&lt;/span&gt; + &lt;span class=&quot;s5&quot;&gt;&quot; &quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div class=&quot;p1&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;&lt;span class=&quot;s4&quot;&gt;prev&lt;/span&gt; = &lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;;&lt;/div&gt;
&lt;div class=&quot;p1&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;s1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;s4&quot;&gt;prev&lt;/span&gt; == &lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;left&lt;/span&gt; || &lt;span class=&quot;s4&quot;&gt;prev&lt;/span&gt; == &lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;right&lt;/span&gt;) {&lt;/div&gt;
&lt;div class=&quot;p1&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;System.&lt;span class=&quot;s3&quot;&gt;out&lt;/span&gt;.print(&lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;data&lt;/span&gt; + &lt;span class=&quot;s5&quot;&gt;&quot; &quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div class=&quot;p1&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;&lt;span class=&quot;s4&quot;&gt;prev&lt;/span&gt; = &lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;;&lt;/div&gt;
&lt;div class=&quot;p1&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;s1&quot;&gt;else&lt;/span&gt; {&lt;/div&gt;
&lt;div class=&quot;p1&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;&lt;span class=&quot;s4&quot;&gt;stack&lt;/span&gt;.push(&lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;);&lt;/div&gt;
&lt;div class=&quot;p1&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;&lt;span class=&quot;s1&quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;right&lt;/span&gt; != &lt;span class=&quot;s1&quot;&gt;null&lt;/span&gt;)&lt;/div&gt;
&lt;div class=&quot;p1&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;&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;stack&lt;/span&gt;.push(&lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;right&lt;/span&gt;);&lt;/div&gt;
&lt;div class=&quot;p1&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;&lt;span class=&quot;s1&quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;left&lt;/span&gt; != &lt;span class=&quot;s1&quot;&gt;null&lt;/span&gt;)&lt;/div&gt;
&lt;div class=&quot;p1&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;&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;stack&lt;/span&gt;.push(&lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;left&lt;/span&gt;);&lt;/div&gt;
&lt;div class=&quot;p1&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;/div&gt;
&lt;div class=&quot;p1&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;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;}&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;void&lt;/span&gt; main(String[] &lt;span class=&quot;s4&quot;&gt;args&lt;/span&gt;) {&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p5&quot;&gt;
&lt;span class=&quot;s2&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&gt;// Let us create trees shown in above diagram&lt;/div&gt;
&lt;div class=&quot;p1&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;Node &lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt; = &lt;span class=&quot;s1&quot;&gt;new&lt;/span&gt; Node(1);&lt;/div&gt;
&lt;div class=&quot;p1&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;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;left&lt;/span&gt; = &lt;span class=&quot;s1&quot;&gt;new&lt;/span&gt; Node(2);&lt;/div&gt;
&lt;div class=&quot;p1&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;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;right&lt;/span&gt; = &lt;span class=&quot;s1&quot;&gt;new&lt;/span&gt; Node(3);&lt;/div&gt;
&lt;div class=&quot;p1&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;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;left&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;left&lt;/span&gt; = &lt;span class=&quot;s1&quot;&gt;new&lt;/span&gt; Node(4);&lt;/div&gt;
&lt;div class=&quot;p1&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;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;left&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;right&lt;/span&gt; = &lt;span class=&quot;s1&quot;&gt;new&lt;/span&gt; Node(5);&lt;/div&gt;
&lt;div class=&quot;p1&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;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;right&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;left&lt;/span&gt; = &lt;span class=&quot;s1&quot;&gt;new&lt;/span&gt; Node(6);&lt;/div&gt;
&lt;div class=&quot;p1&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;s4&quot;&gt;root&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;right&lt;/span&gt;.&lt;span class=&quot;s3&quot;&gt;right&lt;/span&gt; = &lt;span class=&quot;s1&quot;&gt;new&lt;/span&gt; Node(7);&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&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;s1&quot;&gt;new&lt;/span&gt; PostOrderTraversal().pfIterate(&lt;span class=&quot;s4&quot;&gt;root&lt;/span&gt;);&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;}&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #931a68}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #0326cc}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #4e9072}
span.s1 {color: #931a68}
span.s2 {color: #000000}
span.s3 {color: #0326cc}
span.s4 {color: #7e504f}
span.s5 {color: #3933ff}
span.Apple-tab-span {white-space:pre}
&lt;/style&gt;

























































&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
}&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/7218623167771779561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2013/07/simplest-iterative-algorithm-post-order.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7218623167771779561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7218623167771779561'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2013/07/simplest-iterative-algorithm-post-order.html' title='Simplest iterative algorithm Post order traversal '/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-4595830772270959614</id><published>2013-07-24T19:49:00.004+05:30</published><updated>2020-05-06T06:47:13.746+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><category scheme="http://www.blogger.com/atom/ns#" term="camel"/><category scheme="http://www.blogger.com/atom/ns#" term="camelcontext"/><category scheme="http://www.blogger.com/atom/ns#" term="EndpointInjection"/><category scheme="http://www.blogger.com/atom/ns#" term="endpoints"/><category scheme="http://www.blogger.com/atom/ns#" term="FactoryBean"/><category scheme="http://www.blogger.com/atom/ns#" term="ProducerTemplate"/><category scheme="http://www.blogger.com/atom/ns#" term="routebuilder"/><title type='text'>How to inject multiple endpoint in SEI using Camel&#39;s @EndpointInject</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
By default you can inject annotation on single method of an interface like:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
public interface MyListener {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; @EndpointInject(uri=&quot;activemq:foo.bar&quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; String sayHello(String name);&lt;br /&gt;
&lt;br /&gt;
}&lt;/blockquote&gt;
&lt;br /&gt;
what if you need multiple methods like this with @EndpointInjection happening over them for each endpoint e.g.:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
public interface MyListener {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; @EndpointInject(uri=&quot;direct:foo&quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; String sayHelloFoo(String name);&lt;br /&gt;
&lt;br /&gt;
@EndpointInject(uri=&quot;direct:bar&quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; String sayHelloBar(String name);&lt;br /&gt;
&lt;br /&gt;
}&lt;/blockquote&gt;
&lt;br /&gt;
The simple solution i have working involved spring&#39;s FactoryBean implementation.&lt;br /&gt;
&lt;br /&gt;
It need following steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Define route for which you need injection to happen --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bean id=&quot;r&quot; class=&quot;MyListener&quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Define producer template having that route&amp;nbsp; --&amp;gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;camelContext&amp;nbsp; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;template id=&quot;producerTemplate&quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;routeBuilder ref=&quot;r&quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/camelContext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;lt;!-- define FactoryBean for proxy instance --&amp;gt;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;bean id=&quot;definedCamel&quot; class=&quot;CamelFactoryBean&quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;constructor-arg index=&quot;0&quot; value=&quot;MyListener&quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;constructor-arg index=&quot;1&quot; ref=&quot;producerTemplate&quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/bean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The FactoryBean will create instance of custom InvocationHandler and return it which will invoke the endpoint on the ProducerTemplate instance. &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://subodh-gupta.blogspot.com/feeds/4595830772270959614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2013/07/how-to-inject-multiple-endpoint-in-sei_24.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/4595830772270959614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/4595830772270959614'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2013/07/how-to-inject-multiple-endpoint-in-sei_24.html' title='How to inject multiple endpoint in SEI using Camel&#39;s @EndpointInject'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-5616060429853689568</id><published>2013-02-27T16:36:00.000+05:30</published><updated>2013-02-27T16:36:12.620+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><category scheme="http://www.blogger.com/atom/ns#" term="camel"/><category scheme="http://www.blogger.com/atom/ns#" term="dynamic"/><category scheme="http://www.blogger.com/atom/ns#" term="endpoint"/><category scheme="http://www.blogger.com/atom/ns#" term="recipientList"/><category scheme="http://www.blogger.com/atom/ns#" term="route"/><category scheme="http://www.blogger.com/atom/ns#" term="routedefinition"/><category scheme="http://www.blogger.com/atom/ns#" term="to"/><title type='text'>Use recipientList for dynamic routes </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I was writing the route in which &quot;to&quot; endpoint was need to be configured dynamically with the URL coming in the body.&lt;br /&gt;
&lt;br /&gt;
I was trying to use simple expression language (e.g. ${in.header.test} where test is the property set in the in-message header) also with header method (e.g. header(test)). The routes for the same were:&lt;br /&gt;
&lt;br /&gt;
from(&quot;direct:test&quot;).to(&quot;${in.header.test}&quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;amp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;from(&quot;direct:test&quot;).to(header(&quot;test&quot;));&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
after literally every thing i could have. I figured out recipientlist can do the trick e.g.&lt;br /&gt;
&lt;br /&gt;
from(&quot;direct:test&quot;).recipientList(&quot;${in.header.test}&quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;amp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;from(&quot;direct:test&quot;).recipientList(header(&quot;test&quot;));&lt;br /&gt;
&lt;br /&gt;
Hope this works for you too. &lt;/div&gt;
</content><link rel='enclosure' type='text/html' href='http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/5616060429853689568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2013/02/use-recipientlist-for-dynamic-routes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/5616060429853689568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/5616060429853689568'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2013/02/use-recipientlist-for-dynamic-routes.html' title='Use recipientList for dynamic routes '/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-7889847609344016498</id><published>2013-02-20T22:24:00.000+05:30</published><updated>2013-02-20T22:24:05.394+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="AOP"/><category scheme="http://www.blogger.com/atom/ns#" term="controller"/><category scheme="http://www.blogger.com/atom/ns#" term="implements"/><category scheme="http://www.blogger.com/atom/ns#" term="inteface"/><category scheme="http://www.blogger.com/atom/ns#" term="metrics-spring"/><category scheme="http://www.blogger.com/atom/ns#" term="No mapping found"/><category scheme="http://www.blogger.com/atom/ns#" term="not working"/><category scheme="http://www.blogger.com/atom/ns#" term="PageNotFound"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring"/><title type='text'>Spring: implements interface not working in @Controller </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Guys,&amp;nbsp; I had a @Controller in which I was trying to implement an interface. But i was getting the following error message:&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;PageNotFound WARN&amp;nbsp; No mapping found for HTTP request with URI [/test/form] in DispatcherServlet with name &#39;Spring MVC Dispatcher Servlet&#39;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
where &quot;/test&quot; (at class level) and &quot;/form&quot; (at method level) where my @RequestMapping args.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;The issue is described at following link:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://forum.springsource.org/showthread.php?92303-Spring-Servlet-MVC-RequestMapping-breaks-with-AOP-Advice&quot;&gt;http://forum.springsource.org/showthread.php?92303-Spring-Servlet-MVC-RequestMapping-breaks-with-AOP-Advice&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;Now you may not find anything wrong with your spring.xml but should check all the xml used by used in the project in out case metrics was causing the problem.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
The aop config was overridden by metrics here:&lt;br /&gt;
&lt;br /&gt;&lt;a href=&quot;https://github.com/ryantenney/metrics-spring#xml-config&quot;&gt;https://github.com/ryantenney/metrics-spring#xml-config&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&amp;nbsp;By default JDK proxy are created using interface and if controller implements an interface the RequestMapping annotation gets ignored as the targetClass is not being using.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/aop.html#aop-proxying&quot;&gt;http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/aop.html#aop-proxying&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;So, fix required i my case is:&lt;br /&gt;
&lt;br /&gt;
&lt;metrics:annotation-driven class=&quot;x&quot; nbsp=&quot;&quot; span=&quot;&quot; style=&quot;background-color: #aaffaa; border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;proxy-target-class=&quot;true&quot; ... /&amp;gt;&lt;/metrics:annotation-driven&gt;&lt;/div&gt;
&lt;span class=&quot;x&quot; style=&quot;background-color: #aaffaa; border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;x&quot; style=&quot;background-color: #aaffaa; border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Hope this helps.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/7889847609344016498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2013/02/spring-implements-interface-not-working.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7889847609344016498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7889847609344016498'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2013/02/spring-implements-interface-not-working.html' title='Spring: implements interface not working in @Controller '/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-8264530816353226100</id><published>2012-09-20T23:49:00.001+05:30</published><updated>2020-03-23T18:23:19.981+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="culture"/><category scheme="http://www.blogger.com/atom/ns#" term="expedia"/><category scheme="http://www.blogger.com/atom/ns#" term="experience"/><category scheme="http://www.blogger.com/atom/ns#" term="India"/><category scheme="http://www.blogger.com/atom/ns#" term="join"/><category scheme="http://www.blogger.com/atom/ns#" term="office"/><category scheme="http://www.blogger.com/atom/ns#" term="should"/><category scheme="http://www.blogger.com/atom/ns#" term="work"/><title type='text'>60 days at expedia India </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
About to complete 60 days at Expedia, Gurgaon and till now the ride has been a rollercoaster.&lt;br /&gt;&lt;br /&gt;I joined Expedia hoping for challenging work, participating in building a good team and workplace full of amazing people. To be frank, everything is as close to reality as I imagined.&lt;br /&gt;&lt;br /&gt;The experience is amazing, people are awesome, the new office is great, the parties are crazy, but the most important thing is the freedom to express yourself and asking questions. And people around you listen (even leaders) and have enough patience to make you feel comfortable.&lt;br /&gt;&lt;br /&gt;Work-wise finishing user-stories (part of the onboarding process), building a team by interviewing the brightest mind in the industry and ideating about the new ideas to make it a better workplace and best technology platform. It&#39;s a great learning opportunity to contribute to one of the fastest-growing company&#39;s in the technology and travel industry.&lt;br /&gt;&lt;br /&gt;I hope this answers some of your initial questions about joining Expedia.&lt;br /&gt;&lt;br /&gt;Looking forward to seeing you onboard \o/.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/8264530816353226100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2012/09/60-days-at-expedia-india.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/8264530816353226100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/8264530816353226100'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2012/09/60-days-at-expedia-india.html' title='60 days at expedia India '/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-7443770220950102180</id><published>2012-07-18T01:08:00.001+05:30</published><updated>2020-04-21T11:44:19.743+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="phantom"/><category scheme="http://www.blogger.com/atom/ns#" term="reference"/><category scheme="http://www.blogger.com/atom/ns#" term="soft"/><category scheme="http://www.blogger.com/atom/ns#" term="strong"/><category scheme="http://www.blogger.com/atom/ns#" term="weak"/><title type='text'>Java references in nutshell</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Java developers struggle to use java references and i don&#39;t blame them. The topic&amp;nbsp;seldom covered by text books and even code reviews rarely give&amp;nbsp;emphasis&amp;nbsp;on usage of&amp;nbsp;references.&amp;nbsp;Why the topic is important at all? and if everybody (atleast people i have come across) is coding without it why the hell you need it?&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Since you are reading this, either you are already aware of them or for the interview. Anyways, knowing references helps you manage memory better because you are able to define the&amp;nbsp;behavior&amp;nbsp;of the object when GC (garbage collector)&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;is run.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Type of references:&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;1. &lt;b&gt;Strong R&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;b&gt;eference&lt;/b&gt;: The normal reference in the java code is strong reference and the object referenced by strong reference is&amp;nbsp;eligible&amp;nbsp;for GC as soon as scope ends or reference started pointing to null in the code.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;E.g.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;i&gt;Person p = new Person();&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;i&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; p = null;&lt;/span&gt; &lt;/i&gt;// will make object&amp;nbsp;initialized&amp;nbsp;above&amp;nbsp;eligible&amp;nbsp;for GC&lt;/span&gt;&lt;/blockquote&gt;
2. &lt;b&gt;Weak Reference&lt;/b&gt;: As name suggest these reference are weaker than the strong references. &amp;nbsp;Their are couple of ways to use them one via &lt;i&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;WeakReference &lt;/span&gt;&lt;/i&gt;call which can wrap your object and you can access the object through &lt;i&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;WeakReference.get &lt;/span&gt;&lt;/i&gt;API. Get API will be returning null id the object is GCed. (You can also use &lt;i&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;WeakHashMap&lt;/span&gt;&lt;/i&gt;)&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Usage&lt;/i&gt;: These objects stay in the memory till the time they are referenced from any strong reference in the memory. In other words as soon as they loose&amp;nbsp;accessibility&amp;nbsp;from strong reference they become&amp;nbsp;eligible&amp;nbsp;for GC.&lt;br /&gt;
&lt;br /&gt;
3. &lt;b&gt;Soft Reference&lt;/b&gt;: Soft reference is similar to weak reference however weaker than weak references. They put the&amp;nbsp;additional&amp;nbsp;check on there GC&amp;nbsp;eligibility, which is if GC needs space. &amp;nbsp;So basically they sits in memory still the time memory is&amp;nbsp;available. Use the &lt;i&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;SoftReference&lt;/span&gt;&lt;/i&gt; API for this type of references.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Usage&lt;/i&gt;: These find good usage in building cache because if memory is&amp;nbsp;available&amp;nbsp;they don&#39;t discard the object and hence saves you the additional reload.&lt;br /&gt;
&lt;br /&gt;
4. &lt;b&gt;Phantom Reference&lt;/b&gt;: This type of reference is used to track the object if it has been garbage collected. &lt;i&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;PhantomReference&lt;/span&gt;&amp;nbsp;&lt;/i&gt;get API always returns null. Object cannot be obtained from it unlike finalize() API.&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Usage:&lt;/i&gt; So, if your object needs to be freed only when object using it becomes garbage collected than you should be using this API. Another use case is before loading &amp;nbsp;large object you want to check if the other larger object currently in memory is GCed which will help you avoid the out of memory exception.&lt;br /&gt;
&lt;br /&gt;
Hope this helps :)&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp;&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='enclosure' type='text/html' href='http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/ref/PhantomReference.html' length='0'/><link rel='enclosure' type='text/html' href='http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/ref/SoftReference.html' length='0'/><link rel='enclosure' type='text/html' href='http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/ref/WeakReference.html' length='0'/><link rel='enclosure' type='text/html' href='http://docs.oracle.com/javase/6/docs/api/java/util/WeakHashMap.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/7443770220950102180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2012/07/java-references-in-nutshell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7443770220950102180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7443770220950102180'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2012/07/java-references-in-nutshell.html' title='Java references in nutshell'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-7631405066233962618</id><published>2012-03-29T12:00:00.000+05:30</published><updated>2012-03-29T12:00:26.947+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="add"/><category scheme="http://www.blogger.com/atom/ns#" term="change"/><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="custom"/><category scheme="http://www.blogger.com/atom/ns#" term="CXF"/><category scheme="http://www.blogger.com/atom/ns#" term="cxf-rs"/><category scheme="http://www.blogger.com/atom/ns#" term="response"/><category scheme="http://www.blogger.com/atom/ns#" term="RS"/><title type='text'>CXF-RS adding custom response code</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
Following snippet show how to return the custom Response code as http response code while returning the response:&lt;br /&gt;
&lt;br /&gt;
import javax.ws.rs.Consumes;&lt;br /&gt;
import javax.ws.rs.POST;&lt;br /&gt;
import javax.ws.rs.Path;&lt;br /&gt;
import javax.ws.rs.Produces;&lt;br /&gt;
import javax.ws.rs.core.Response;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@Path(&quot;/&quot;)&lt;br /&gt;
@Consumes(&quot;application/xml&quot;)&lt;br /&gt;
@Produces(&quot;application/xml&quot;)&lt;br /&gt;
public class Test &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;public&amp;nbsp;
Test () {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&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;@POST&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public Response test() {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Response response = Response.status(&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;4xx&lt;/span&gt;&lt;/b&gt;).entity(&quot;Testing&quot;).build();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;return response;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;br /&gt;
}&lt;br /&gt;
&lt;/div&gt;</content><link rel='enclosure' type='text/html' href='http://cxf.apache.org/docs/jax-rs.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/7631405066233962618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2012/03/cxf-rs-adding-custom-response-code.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7631405066233962618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7631405066233962618'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2012/03/cxf-rs-adding-custom-response-code.html' title='CXF-RS adding custom response code'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-6608988010648267641</id><published>2012-03-13T16:40:00.001+05:30</published><updated>2013-10-24T23:30:24.955+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="cxf-rs"/><category scheme="http://www.blogger.com/atom/ns#" term="endpoints"/><category scheme="http://www.blogger.com/atom/ns#" term="hiding"/><category scheme="http://www.blogger.com/atom/ns#" term="jaxrs"/><category scheme="http://www.blogger.com/atom/ns#" term="links"/><category scheme="http://www.blogger.com/atom/ns#" term="listing"/><category scheme="http://www.blogger.com/atom/ns#" term="service"/><title type='text'>CXF-RS Hiding JAXRS Service Endpoints Listing</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
You may come across a scenario where you want to stop listing of the exposed service from given endpoint. This can be&amp;nbsp;achieved&amp;nbsp;by setting the property &quot;&lt;i&gt;org.apache.cxf.endpoint.private&lt;/i&gt;&quot;&lt;b style=&quot;font-style: italic;&quot;&gt;&amp;nbsp;&lt;/b&gt;to &lt;i&gt;true &lt;/i&gt;as shown in following snippet:&lt;br /&gt;
&lt;br /&gt;
&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;jaxrs:server&lt;/code&gt;&lt;span style=&quot;background-color: #f0f0f0; font-family: monospace; font-size: 11px; line-height: 12.09375px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;code class=&quot;xml color1&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: gray !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;id&lt;/code&gt;&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;&quot;serivceId&quot;&lt;/code&gt;&lt;span style=&quot;background-color: #f0f0f0; font-family: monospace; font-size: 11px; line-height: 12.09375px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;code class=&quot;xml color1&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: gray !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;address&lt;/code&gt;&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;&quot;/test&quot;&lt;/code&gt;&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;.&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;.&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;.&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt; &amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;jaxrs:properties&lt;/code&gt;&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;   &amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;entry&lt;/code&gt;&lt;span style=&quot;background-color: #f0f0f0; font-family: monospace; font-size: 11px; line-height: 12.09375px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;code class=&quot;xml color1&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: gray !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;key&lt;/code&gt;&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;&quot;org.apache.cxf.endpoint.private&quot;&lt;/code&gt;&lt;span style=&quot;background-color: #f0f0f0; font-family: monospace; font-size: 11px; line-height: 12.09375px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;code class=&quot;xml color1&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: gray !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;value&lt;/code&gt;&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;&quot;true&quot;&lt;/code&gt;&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt; &amp;lt;/&lt;/code&gt;&lt;code class=&quot;xml keyword&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;jaxrs:properties&lt;/code&gt;&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;xml keyword&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;jaxrs:server&lt;/code&gt;&lt;code class=&quot;xml plain&quot; style=&quot;background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre; width: auto !important;&quot;&gt;&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: monospace; font-size: 11px; line-height: 12.09375px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: monospace; font-size: 11px; line-height: 12.09375px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: monospace; font-size: 11px; line-height: 12.09375px; white-space: pre;&quot;&gt;This will stop the listing of the service when url &lt;/span&gt;&lt;i style=&quot;font-family: monospace; font-size: 11px; line-height: 12.09375px; white-space: pre;&quot;&gt;http://server:port/&lt;b&gt;test&lt;/b&gt;&lt;/i&gt;&lt;span style=&quot;font-family: monospace; font-size: 11px; line-height: 12.09375px; white-space: pre;&quot;&gt; is typed in the browser.&lt;/span&gt;&lt;/div&gt;
</content><link rel='enclosure' type='text/html' href='http://cxf.apache.org/docs/jaxrs-services-description.html#JAXRSServicesDescription-HidinglinkstoJAXRSendpointsfromtheservicespage' length='0'/><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/6608988010648267641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2012/03/cxf-rs-hiding-jaxrs-service-endpoints.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/6608988010648267641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/6608988010648267641'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2012/03/cxf-rs-hiding-jaxrs-service-endpoints.html' title='CXF-RS Hiding JAXRS Service Endpoints Listing'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-716285546372844561</id><published>2012-02-23T09:17:00.000+05:30</published><updated>2020-03-23T18:36:47.892+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse. Escape"/><category scheme="http://www.blogger.com/atom/ns#" term="Pasting"/><category scheme="http://www.blogger.com/atom/ns#" term="String"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><title type='text'>Eclipse Tips: Escape string while pasting in the editor</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;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;/ol&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Escape string while pasting in the editor&lt;/b&gt;&lt;/span&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Go to Window &amp;gt; Preferences, type escape in the search field. Go to Java &amp;gt; Editor &amp;gt; Typing&amp;nbsp;preference&amp;nbsp;page. In last group label &quot;String literals&quot; select the &quot;Escape text when pasting into a string literal&quot;.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&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/AVvXsEgdtmPj7XrJF3wCu_m0wdhCg8nri-cgRy2kQWkBylBVwxC2U8-ldVpygAXbsQ6Bo_4-jz8LIJMDWgK4_LOqnodul-Na0vNmvC1aS51lZNpFAfN3Saaq5gtXovS107jiWG9sbZyZyJQg876S/s1600/p.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/AVvXsEgdtmPj7XrJF3wCu_m0wdhCg8nri-cgRy2kQWkBylBVwxC2U8-ldVpygAXbsQ6Bo_4-jz8LIJMDWgK4_LOqnodul-Na0vNmvC1aS51lZNpFAfN3Saaq5gtXovS107jiWG9sbZyZyJQg876S/s1600/p.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/716285546372844561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2012/02/eclipse-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/716285546372844561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/716285546372844561'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2012/02/eclipse-tips.html' title='Eclipse Tips: Escape string while pasting in the editor'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdtmPj7XrJF3wCu_m0wdhCg8nri-cgRy2kQWkBylBVwxC2U8-ldVpygAXbsQ6Bo_4-jz8LIJMDWgK4_LOqnodul-Na0vNmvC1aS51lZNpFAfN3Saaq5gtXovS107jiWG9sbZyZyJQg876S/s72-c/p.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-6583771396229980651</id><published>2012-02-16T18:40:00.000+05:30</published><updated>2012-02-16T18:41:11.759+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="attributes"/><category scheme="http://www.blogger.com/atom/ns#" term="cxf-rs"/><category scheme="http://www.blogger.com/atom/ns#" term="generation"/><category scheme="http://www.blogger.com/atom/ns#" term="Jackson"/><category scheme="http://www.blogger.com/atom/ns#" term="jettison"/><category scheme="http://www.blogger.com/atom/ns#" term="json"/><category scheme="http://www.blogger.com/atom/ns#" term="produces"/><category scheme="http://www.blogger.com/atom/ns#" term="xml"/><title type='text'>CXF JSON Generation remove @ prefix</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Working with CXF-RS if you want to generate the json response along with xml than it becomes pain in cases where your xml is a mixture of attributes and elements. Problem comes because of default jettison json provider which is configured in cxf-rs. The jettison appends the &#39;@&#39; prefix&amp;nbsp; with the attributes. However, I needed json free from any prefixes. To achieve this i had configure jackson as json provider like this:&lt;br /&gt;
&lt;br /&gt;
&lt;jaxrs:providers&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/jaxrs:providers&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:AllowPNG/&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;&amp;#45;-&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;true&quot;
  DefSemiHidden=&quot;true&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;267&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;59&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
 {mso-style-name:&quot;Table Normal&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:&quot;&quot;;
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-para-margin-top:0in;
 mso-para-margin-right:0in;
 mso-para-margin-bottom:10.0pt;
 mso-para-margin-left:0in;
 line-height:115%;
 mso-pagination:widow-orphan;
 font-size:11.0pt;
 font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;jaxrs:providers&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ref
bean=&quot;jaxbProvider&quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ref
class=&quot;org.codehaus.jackson.jaxrs.JacksonJsonProvider&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/jaxrs:providers&amp;gt;&lt;br /&gt;


&lt;jaxrs:providers&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;ref bean=&quot;jaxbProvider&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;ref class=&quot;org.codehaus.jackson.jaxrs.JacksonJsonProvider&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/ref&gt;&lt;/ref&gt;&lt;/jaxrs:providers&gt;&lt;br /&gt;
&lt;br /&gt;
That&#39;s it and you should be free from prefixes. &lt;/div&gt;</content><link rel='enclosure' type='text/html' href='http://cxf.apache.org/docs/jax-rs-data-bindings.html#JAX-RSDataBindings-ConfiguringJSONprovider' length='0'/><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/6583771396229980651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2012/02/cxf-json-generation-remove-prefix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/6583771396229980651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/6583771396229980651'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2012/02/cxf-json-generation-remove-prefix.html' title='CXF JSON Generation remove @ prefix'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-1617851116626849790</id><published>2012-02-03T22:54:00.001+05:30</published><updated>2020-03-23T08:30:12.579+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="cxf-rs"/><category scheme="http://www.blogger.com/atom/ns#" term="generate"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="maven"/><category scheme="http://www.blogger.com/atom/ns#" term="pojo"/><category scheme="http://www.blogger.com/atom/ns#" term="service"/><category scheme="http://www.blogger.com/atom/ns#" term="web"/><category scheme="http://www.blogger.com/atom/ns#" term="wsdl"/><category scheme="http://www.blogger.com/atom/ns#" term="wsdl2java"/><category scheme="http://www.blogger.com/atom/ns#" term="xjc"/><category scheme="http://www.blogger.com/atom/ns#" term="xsd"/><category scheme="http://www.blogger.com/atom/ns#" term="xsd2wsdl"/><title type='text'>CXF-RS: Java Code Generation from xml/xsd</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Cleaner approach is to use xjc like this:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;xjc destdir=&quot;testDir&quot; package=&quot;com.test.dto&quot; schema=&quot;test.xsd&quot;&gt;&lt;/xjc&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Continue to dirty approach below if u need to:&lt;br /&gt;
&lt;br /&gt;
When working with CXF-RS services often we start with XML message that will be served. After that we go through endless iteration of generating the right Java POJO&#39;s for the XML. The library like apache XMLBeans generate the Java code but the code generated is not what a developer would write and generally tedious to modify and understand.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I have come across a work around for generating Java classes from XSD (xml) which is very close to what a developer with decent experience will write.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Follow the steps given below to explore the solution:&lt;/div&gt;
&lt;div&gt;
1. Generate the wsdl from from xsd as given in at &lt;a href=&quot;http://cxf.apache.org/docs/xsd-to-wsdl.html&quot;&gt;this link&lt;/a&gt;&amp;nbsp;(&lt;a href=&quot;http://cxf.apache.org/docs/xsd-to-wsdl.html&quot;&gt;http://cxf.apache.org/docs/xsd-to-wsdl.html&lt;/a&gt;).&lt;/div&gt;
&lt;div&gt;
2. The Java classes can be generated from wsdl from maven plugin entry below find complete details &lt;a href=&quot;http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html&quot;&gt;here&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html&quot;&gt;http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;code-xml&quot; style=&quot;background-color: #f0f0f0; font-size: 11px; line-height: 13px; margin-bottom: 5px; margin-left: 15px; margin-right: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;plugin&gt;&lt;/plugin&gt;&lt;/span&gt;
 &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;groupid&gt;&lt;/groupid&gt;&lt;/span&gt;org.apache.cxf&lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
 &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;artifactid&gt;&lt;/artifactid&gt;&lt;/span&gt;cxf-codegen-plugin&lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
 &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;version&gt;&lt;/version&gt;&lt;/span&gt;${cxf.version}&lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
 &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;executions&gt;&lt;/executions&gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;execution&gt;&lt;/execution&gt;&lt;/span&gt;
   &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;id&gt;&lt;/id&gt;&lt;/span&gt;generate-sources&lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
   &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;phase&gt;&lt;/phase&gt;&lt;/span&gt;generate-sources&lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
   &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;configuration&gt;&lt;/configuration&gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;sourceroot&gt;&lt;/sourceroot&gt;&lt;/span&gt;${project.build.directory}/generated/cxf&lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;wsdloptions&gt;&lt;/wsdloptions&gt;&lt;/span&gt;
     &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;wsdloption&gt;&lt;/wsdloption&gt;&lt;/span&gt;
      &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;wsdl&gt;&lt;/wsdl&gt;&lt;/span&gt;${basedir}/src/main/wsdl/myService.wsdl&lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
     &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
   &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
   &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;goals&gt;&lt;/goals&gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;goal&gt;&lt;/goal&gt;&lt;/span&gt;wsdl2java&lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
   &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
 &lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;code-tag&quot; style=&quot;background-color: inherit; color: #000091;&quot;&gt;&lt;/span&gt;&lt;/pre&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;
Hope this reduce your headache. Happy coding :)&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/1617851116626849790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2012/02/cxf-rs-java-code-generation-from-xmlxsd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/1617851116626849790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/1617851116626849790'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2012/02/cxf-rs-java-code-generation-from-xmlxsd.html' title='CXF-RS: Java Code Generation from xml/xsd'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-7096144442015052571</id><published>2011-12-23T08:29:00.000+05:30</published><updated>2011-12-23T08:29:04.076+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="auto"/><category scheme="http://www.blogger.com/atom/ns#" term="class"/><category scheme="http://www.blogger.com/atom/ns#" term="CURD"/><category scheme="http://www.blogger.com/atom/ns#" term="DB"/><category scheme="http://www.blogger.com/atom/ns#" term="generation"/><category scheme="http://www.blogger.com/atom/ns#" term="hibernate"/><category scheme="http://www.blogger.com/atom/ns#" term="roo"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring"/><category scheme="http://www.blogger.com/atom/ns#" term="UI"/><title type='text'>Spring Roo is amazing</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Developer spend 75% of their time working on&amp;nbsp;boiler-plate code. Spring Roo do amazing job of doing that for you and gets you started really-2 fast. After that you can follow the application curve if writing the&amp;nbsp;business&amp;nbsp;logic. &lt;br /&gt;
&lt;br /&gt;
Why Roo?&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Define the class and its relation it will generate the DB using hibernate&amp;nbsp;&lt;/li&gt;
&lt;li&gt;you can generate the controller&#39;s ( and UI) from the same classes with CURD operation supported&lt;/li&gt;
&lt;li&gt;test code is also gets generated&amp;nbsp;&lt;/li&gt;
&lt;li&gt;code generated is clean and easy to modify&lt;/li&gt;
&lt;li&gt;dependency resolution happens through maven&lt;/li&gt;
&lt;li&gt;once you are done projects are eclipse ready&lt;/li&gt;
&lt;li&gt;easy to get rid of metadata for production&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Other tools:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;I came across Grails but i needed a framework which will generate the java so roo was the better choice for me&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Video helped me get started:&amp;nbsp;&lt;a href=&quot;http://s3.springsource.com/MRKT/roo/2010-01-Five_Minutes_Roo.mov&quot;&gt;http://s3.springsource.com/MRKT/roo/2010-01-Five_Minutes_Roo.mov&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/7096144442015052571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2011/12/spring-roo-is-amazing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7096144442015052571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/7096144442015052571'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2011/12/spring-roo-is-amazing.html' title='Spring Roo is amazing'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-2177488555317966679</id><published>2011-12-20T10:30:00.000+05:30</published><updated>2020-03-23T18:37:25.537+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Comparison"/><category scheme="http://www.blogger.com/atom/ns#" term="difference"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="Netbeans"/><title type='text'>Netbeans or Eclipse which one to choose</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
There are so many articles on the web discussing this, what I am going to do is just&amp;nbsp;briefly&amp;nbsp;explain the pros and cons of each&amp;nbsp;which&amp;nbsp;will help you choose better.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
    &lt;td bgcolor=&quot;#660000&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;4&quot; cellspacing=&quot;1&quot;&gt;
    &lt;tbody&gt;
&lt;tr&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Description&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Netbeans&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Eclipse&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Plugins&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;It helps you extend the reach of your IDE to newer technologies without changing the IDE&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Good&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Good&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Code Refactor&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Reflects the change made in all the references &lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Decent&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Good&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Getting Started&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;The time it takes to get going on with your application&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Good&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Decent&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Enterprise Support&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Usage in big companies, spending effort in eclipse  &lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Decent&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Good&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Debugging&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Easy in which you can find a problem&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Decent&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Good&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;UI&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Looks old&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Decent&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Good&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Spell Check&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Not Present&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Decent&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Code Generators&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Good&lt;/td&gt;
        &lt;td bgcolor=&quot;#FFF&quot;&gt;Good&lt;/td&gt;
    &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;br /&gt;
Hope this will help you in making a choice.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/2177488555317966679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2011/12/netbeans-or-eclipse-which-one-to-choose.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/2177488555317966679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/2177488555317966679'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2011/12/netbeans-or-eclipse-which-one-to-choose.html' title='Netbeans or Eclipse which one to choose'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-4924781787803092567</id><published>2011-12-19T23:19:00.002+05:30</published><updated>2011-12-20T13:44:30.502+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="CXF"/><category scheme="http://www.blogger.com/atom/ns#" term="first"/><category scheme="http://www.blogger.com/atom/ns#" term="getting"/><category scheme="http://www.blogger.com/atom/ns#" term="RS"/><category scheme="http://www.blogger.com/atom/ns#" term="sample"/><category scheme="http://www.blogger.com/atom/ns#" term="service"/><category scheme="http://www.blogger.com/atom/ns#" term="started"/><category scheme="http://www.blogger.com/atom/ns#" term="tomcat"/><title type='text'>First CXF-RS service with Tomcat web-container</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Looking to get started on CXF-RS, well that was what i was looking for and there are load of articles doing however none of them provide sufficient bullet points to make me&amp;nbsp;understand&amp;nbsp;how the control is following are how to debug the application if something is not working.&amp;nbsp;Well&amp;nbsp;that&#39;s what i&amp;nbsp;am going&amp;nbsp;to write here.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Following are components you need to get started with first CXF-RS:&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Tomcat&lt;/li&gt;
&lt;li&gt;Eclipse (or some equivalent IDE)&lt;/li&gt;
&lt;li&gt;Spring&lt;/li&gt;
&lt;/ol&gt;
Create a dynamic web project in the eclipse (this is nothing but a simple web project which can deployed and can run when deployed in the web container like Tomcat).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Keep your eye on the bold terms featuring in the files...&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Start will writing the web.xml descriptor file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?--&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;web-app&gt;&lt;/web-app&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;color: blue; white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;!-- Required for CXF Servlet --&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;context-param&gt;&lt;/context-param&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;param-value&gt;WEB-INF/&lt;b&gt;deploy-context.xml&lt;/b&gt;&lt;/param-value&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;listener&gt;&lt;/listener&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;listener-class&gt;&lt;/listener-class&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;org.springframework.web.context.ContextLoaderListener&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;color: blue; white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;!-- Required for CXF Servlet initializer --&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;servlet&gt;&lt;/servlet&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;display-name&gt;CXF Servlet&lt;/display-name&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;servlet-class&gt;&lt;/servlet-class&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;org.apache.cxf.transport.servlet.CXFServlet&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;servlet-mapping&gt;&lt;/servlet-mapping&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Second step is writing the &lt;b&gt;deploy-context.xml &lt;/b&gt;and keep it in WEB-INF folder.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?--&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;beans &amp;nbsp;default-lazy-init=&quot;false&quot; &amp;nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; &amp;nbsp;xsi:schemalocation=&quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd&quot; xmlns:jaxrs=&quot;http://cxf.apache.org/jaxrs&quot; xmlns=&quot;http://www.springframework.org/schema/beans&quot;&gt;&lt;/beans&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;import resource=&quot;classpath:META-INF/cxf/cxf.xml&quot;&gt;&lt;/import&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;import resource=&quot;classpath:META-INF/cxf/cxf-servlet.xml&quot;&gt;&lt;/import&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;jaxrs:server address=&quot;/&amp;lt;b&amp;gt;hello&amp;lt;/b&amp;gt;&quot; id=&quot;myService&quot;&gt;&lt;/jaxrs:server&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;jaxrs:servicebeans&gt;&lt;/jaxrs:servicebeans&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&lt;ref bean=&quot;&amp;lt;i&amp;gt;serviceImpl&amp;lt;/i&amp;gt;&quot;&gt;&lt;/ref&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&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 style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;jaxrs:extensionmappings&gt;&lt;/jaxrs:extensionmappings&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&lt;entry key=&quot;xml&quot; value=&quot;application/xml&quot;&gt;&lt;/entry&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&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 style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&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 style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;bean class=&quot;&amp;lt;b&amp;gt;com.test.ServiceImpl&amp;lt;/b&amp;gt;&quot; id=&quot;&amp;lt;i&amp;gt;serviceImpl&amp;lt;/i&amp;gt;&quot;&gt;&lt;/bean&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Java classes needed for the this:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;1. com.test.User.java&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;import javax.xml.bind.annotation.XmlRootElement;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;@XmlRootElement(name = &quot;user&quot;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;public class User {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; private Integer id;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; private String &amp;nbsp;name;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public User() {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public User(Integer id, String name) {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.id = id;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.name = name;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public Integer getId() {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return id;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public void setId(Integer id) {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.id = id;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public void setName(String name) {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.name = name;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public String getName() {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return name;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; @Override&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public String toString() {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return String.format(&quot;{id=%s,name=%s}&quot;, id, name);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;----------------------------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;2. com.test.UserCollection.java&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;import java.util.Collection;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;import javax.xml.bind.annotation.XmlElement;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;import javax.xml.bind.annotation.XmlElementWrapper;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;import javax.xml.bind.annotation.XmlRootElement;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;@XmlRootElement&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;public class UserCollection {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; private Collection&lt;user&gt; users;&lt;/user&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public UserCollection() {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public UserCollection(Collection&lt;user&gt; users) {&lt;/user&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.users = users;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; @XmlElement(name=&quot;user&quot;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; @XmlElementWrapper(name=&quot;users&quot;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public Collection&lt;user&gt; getUsers() {&lt;/user&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return users;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;------------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;3. com.test.IService.java&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;import javax.ws.rs.core.Response;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;public interface IService {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; UserCollection getUsers();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; User getCustomer(Integer id);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; Response getBadRequest();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;-----------------------------------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;4. &lt;b&gt;com.test.ServiceImpl&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;import java.util.HashMap;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;import java.util.Map;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;import javax.ws.rs.GET;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;import javax.ws.rs.Path;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;import javax.ws.rs.PathParam;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;import javax.ws.rs.Produces;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;import javax.ws.rs.core.Response;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;import javax.ws.rs.core.Response.Status;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;@Path(&quot;/&lt;b&gt;myservice&lt;/b&gt;/&quot;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;@Produces(&quot;application/&lt;b&gt;json&lt;/b&gt;&quot;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;public class ServiceImpl implements IService {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;private static Map&lt;integer, user=&quot;&quot;&gt; users = new HashMap&lt;integer, user=&quot;&quot;&gt;();&lt;/integer,&gt;&lt;/integer,&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;static {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;users.put(1, new User(1, &quot;foo&quot;));&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;users.put(2, new User(2, &quot;bar&quot;));&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;users.put(3, new User(3, &quot;baz&quot;));&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&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 style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;public ServiceImpl() {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;System.out.println(&quot;hello&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&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 style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GET&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@Path(&quot;/users&quot;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;public UserCollection getUsers() {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;return new UserCollection(users.values());&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&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 style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GET&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@Path(&quot;/user/{id}&quot;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;public User getCustomer(@PathParam(&quot;id&quot;) Integer id) {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;return users.get(id);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&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 style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GET&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@Path(&quot;/users/bad&quot;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;public Response getBadRequest() {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;return Response.status(Status.BAD_REQUEST).build();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&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 style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: blue; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;That&#39;s it you are done. Your app structure would look similar to this:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;App&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;--WEB-INF&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;----lib&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;----classes
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;----web.xml&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;----deploy-context.xml&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Deploy this app in the tomcat server and try hitting following urs:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;a href=&quot;http://localhost:8080/TextCXF/hello/myservice/users&quot;&gt;http://localhost:8080/TextCXF/hello/myservice/users&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;a href=&quot;http://localhost:8080/TextCXF/hello/myservice/user/1&quot;&gt;http://localhost:8080/TextCXF/hello/myservice/user/1&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/4924781787803092567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2011/12/first-cxf-rs-service-with-tomcat-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/4924781787803092567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/4924781787803092567'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2011/12/first-cxf-rs-service-with-tomcat-web.html' title='First CXF-RS service with Tomcat web-container'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-6230030082586135798</id><published>2011-09-23T08:32:00.002+05:30</published><updated>2020-03-23T08:17:24.048+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Action"/><category scheme="http://www.blogger.com/atom/ns#" term="Builder"/><category scheme="http://www.blogger.com/atom/ns#" term="flash"/><category scheme="http://www.blogger.com/atom/ns#" term="Flex"/><category scheme="http://www.blogger.com/atom/ns#" term="Hide"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile"/><category scheme="http://www.blogger.com/atom/ns#" term="Scrollbars"/><category scheme="http://www.blogger.com/atom/ns#" term="Scroller"/><title type='text'>Get Rid of scrollbars on Scroller</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
If you are working on flex mobile project. You would be facing the feature of scrollbars appearing whenever you scroll through the list or widget with-in the scroller component. If these has become a problem for you and you need to get rid of the feature follow the steps mentioned here:&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Right a new script extending from the scroller&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Observe vertical and&amp;nbsp;horizontal&amp;nbsp;scrollbars tags which are auto generated&amp;nbsp;&lt;/li&gt;
&lt;li&gt;modify them and insert the property alpha=0&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Include this skin in your scroller and you are done&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/6230030082586135798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2011/09/get-rid-of-scrollbars-on-scroller.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/6230030082586135798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/6230030082586135798'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2011/09/get-rid-of-scrollbars-on-scroller.html' title='Get Rid of scrollbars on Scroller'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-6774130586779839638</id><published>2011-08-08T15:51:00.000+05:30</published><updated>2011-08-08T15:51:52.458+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Dolphin"/><category scheme="http://www.blogger.com/atom/ns#" term="Features"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="New"/><title type='text'>New in Dolphin - Java 7</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=subosblo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0071606300&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;With Dolphin java introduced cool new features like:&lt;br /&gt;
&lt;br /&gt;
1. Strings in “switch” block&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch(s) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case “Apple”:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// do something;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case “Orange”:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// do something;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2. &amp;lt;&amp;gt; (Diamond) operator – Type inference for generic instance creation&lt;br /&gt;
E.g List &amp;gt; list = new ArrayList&amp;gt;();&lt;br /&gt;
vis-à-vis&lt;br /&gt;
List &amp;gt; list = new ArrayList &amp;lt;&amp;gt; ();&lt;br /&gt;
Empty diamond braces is required and it&#39;s not a typo :).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3. Single Catch for multiple Exceptions with &quot;|&quot; operator&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Reflective operations calling Class.forName,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Class.newInstance, Class.getMethod, Method.invoke, etc.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (final ClassNotFoundException | &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InstantiationException | NoSuchMethodException | &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InvocationTargetException e) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log(e)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw e;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4. Also in Java 7, this will work&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void rethrowException(String exceptionName) throws FirstException, SecondException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try { // ...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (Exception e) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw e;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5. Try-with-resources statement – basic objective is to facilitate automatic resource management, simplify coding and highlight pertinent exceptions e.g.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try (InputStream in = new FileInputStream(src);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OutputStream out = new FileOutputStream(dest);) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte buf = new byte[8192];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int n;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while ((n = in.read(buf)) &amp;gt;= 0)&lt;br /&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;out.write(buf, 0, n);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/6774130586779839638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2011/08/new-in-dolphin-java-7.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/6774130586779839638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/6774130586779839638'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2011/08/new-in-dolphin-java-7.html' title='New in Dolphin - Java 7'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-9019850745752583163</id><published>2011-07-29T13:11:00.001+05:30</published><updated>2011-09-02T11:20:48.774+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="ArrayCollection"/><category scheme="http://www.blogger.com/atom/ns#" term="Builder"/><category scheme="http://www.blogger.com/atom/ns#" term="convert"/><category scheme="http://www.blogger.com/atom/ns#" term="crossdomain.xml"/><category scheme="http://www.blogger.com/atom/ns#" term="flash"/><category scheme="http://www.blogger.com/atom/ns#" term="FlashBuilder"/><category scheme="http://www.blogger.com/atom/ns#" term="Flex"/><category scheme="http://www.blogger.com/atom/ns#" term="list"/><category scheme="http://www.blogger.com/atom/ns#" term="XMLList"/><title type='text'>Convert XML to ArrayCollection</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=subosblo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0321777123&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;If you have an XML and want to use it in the spark&#39;s list component, than you need to first convert it into ArrayCollection and that&#39;s what we are doing in this example:&lt;br /&gt;
&lt;br /&gt;
Lets assume you have following XML:&lt;br /&gt;
&lt;br /&gt;
varstrXML:XML&amp;nbsp;= &amp;lt;blog&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&amp;lt;&lt;span class=&quot;Apple-style-span&quot;&gt;item&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;Blog by Subodh Gupta&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&amp;lt;&lt;span class=&quot;Apple-style-span&quot;&gt;author&amp;gt;Subodh Guptaauthor&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;&lt;span class=&quot;Apple-style-span&quot;&gt;/item&amp;gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;lt;/blog&amp;gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
var xml:XML = new XML(strXML);&lt;br /&gt;
var xmlDoc:XMLDocument = new XMLDocument(xml);&lt;br /&gt;
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);&lt;br /&gt;
var resultObj:Object = decoder.decodeXML(xmlDoc);&lt;br /&gt;
var ac:ArrayCollection ;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&lt;br /&gt;
if(resultObj.&lt;b&gt;&lt;i&gt;blog&lt;/i&gt;&lt;/b&gt;.hasOwnProperty(&quot;&lt;b&gt;&lt;i&gt;item&lt;/i&gt;&lt;/b&gt;&quot;)) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;if(resultObj.&lt;i&gt;&lt;b&gt;blog&lt;/b&gt;.&lt;b&gt;item&lt;/b&gt;&lt;/i&gt; is ArrayCollection)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;ac = resultObj.root.element;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
that&#39;s it you are done. Cheers.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/9019850745752583163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2011/07/convert-xml-to-arraycollection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/9019850745752583163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/9019850745752583163'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2011/07/convert-xml-to-arraycollection.html' title='Convert XML to ArrayCollection'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-6940032074157017549</id><published>2011-06-15T22:56:00.002+05:30</published><updated>2011-06-16T13:20:03.136+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Application"/><category scheme="http://www.blogger.com/atom/ns#" term="Applications"/><category scheme="http://www.blogger.com/atom/ns#" term="Concurrency"/><category scheme="http://www.blogger.com/atom/ns#" term="Conquer"/><category scheme="http://www.blogger.com/atom/ns#" term="Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Divide"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Scalable"/><category scheme="http://www.blogger.com/atom/ns#" term="Thread"/><category scheme="http://www.blogger.com/atom/ns#" term="Threads"/><title type='text'>Divide and Conquer by Java Threads</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=subosblo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0321349601&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Suppose you have task which collects the data the from various sources and creates a Object containing all this information e.g. information is distributes over various databases, websites and some you need to calculate based on that data. The single threaded application works fine with small amount of data however as data starts growing single threads shows its limitation.&lt;br /&gt;
&lt;br /&gt;
There is a interesting property of threads which comes to our rescue. Thread maintains the private copy of object on which it operates called as w&lt;i&gt;orking copy &lt;/i&gt;in which it keeps the local modification which are made to the object. While main memory contains  the master copy of every object.&lt;br /&gt;
&lt;br /&gt;
After all threads stop executing all the working copies are merged into the master copy. This becomes the curse in case of multiple objects modify the same field in the object because merging back creates the confusion and results in a unpredictable behavior. However if each thread works on the different field of the object merging won&#39;t cause a conflict and hence state remains consistent and predictable.&lt;br /&gt;
&lt;br /&gt;
This improves the performance many folds and hence application gain scalability which was missing in the single threaded application.&lt;br /&gt;
&lt;br /&gt;
Snippet:&lt;br /&gt;
&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; final List&lt;person&gt; list = new ArrayList&lt;test.person&gt;();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Person person = null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 100; i++) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; person = new Person();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Runnable runnable = createFirstRunnable(person);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Runnable run = createSecondRunnable(person);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Thread thread = new Thread(runnable);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Thread tt = new Thread(run);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; thread.start();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tt.start();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; list.add(person);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (Person p : list) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;This is &quot; + p.getFirstName() + &quot; &quot; + p.getLastName() + &quot;&#39;s Blog.&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static Runnable createSecondRunnable(final Person person) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Runnable run = new Runnable() {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&lt;br /&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; person.setLastName(&quot;Gupta&quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return run;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static Runnable createFirstRunnable(final Person person) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Runnable runnable = new Runnable() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&lt;br /&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; person.setFirstName(&quot;Subodh&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return runnable;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static class Person {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private String firstName = null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private String lastName = null;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public Person() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public String getFirstName() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return firstName;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public void setFirstName(String firstName) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.firstName = firstName;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public String getLastName() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return lastName;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public void setLastName(String lastName) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.lastName = lastName;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;/test.person&gt;&lt;/person&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/6940032074157017549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2011/06/divide-and-conquer-by-java-threads.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/6940032074157017549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/6940032074157017549'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2011/06/divide-and-conquer-by-java-threads.html' title='Divide and Conquer by Java Threads'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870011884959277662.post-5596077076735033536</id><published>2011-05-24T22:51:00.001+05:30</published><updated>2011-05-24T22:52:57.355+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="all"/><category scheme="http://www.blogger.com/atom/ns#" term="cross"/><category scheme="http://www.blogger.com/atom/ns#" term="cross domain"/><category scheme="http://www.blogger.com/atom/ns#" term="crossdomain.xml"/><category scheme="http://www.blogger.com/atom/ns#" term="domain"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="platforms"/><category scheme="http://www.blogger.com/atom/ns#" term="problem"/><category scheme="http://www.blogger.com/atom/ns#" term="solution"/><category scheme="http://www.blogger.com/atom/ns#" term="working"/><title type='text'>Cool solution for Cross domain</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=subosblo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0596515782&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Just follow these steps to make it work:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Compose your response as an JSON let say responseObject variable represent this JSON string/object &lt;/li&gt;
&lt;li&gt;Wrap the JSON response as an argument to a method call e.g. &lt;i&gt;helloMethod&lt;/i&gt;(responseObject); where &lt;i&gt;helloMethod &lt;/i&gt;is the method name&lt;/li&gt;
&lt;li&gt; Define this method(&lt;i&gt;helloMethod&lt;/i&gt;) which handles this response in the client side&lt;/li&gt;
&lt;/ol&gt;Lets take complete working sample:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;assume JSON Object as str = {&quot;user&quot;:{&quot;fname&quot;:&quot;subodh&quot;,&quot;lname&quot;:&quot;gupta&quot;,&quot;type&quot;:&quot;blog&quot;,&quot;category&quot;:&quot;tech&quot;}}&lt;/li&gt;
&lt;li&gt;handleUser(str);&lt;/li&gt;
&lt;li&gt;function handleUser(str){ alert(str.user.fname);}&lt;/li&gt;
&lt;/ol&gt;just to complete the solution look at call below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
jQuery.getJSON(&quot;http://subodh.blog.com/servlet?user=subodh&amp;amp;responseType=JSON&quot;, &lt;br /&gt;
function(str) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(str.user.fname);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
Look at this link for details &lt;a href=&quot;http://api.jquery.com/jQuery.getJSON/&quot;&gt;jQuery.getJSON&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
http://subodh.blog.com/servlet?user=subodh&amp;amp;responseType=JSON this could be replaced by your service returning JSON response.&lt;br /&gt;
&lt;br /&gt;
That&#39;s it you are done. :)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subodh-gupta.blogspot.com/feeds/5596077076735033536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://subodh-gupta.blogspot.com/2011/05/cool-solution-for-cross-domain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/5596077076735033536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870011884959277662/posts/default/5596077076735033536'/><link rel='alternate' type='text/html' href='http://subodh-gupta.blogspot.com/2011/05/cool-solution-for-cross-domain.html' title='Cool solution for Cross domain'/><author><name>Subodh Gupta</name><uri>http://www.blogger.com/profile/12098409767828725555</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYA1VWV9Lc0WXIXo8TJIqwyeqUQqfWPH6IyDce-1wNdJxbmgwrSlO2-UJGr0HmH4PPU3I2nXXWx4UleWzrXF67DubS3d3MWa7u9o-XFDmMH5TLsKJN36TiB-TrBOdJQ/s220/gap.jpg'/></author><thr:total>0</thr:total></entry></feed>