<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8912474396363526474</id><updated>2011-12-14T21:08:46.418Z</updated><title type='text'>Java Ramblings</title><subtitle type='html'>The main purpose of this blog is for me to build up snippets of information I build up over time and want to recall whereever I may need to.  An online log book really.  There may be inaccuracies in my blog entries too, but I will update each entry as my understanding on subjects evolve.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-2198652421980013282</id><published>2011-12-14T20:53:00.001Z</published><updated>2011-12-14T21:00:01.822Z</updated><title type='text'>Ditch the Web Browser</title><content type='html'>This article is on why I think it is time to ditch the traditional Web Browser, with it's support for HTML (5) and JavaScript, Flash, Silverlight, Java etc..&lt;h2&gt;So, the first question is, what is wrong with what we have got?&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;1) In HTML, textfields etc.. are nested within their layout containers.  This makes it difficult to move things around within the browser.  I thinkthe 'data' should be sent back as one concern, the 'default' layout as another concern, and the 'widgets' used to render the data in another section.Validation rules should be sent back separately too.  The layout binds widgets with data items and the data items are bound to validation rules.Look and feel should be separate as well (which it generally is at the moment with CSS, as long as developer's don't add styling inline).  Finally, security rules should be sent back as well.  Caching rules should be built into the page too!!!So, in terms of separating the concerns of a web page, we already have rules:a) datab) widgetsc) layoutd) validatione) stylingf) securityg) cachingThe advantage of this, is that we can then leave the layout on the client, and just the data is sent back and forth.  The clients can customize the layout information.&lt;/li&gt;&lt;li&gt;2) Data interchange formatThis is typically HTML, JSON or XML.  But it is hard to process these languages on the client side.  The data interchange format should be transparentto the web page, why should it care what the format is?  Then we can start supporting technologies like Protocol Buffers and even parts of Thrift.We have marshallers plugged into the browser to allow it to understand the different standards based data formats. I mean, if I want to pass some data from a flex widget to a JavaScript widget, how hard is that at the moment, and then call a SOAP based web serviceusing Ajax?  This is far too difficult, this stuff should be simple.&lt;/li&gt;&lt;li&gt;3) StrictnessThe browsers, allow developers to send back badly formed pages, they also allow developers to put styling inline, just put scripting in the middle of a page etc..   Why?  This is bad practice, we should be trying to help developers create maintainable web pages.  Let's make things tighter.&lt;/li&gt;&lt;li&gt;4) Speed of new featuresTo get new features into the browser, we have to wait for a standards committee, then have to wait for it to be implemented into a browser.  Why not make the architecture of this new platform, pluggable.  We want control still over what get's get officially released however, else you get swamped with plugins, and you don't know which ones work well and which ones don't.&lt;/li&gt;&lt;li&gt;5) Development of Web Pages should become easyLet's open up development to anyone.  Let's create a rich IDE and allow a user to drag a button onto their web page, and then right click on the button and select -&gt; "When the user left clicks this button..." &lt;p&gt;-&gt; "I want to my text box to ....".  -&gt; "turn the colour red"-&gt; "I want to popup .....". -&gt; "Customer Details Window"-&gt; "I want to hide ...."-&gt; "I want to mimize .... "-&gt; "I want to resize. .... "-&gt; "I want to move this ... "-&gt; "I want to reduce this in size by %"&lt;/p&gt;Typically, we are normally doing very basic things in a web page, but it is really hard work to get a new page of data back &lt;/li&gt;&lt;li&gt;6) Richer widgets built inWhy have we still not got a paginatable table available to us, that allows us to sort and filter????  This is such basic functionality that is not available to us.&lt;/li&gt;&lt;li&gt;7) Event mechanismToo restrictive, what if we want to broadcast events within a web page to other components / widgets that we did not even design?  (that have come from another site??)&lt;/li&gt;&lt;li&gt;8) Graphics built inObviously we have HTML 5 now, but needless to say Graphics should be built in, along with Video tags, Charts, Maps (with pluggable providers), Timelines etc.. &lt;/li&gt;&lt;li&gt;9) Advanced WidgetsSMS message, Nested Webcam Panel, Skype, Social Networking Widgets, Instant Messenger.  I want to be able to build up my web page how I want it.&lt;/li&gt;&lt;li&gt;10) Back button does not workWith new Ajax / RIA style apps, the back button does not work&lt;/li&gt;&lt;li&gt;11) Too many browsersConstantly trying to get web pages to behave the same in different browsers.&lt;/li&gt;&lt;li&gt;12) Testing is hard&lt;/li&gt;&lt;li&gt;13) Developing is too hard&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;New Browser Design Goals&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;1) The user should be able to drag and drop their web pages around, to organize the page how they want.&lt;/li&gt;2) Browser, sent the following items as separate concerns, data, widgets, layout, validation, styling, security, caching.&lt;/li&gt;&lt;li&gt;3) User should be able to style up the page how they want.&lt;/li&gt;&lt;li&gt;4) User should be able to produce a 'mashup', ie. create a 'pane' and drag it into the web page on the browser.&lt;/li&gt;&lt;li&gt;5) Back button should literally 'undo' last action, OR take user back to previous site (if they have just changed URL).&lt;/li&gt;&lt;li&gt;6) New Browser, should allow pluginable architecture for new language features.  What happens if we want a 3dvideo tag?&lt;/li&gt;&lt;li&gt;7) Rich Widget library&lt;/li&gt;&lt;li&gt;8) Event bus built in to allow communication between heterogenous components running within the page.&lt;/li&gt;&lt;li&gt;9) IDE that allows users to build web pages easily.&lt;/li&gt;&lt;li&gt;10) Security should be built in from the ground up&lt;/li&gt;&lt;li&gt;11) Parental controls should be configured on widgets&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-2198652421980013282?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/2198652421980013282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=2198652421980013282' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/2198652421980013282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/2198652421980013282'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2011/12/ditch-web-browser.html' title='Ditch the Web Browser'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-1942436082556711560</id><published>2011-12-13T21:31:00.001Z</published><updated>2011-12-13T21:31:24.720Z</updated><title type='text'>GWT Plugin How it Works</title><content type='html'>&lt;a href="http://groups.google.com/group/google-web-toolkit/msg/811a63ea4a937136"&gt;GWT Plugin Description of how it works&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-1942436082556711560?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/1942436082556711560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=1942436082556711560' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1942436082556711560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1942436082556711560'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2011/12/gwt-plugin-how-it-works.html' title='GWT Plugin How it Works'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-8466960025451472508</id><published>2011-12-13T21:23:00.001Z</published><updated>2011-12-13T21:23:34.112Z</updated><title type='text'>Spring MVC and Spring WebFlow</title><content type='html'>Another quick entry to detail my experience with Spring MVC and Spring WebFlow.&lt;ul&gt;&lt;li&gt;Spring MVC rocks.  It is simple and works.&lt;/li&gt;&lt;li&gt;Spring WebFlow - we used this with Spring MVC, and got ourselves tied in knots at one point deciding what *is* a Web Flow, and it can get tricky when you go from a flow into a sub flow, and then want to exit etc....  All problems that we could of avoided if we had not used Web Flow.  Of course, the big USP (with WebFlow is that it supports conversational state.  Trouble is, it is not often you actually need that, it is useful if you have a Wizard set of pages to code up.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;/br&gt;Where we ended up with WebFlow was that we used WebFlow if there was an update screen, that spanned more than one page.  If it was a view / read only web page, we would use MVC, and if it was an update screen which was just one page / one form, then we would just use MVC.&lt;br&gt;&lt;/br&gt;In hindsight, I would not use WebFlow again as I don't think the benefit's (conversational state and it manages state for you cleanly so if you spawn multiple browsers you can have no collisions), outweight the negatives of a) having to learn the WebFlow syntax (which increases the learning curve for developers), and b) introduces this grey area of what is, and is not, a flow.&lt;br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-8466960025451472508?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/8466960025451472508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=8466960025451472508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8466960025451472508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8466960025451472508'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2011/12/spring-mvc-and-spring-webflow.html' title='Spring MVC and Spring WebFlow'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-8868257385574121832</id><published>2011-12-13T20:44:00.001Z</published><updated>2011-12-13T21:26:39.875Z</updated><title type='text'>Thoughts on jQuery, DOJO and GWT</title><content type='html'>Having used both these JavaScript extensively over the past couple of years, I thought I would give some brief notes into my experiences of using them.&lt;br&gt;&lt;/br&gt;jQuery - this library is excellent at marking up a page with some enhancements.  Would I write an entire JavaScript based application using jQuery?  I would not use pure jQuery on it's own, if I was going to use it for a heavy js application, I would use a framework / set of patterns for ensuring the code does not end up being very difficult to maintain.  The main problem with jQuery 'out of the box', is that it encourages developers to manipulate their pages using selectors and performing actions on those selectors.  Whilst this is very powerful, it can also lead to very unmaintainable code, because unless you have a good understanding of what is in the HTML DOM, then you don't really understand what these powerful expressions are doing.  Some programmers may document what they are doing, but a lot of programmers will not.  But, on the whole, if you want some simple enhancements, jQuery is very impressive, a great set of plugins, and we have not had any problems with the library, it seems very stable, which is great.&lt;br&gt;&lt;/br&gt;DOJO - this library differs significantly to jQuery, in that it encourages the developer to create classes and custom components (called Dijit's) from the start.   So in terms of the 'programming model', DOJO win's hands down.  Where DOJO is not so great (and I was using version 1.5.1 on a legacy browser IE 6), is that some things are hard to do, such as styling a button.  Why is styling a button so hard?  Well DOJO nests the button in a load of div's or span's (I forget), and each of these layers has a css class associated with it.  &lt;br&gt;&lt;/br&gt;See: &lt;a href="http://dojotipsntricks.com/2011/05/03/styling-dijit-form-button-the-easy-way/"&gt;Style Button&lt;/a&gt;  for more info about styling buttons (although I do not recommend this method, it does highlight there can be difficulties doing such a simple task).&lt;br&gt;&lt;/br&gt;The other reason I am not so keen on DOJO are a) not many people 'seem' to be using it b) it is slow unless you configure your application to go through their Shrinksafe compiler.  But, in general, it is 100% JavaScript application, so unless you have a strong team of developers (and preferably JavaScript ones at that), there is plenty of scope to get yourself into problems.&lt;br&gt;&lt;/br&gt;GWT - It is early days with GWT, but so far I have found the development environment quick to setup.  I like the showcase (don't they always look good), and the debugging facilities are great.  It is a bit of a weird concept, writing Java Code and spitting out JavaScript code, because we are at the end of the day, still manipulating the HTML DOM.  In terms of what you get out of the box with GWT, I am using 2.4 and started using the DataGrid the other day, and found it buggy when adding it to a basic dockable resizeable panel, when taken out of the dockable container, it worked.  &lt;br&gt;&lt;/br&gt;The upsides of using the Toolkit are that it is going to work well with Google API's, Map's, Calendar's etc...  It still does not seem to have taken off quite yet, a jobserve search will show not it's future is still uncertain:&lt;br&gt;&lt;/br&gt;&lt;a href="http://www.google.com/trends?q=GWT"&gt;GWT Trend&lt;/a&gt;&lt;br&gt;&lt;/br&gt;Maybe the fact it compiles into JavaScript makes people nervous.  &lt;br&gt;&lt;/br&gt;So, what would I use for RIA?&lt;br&gt;&lt;/br&gt;It would depend on how 'rich' it needed to be:&lt;ul&gt;&lt;li&gt;If I was trying to write a web based application with some widgets enhanced, I would choose Spring MVC with jQuery.&lt;/li&gt;&lt;li&gt;If I was trying to write a really whizzy rich application, I would choose GWT.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;The Play Framework looks interesting, but the increase in volume of their forum has not carried on the trend of the previous year:&lt;br&gt;&lt;/br&gt;&lt;a href="http://groups.google.com/group/play-framework/about"&gt;Play Framework Forum&lt;/a&gt;&lt;br&gt;&lt;/br&gt;however, google trends shows there is more interest in it:&lt;a href="http://www.google.com/trends?q=Play+framework%2C&amp;ctab=0&amp;geo=all&amp;date=all&amp;sort=0"&gt;Play Framework Trends&lt;/a&gt;&lt;br&gt;&lt;/br&gt;and just looking at the demo app, it looks like you can just chuck a load of javascript code inline to do stuff, which again, can create a maintenance headache if you have a team of 10 UI dev's going at it.&lt;br&gt;&lt;/br&gt;Of course, if there were graphical elements to the application, then this would bring HTML 5, Adobe Flex and Silverlight into the mix.&lt;br&gt;&lt;/br&gt;The bottom line is that JavaScript is brittle, it always has been, and it always will be.  Until the tools for JavaScript improve and developers can get decent refactoring tools / pre-interpreter syntax checking of code, that situation will not change any time soon.&lt;br&gt;&lt;/br&gt;Personally, I think Google needs to try to get rid of HTML / CSS / JavaScript, and create a new type of browser, with a new meta language built from the ground up, where widgets are built into the language, and data is sent in an efficient form (Protocol buffers or Thrift maybe?).  Layout and styling should be customizable by the user, just a default hint sent to the browser as a starter for 10.&lt;br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-8868257385574121832?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/8868257385574121832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=8868257385574121832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8868257385574121832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8868257385574121832'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2011/12/thoughts-on-jquery-dojo-and-gwt.html' title='Thoughts on jQuery, DOJO and GWT'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-6332445024040918688</id><published>2011-12-13T20:09:00.002Z</published><updated>2011-12-13T20:09:53.841Z</updated><title type='text'>UI Screen Designs</title><content type='html'>I saw an internal demo today from one our developers, who showed us how he could mock up some UI screens, for presentation to a customer using this tool:Axure - http://www.axure.com/It seems to work nicely, although I am not sure about how good it would be to build a fully usable prototype.  It can certainly do some basic view switching, and looks good for defining simple form based views.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-6332445024040918688?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/6332445024040918688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=6332445024040918688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/6332445024040918688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/6332445024040918688'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2011/12/ui-screen-designs.html' title='UI Screen Designs'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-7309820946102385100</id><published>2011-11-16T22:00:00.001Z</published><updated>2011-11-16T22:00:27.103Z</updated><title type='text'>Process File Handle</title><content type='html'>netstat -ao&lt;br /&gt;Process Explorer&lt;br /&gt;Zenmap&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-7309820946102385100?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/7309820946102385100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=7309820946102385100' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/7309820946102385100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/7309820946102385100'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2011/11/process-file-handle.html' title='Process File Handle'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-2718158038802572704</id><published>2011-10-12T19:03:00.000+01:00</published><updated>2011-10-12T19:04:00.778+01:00</updated><title type='text'>PC Hardware</title><content type='html'>dxdiag&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-2718158038802572704?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/2718158038802572704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=2718158038802572704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/2718158038802572704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/2718158038802572704'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2011/10/pc-hardware.html' title='PC Hardware'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-6753744140251545160</id><published>2011-01-20T09:02:00.001Z</published><updated>2011-01-20T09:03:45.550Z</updated><title type='text'>Test Data Generation XML</title><content type='html'>When testing Web Services and you have a need to generate test SOAP responses (or any XML data for that matter), opt for using a template and doing variable substitution from the start.  Also, validate the test data files on load.  This will end up saving you a bunch of time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-6753744140251545160?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/6753744140251545160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=6753744140251545160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/6753744140251545160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/6753744140251545160'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2011/01/test-data-generation-xml.html' title='Test Data Generation XML'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-7780614568804559284</id><published>2010-12-16T18:09:00.000Z</published><updated>2010-12-16T18:10:14.130Z</updated><title type='text'>iText beware!!!!</title><content type='html'>Even though it advertises itself as 'free' and 'open source'.  If you use this library for commercial use you have to pay for it (and it is not cheap).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-7780614568804559284?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/7780614568804559284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=7780614568804559284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/7780614568804559284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/7780614568804559284'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2010/12/itext-beware.html' title='iText beware!!!!'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-4182442629774238879</id><published>2010-12-03T06:42:00.000Z</published><updated>2010-12-03T06:43:23.478Z</updated><title type='text'>Spring MVC JSR 303 Empty Strings</title><content type='html'>/**&lt;br /&gt;     * Ensures empty strings come in as NULL's&lt;br /&gt;     * &lt;br /&gt;     * @param binder&lt;br /&gt;     */&lt;br /&gt;    protected void initBinder(final WebDataBinder binder) {&lt;br /&gt;     binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));&lt;br /&gt;     binder.registerCustomEditor(Date.class, new StringTrimmerEditor(true));&lt;br /&gt;    }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-4182442629774238879?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/4182442629774238879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=4182442629774238879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/4182442629774238879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/4182442629774238879'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2010/12/spring-mvc-jsr-303-empty-strings.html' title='Spring MVC JSR 303 Empty Strings'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-5582476223548729790</id><published>2010-11-24T19:32:00.001Z</published><updated>2010-11-24T19:32:48.328Z</updated><title type='text'>Monitor thread usage on Solaris</title><content type='html'>prstat –L –p &lt;pid&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-5582476223548729790?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/5582476223548729790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=5582476223548729790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/5582476223548729790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/5582476223548729790'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2010/11/monitor-thread-usage-on-solaris.html' title='Monitor thread usage on Solaris'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-7091899309398632871</id><published>2010-11-01T12:57:00.003Z</published><updated>2010-11-01T13:11:48.805Z</updated><title type='text'>Trouble shooting class errors</title><content type='html'>1) You can turn on JVM switch to dump out all loaded classes&lt;br /&gt;&lt;br /&gt;2) NoSuchMethodError?  So where is that class coming from?&lt;br /&gt;&lt;br /&gt;   In your app, before the runtime exception, place this code:&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;   getClass().getClassLoader().getResources("org/springframework/core/type/AnnotationMetadata.class");&lt;br /&gt;   while (urls.hasMoreElements()) {&lt;br /&gt;       System.out.println("******************* " + urls.nextElement());&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   Then determine class loader:&lt;br /&gt;&lt;br /&gt;   System.out.println("$$$$$$$$$$$ " + org.springframework.core.type.AnnotationMetadata.class.getClassLoader());&lt;br /&gt;On a startup listener in your app (for example), type:&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;3) So I see the class getting loaded from a rogue jar file, but where is this jar file coming from?   What is the classpath?  Running jetty with -X dumps out all jar files in the classpath, and here we spot the rogue one.....  It happens to come from a maven dependency....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-7091899309398632871?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/7091899309398632871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=7091899309398632871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/7091899309398632871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/7091899309398632871'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2010/11/trouble-shooting-class-errors.html' title='Trouble shooting class errors'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-6988707442114652498</id><published>2009-11-19T11:53:00.001Z</published><updated>2009-11-19T11:54:32.301Z</updated><title type='text'>Weblogic 10 JSTL 1.2</title><content type='html'>taglib directive is:&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ taglib uri=&amp;quot;http://java.sun.com/jsp/jstl/core&amp;quot; prefix=&amp;quot;c&amp;quot; %&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-6988707442114652498?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/6988707442114652498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=6988707442114652498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/6988707442114652498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/6988707442114652498'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2009/11/weblogic-10-jstl.html' title='Weblogic 10 JSTL 1.2'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-1194385741223282034</id><published>2009-11-19T11:02:00.002Z</published><updated>2009-11-19T11:03:49.614Z</updated><title type='text'>EJB 3 JNDI Names</title><content type='html'>What is the default EJB JNDI name in JBoss?&lt;br /&gt;&lt;br /&gt;If the application is deployed in a EAR file, the default JNDI name is the EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local for the stub for local interface. For the remote interface (see below), it is EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;If the bean is deployed in a JAR file, the JNDI names are EJB-CLASS-NAME/local and EJB-CLASS-NAME/remote.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-1194385741223282034?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/1194385741223282034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=1194385741223282034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1194385741223282034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1194385741223282034'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2009/11/ejb-3-jndi-names.html' title='EJB 3 JNDI Names'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-3459987973495703763</id><published>2009-11-19T10:18:00.002Z</published><updated>2009-11-19T10:21:59.721Z</updated><title type='text'>javaee.jar Maven 2</title><content type='html'>The Java 5 EE API jar file is available in the Java.Net repository here:&lt;br /&gt;&lt;br /&gt;http://download.java.net/maven/1/&lt;br /&gt;&lt;br /&gt;To use this in your pom file:&lt;br /&gt;&lt;br /&gt;&amp;lt;repositories&amp;gt;&lt;br /&gt;  &amp;lt;repository&amp;gt;&lt;br /&gt;    &amp;lt;id&amp;gt;java.net&amp;lt;/id&amp;gt;&lt;br /&gt;    &amp;lt;name&amp;gt;Java.Net Repository&amp;lt;/name&amp;gt;&lt;br /&gt;    &amp;lt;url&amp;gt;http://download.java.net/maven/1//&amp;lt;/url&amp;gt;&lt;br /&gt;    &amp;lt;!--  Maven 1 layout --&amp;gt;&lt;br /&gt;    &amp;lt;layout&amp;gt;legacy&amp;lt;/layout&amp;gt;&lt;br /&gt;    &amp;lt;/repository&amp;gt;&lt;br /&gt;&amp;lt;/repositories&amp;gt;&lt;br /&gt;&lt;br /&gt;then:&lt;br /&gt;&lt;br /&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;  &amp;lt;groupId&amp;gt;javaee&amp;lt;/groupId&amp;gt;&lt;br /&gt;  &amp;lt;artifactId&amp;gt;javaee-api&amp;lt;/artifactId&amp;gt;&lt;br /&gt;  &amp;lt;version&amp;gt;5&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;&lt;br /&gt;&amp;lt;/dependency&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-3459987973495703763?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/3459987973495703763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=3459987973495703763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3459987973495703763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3459987973495703763'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2009/11/javaeejar-maven-2.html' title='javaee.jar Maven 2'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-6620053249315429594</id><published>2009-11-19T10:12:00.004Z</published><updated>2009-11-19T10:18:54.345Z</updated><title type='text'>Java EE Jars in Java.Net Maven 2 Repository!</title><content type='html'>http://download.java.net/maven/2/javax/javaee-api/6.0-SNAPSHOT/&lt;br /&gt;&lt;br /&gt;At last in a maven 2 repository!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-6620053249315429594?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/6620053249315429594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=6620053249315429594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/6620053249315429594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/6620053249315429594'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2009/11/hurrah.html' title='Java EE Jars in Java.Net Maven 2 Repository!'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-809562194966908355</id><published>2009-11-16T15:47:00.006Z</published><updated>2009-11-17T08:30:44.986Z</updated><title type='text'>Maven 2 Jaxb 2 Generated Serializable Classes</title><content type='html'>If using maven, place the bindings.xjb in src/main/xjb.&lt;br /&gt;&lt;br /&gt;&amp;lt;jxb:bindings version=&amp;quot;1.0&amp;quot;&lt;br /&gt;               xmlns:jxb=&amp;quot;http://java.sun.com/xml/ns/jaxb&amp;quot;&lt;br /&gt;               xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;               &lt;br /&gt; &amp;lt;jxb:globalBindings&amp;gt;&lt;br /&gt;  &amp;lt;jxb:serializable/&amp;gt;&lt;br /&gt; &amp;lt;/jxb:globalBindings&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/jxb:bindings&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Maven snippet:&lt;br /&gt;&lt;br /&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt; &amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;&lt;br /&gt; &amp;lt;artifactId&amp;gt;jaxb2-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt; &amp;lt;executions&amp;gt;&lt;br /&gt;  &amp;lt;execution&amp;gt;&lt;br /&gt;   &amp;lt;goals&amp;gt;&lt;br /&gt;    &amp;lt;goal&amp;gt;xjc&amp;lt;/goal&amp;gt;&lt;br /&gt;   &amp;lt;/goals&amp;gt;&lt;br /&gt;  &amp;lt;/execution&amp;gt;&lt;br /&gt; &amp;lt;/executions&amp;gt;&lt;br /&gt; &amp;lt;configuration&amp;gt;&lt;br /&gt;  &amp;lt;packagename&amp;gt;my.package.name&amp;lt;/packagename&amp;gt;&lt;br /&gt;  &amp;lt;outputdirectory&amp;gt;${basedir}/src/main/generated-source&amp;lt;/outputdirectory&amp;gt;&lt;br /&gt;  &amp;lt;bindingFiles&amp;gt;bindings.xjb&amp;lt;/bindingFiles&amp;gt;&lt;br /&gt; &amp;lt;/configuration&amp;gt;&lt;br /&gt;&amp;lt;/plugin&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-809562194966908355?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/809562194966908355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=809562194966908355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/809562194966908355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/809562194966908355'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2009/11/maven-2-jaxb-2-generated-serializable.html' title='Maven 2 Jaxb 2 Generated Serializable Classes'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-3007446751436032449</id><published>2009-10-29T14:22:00.002Z</published><updated>2009-10-29T14:26:06.784Z</updated><title type='text'>Selenium Javascript JQuery UI TreeView</title><content type='html'>I had an issue today where the tree component of JQuery UI appears to render an additional div element if working in Firefox rather than IE.&lt;br /&gt;&lt;br /&gt;This broke my selenium ide test as I could not click on the expandable.&lt;br /&gt;&lt;br /&gt;Cut a long story short, here is a snippet of selenium IDE javascript code to get around the problem, but it also demonstrates nicely a function nested within a selenium IDE statement ( I could not find any other sample elsewhere).  I hace used bar | symbol to denote split of column values in selenium IDE add-on.&lt;br /&gt;&lt;br /&gt;storeElementPresent | //li[@id='1']/div | expandableDivPresent &lt;br /&gt;&lt;br /&gt;echo | ${expandableDivPresent}  &lt;br /&gt;&lt;br /&gt;storeEval | function go() {   if (${expandableDivPresent}) { return "//li[@id='1']/div"; } else { return "//li[@id='1']"; } };  go(); | expandableElementXPath &lt;br /&gt;&lt;br /&gt;echo | ${expandableElementXPath}  &lt;br /&gt;click | ${expandableElementXPath}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-3007446751436032449?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/3007446751436032449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=3007446751436032449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3007446751436032449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3007446751436032449'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2009/10/selenium-javascript-jquery-ui-treeview.html' title='Selenium Javascript JQuery UI TreeView'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-8950690385032010124</id><published>2009-07-17T13:24:00.002+01:00</published><updated>2009-07-17T13:26:48.739+01:00</updated><title type='text'>Cryptic JBoss Exceptions</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;If you get either of these errors:&lt;br /&gt;&lt;br /&gt;Failed to create a new SAX parser&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;[XMLLoginConfigImpl] End loadConfig, failed to load config: login-config.xml&lt;br /&gt;&lt;br /&gt;org.jboss.security.auth.login.ParseException: Encountered "&lt;?xml" at line 1, column 1.&lt;br /&gt;&lt;br /&gt;Chances are this is a jar compatibility issue.  Take your war file and remove&lt;br /&gt;candidate jar files that are in your war, but that JBoss already has on its classpath, such as:&lt;br /&gt;&lt;br /&gt;xml-apis.jar&lt;br /&gt;xercesImpl.jar&lt;br /&gt;xalan.jar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-8950690385032010124?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/8950690385032010124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=8950690385032010124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8950690385032010124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8950690385032010124'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2009/07/cryptic-jboss-exceptions.html' title='Cryptic JBoss Exceptions'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-5989180422145023967</id><published>2009-05-11T19:47:00.002+01:00</published><updated>2009-05-11T19:50:08.191+01:00</updated><title type='text'>Changing Background Colour in Joomla 1.5</title><content type='html'>I am using the default template rhuk_milkyway and I had changed the background colour via the drop downs to green.  &lt;br /&gt;&lt;br /&gt;I wanted a slightly different shade of green to the default so I edited the CSS in the template, located CSS file green_bg.css and modified the background value to what I wanted.  It worked first time for me!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-5989180422145023967?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/5989180422145023967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=5989180422145023967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/5989180422145023967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/5989180422145023967'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2009/05/changing-background-colour-in-joomla-15.html' title='Changing Background Colour in Joomla 1.5'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-5790521575641318788</id><published>2008-10-03T16:05:00.002+01:00</published><updated>2008-10-03T16:05:47.394+01:00</updated><title type='text'>TestNG</title><content type='html'>@BeforeClass on a setup ensures Spring has bootstrapped properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-5790521575641318788?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/5790521575641318788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=5790521575641318788' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/5790521575641318788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/5790521575641318788'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/10/testng_03.html' title='TestNG'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-3878033222647559443</id><published>2008-10-01T06:59:00.003+01:00</published><updated>2008-10-01T06:59:52.666+01:00</updated><title type='text'>TestNG</title><content type='html'>@Test(groups= { "unit" }, expectedExceptions = { AnException.class } )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-3878033222647559443?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/3878033222647559443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=3878033222647559443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3878033222647559443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3878033222647559443'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/10/testng.html' title='TestNG'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-1061317747516026335</id><published>2008-04-05T07:27:00.000+01:00</published><updated>2008-04-05T07:28:15.873+01:00</updated><title type='text'>TODO</title><content type='html'>SDO&lt;br /&gt;JBI&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-1061317747516026335?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/1061317747516026335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=1061317747516026335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1061317747516026335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1061317747516026335'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/04/todo.html' title='TODO'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-8461500374163458485</id><published>2008-03-15T07:37:00.035Z</published><updated>2008-03-24T14:17:20.711Z</updated><title type='text'>Dynamic Java Applications</title><content type='html'>I am investigating best ways of deploying new functionality to my running application at runtime, without having to restart my application.  &lt;br /&gt;&lt;br /&gt;OSGi framework is the way to go!  (Feel free to read other options below, but OSGi seems to be the way to go - if you can)...&lt;br /&gt;&lt;br /&gt;- OSGi framework - Have any of the framework implementations been used for any significant sized systems?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.osgi.org/Main/HomePage"&gt;OSGi&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/OSGi"&gt;OSGi Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- OSGi implementations &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.knopflerfish.org/"&gt;Knopflerfish&lt;/a&gt;&lt;br /&gt;&lt;a href="http://felix.apache.org/site/index.html"&gt;Felix&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Equinox_OSGi"&gt;Equinox OSGi&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.prosyst.com/products/osgi_se_equi_ed.html"&gt;Embeded Server Equinox OSGi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.osoa.org/download/attachments/250/Power_Combination_SCA_Spring_OSGi.pdf?version=3"&gt;OSGI, SCA and Spring&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Creating/recreating a Classloader.  You can do this by hand with Java but I would prefer to not have to play with this.  Weblogic 9/10 has a ChangeAwareClassLoader which could be of use, but in general, dropping / recreating the class loader is too heavy weight for my requirements, I just want to make available small units of change, maybe sometimes just a new class or a single code line change ie. to fix a bug.  If I ditch the classloader, my calling threads will have to block until the application has sorted itself out. &lt;br /&gt;&lt;br /&gt;- Hotswapping (Java Rebel or Weblogic 10.3 has FastSwap)&lt;br /&gt;&lt;br /&gt;Much of the motivation behind hotswapping so far appears to be around speeding up development cycles.  The hotswapping revolves around deploying your app as (ie. an exploded WAR file and compiling up source directly into the WEB-INF/classes dir where the new class will be picked up.&lt;br /&gt;&lt;br /&gt;Weblogic 10 is offering FastSwap, but it only works if weblogic server is running in development mode.&lt;br /&gt;&lt;br /&gt;Java Rebel will run in Weblogic 9 and 10 (plus a bunch of other app servers).  Java Rebel is not recommended for production use at present though.  JavaRebel dev team are aiming for Q4 2008 to getting out a beta version.  &lt;br /&gt;&lt;br /&gt;So hotswapping, for the time being, does not work reliably for production servers.&lt;br /&gt;&lt;br /&gt;- Deploy new service on another server?  - I could leverage a SOA principle 'discoverability' to discover a new service on the fly.  However, I don't want the overhead of making a remote call (which this would have to be using this approach, unless I was running with SCA and OSGi for example), I still have SLA's on round trip times to support regardless, and making a remote call is not going to help.&lt;br /&gt;&lt;br /&gt;- COTS support for adaptability?&lt;br /&gt;&lt;br /&gt;IBM bought BowStreet in 2005 who offer an adaptable framework, although I cannot seem to find any info on the product.&lt;br /&gt;&lt;br /&gt;- Academic research&lt;br /&gt;&lt;br /&gt;There are a &lt;a href="http://nicta.com.au/research/projects/models_and_extensible_architecture_for_adaptive_middleware_platforms/publications"&gt;few papers&lt;/a&gt; written on adaptive middleware platforms.  These appear to be largely academic excerices though.&lt;br /&gt;&lt;br /&gt;- Java 7&lt;br /&gt;&lt;br /&gt;JSR-292 talks about support for dynamic typed languages, specifically scripting languages, but does mention hotswapping as well.  &lt;a href="http://jcp.org/en/jsr/detail?id=292"&gt;JSR-292&lt;/a&gt;  The main motivation behind this appears to be for adding support to call scriping languages.&lt;br /&gt;&lt;br /&gt;- Beanshell could be used, in fact there are a number of different scripting options available, jython etc..  But I am not sure whether they allow change at runtime and whether they will compile on the fly or whether the scripts are all interpreted?&lt;br /&gt;&lt;br /&gt;- Java Assist.  There is a nice clean API available for bytecode instrumentation, which will the job, you could even point the classpath to point to a jar file sitting on a remote web server, (although I am sure security would have a thing to say about that!)..   Once Java has loaded a class, it will not reoad it (unless running with JPDA switched on), but you can change the class at runtime so this would be fine for my purposes.  I could even publish a JMX api with appropriate authentication to allow ops to remotely deploy new classes in a stream.  But if OSGi really does the job, I am not sure it is worth rolling my own framework for this.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/news/2007/12/dynamic-jee"&gt;Source article summarising the current state of play&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://edocs.bea.com/wls/essex/TechPreview/pdf/FastSwap.pdf"&gt;Weblogic FastAwap&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.zeroturnaround.com/javarebel/"&gt;Java Rebel&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-8461500374163458485?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/8461500374163458485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=8461500374163458485' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8461500374163458485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8461500374163458485'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/03/dynamic-deployment-of-new-classes.html' title='Dynamic Java Applications'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-8506584000944334065</id><published>2008-03-07T06:46:00.011Z</published><updated>2008-03-17T19:23:46.113Z</updated><title type='text'>Parallel Processing in Java EE 5</title><content type='html'>There are a number of options.  It depends on your situation as to which is the right choice:&lt;br /&gt;&lt;br /&gt;- Use JMS and message driven pojo's/beans&lt;br /&gt;&lt;br /&gt;This is a strategy that is often used.  You have a choice over whether you want to make the JMS persistent or not.  If your JMS queue is not persistent and the server fails, you can lose messages and therefore some of your processing is not guaranteed to complete.  So if you want guarantees that all the processing will be performed then you should make your queue persistent.&lt;br /&gt;&lt;br /&gt;- Java 5 Concurrency API&lt;br /&gt;&lt;br /&gt;The concurrency API is an addition in Java 5.  It will allow you to execute work in parallel safely within a J2EE container, however, for typical Master/Worker pattern processing the API does expose you to more complexity than you need.&lt;br /&gt;&lt;br /&gt;- Work Manager API - JSR 237&lt;br /&gt;&lt;br /&gt;Weblogic has a work manager API (available in Weblogic 9).  I like the API as it is clean and simple to use.  If you are a J2EE purist however, and you want your J2EE to remain portable, then this is not for you. &lt;br /&gt;&lt;br /&gt;- Java EE 6 &lt;br /&gt;&lt;br /&gt;Java EE 6 will include an evolved version of JSR 237.  Doug Lea is working on this:&lt;br /&gt;&lt;br /&gt;http://gee.cs.oswego.edu/dl/concurrencyee-interest/&lt;br /&gt;&lt;br /&gt;- Use &lt;a href="http://www.terracotta.org/"&gt;Terracotta&lt;/a&gt; (or Gigaspaces) and distribute your units of work across JVM's.  Grid products like these two seem to be gaining rapidly in popularity.  The technology is being used in Investment banks where systems are processing high volumes of transactions per second and the technology seems to back the trend of scaling by having more processors doing the work (dual core, quad core etc.).  Terracotta works by using bytecode instrumentation (basically taking your java class and inserting some extra logic to allow synchronization etc. across multiple JVM's).  Terracotta supports the Master/Worker pattern to allow you to distribute your units of work across multiple JVM's.&lt;br /&gt;&lt;br /&gt;- Use business process management software (JBPM / WS-BPEL) which provide parallelism.  Webloigc Integration for instance allows you to define a 'flow' which is some processing that can be performed in parallel.&lt;br /&gt;&lt;br /&gt;- Parallel processing frameworks like JPPF, Gridgain, Hadoop.&lt;br /&gt;&lt;br /&gt;- Spring batch&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-8506584000944334065?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/8506584000944334065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=8506584000944334065' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8506584000944334065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8506584000944334065'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/03/parallel-processing-in-java-ee-5.html' title='Parallel Processing in Java EE 5'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-1989798362903793025</id><published>2008-02-24T19:13:00.002Z</published><updated>2008-03-01T10:14:17.896Z</updated><title type='text'>Business rules and soa</title><content type='html'>&lt;p&gt;Soa service API ideal for common services like exchange money.   &lt;br&gt;Service could become industry standard and money houses provide  &lt;br&gt;implementations in their various languages.&lt;p&gt;Qos elements security, reliable messaging.&lt;p&gt;Component based philosophy is bring oo concepts to component level,  &lt;br&gt;soa brings these loosely coupled components together.&lt;p&gt;The components can be built in a layered architecture too so all  &lt;br&gt;bussiness util comes sit in same layer ie address book service can  &lt;br&gt;then be reused by other layers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-1989798362903793025?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/1989798362903793025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=1989798362903793025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1989798362903793025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1989798362903793025'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/02/business-rules-and-soa.html' title='Business rules and soa'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-1569570881018215576</id><published>2008-02-23T21:59:00.001Z</published><updated>2008-03-01T10:15:45.596Z</updated><title type='text'>Esoteric, predicates and declarative language</title><content type='html'>Esoteric - bunch of info only known by select few&lt;p&gt;Predicates - statements that are true or false&lt;p&gt;Declarative language the outcome is same whatever order of execution&lt;p&gt;Nomenclature - proper name&lt;p&gt;Sent from my iPhone&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-1569570881018215576?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/1569570881018215576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=1569570881018215576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1569570881018215576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1569570881018215576'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/02/stuff.html' title='Esoteric, predicates and declarative language'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-3747575941327293004</id><published>2008-02-17T16:21:00.006Z</published><updated>2008-02-17T16:27:25.193Z</updated><title type='text'>SCA</title><content type='html'>SCA defines a mechanism for defining components and how they work with each other.&lt;br /&gt;&lt;br /&gt;SCA is language agnostic.&lt;br /&gt;&lt;br /&gt;SCA does define its own programming model but you can use other programming models like BPEL or Spring framework for example within a component.&lt;br /&gt;&lt;br /&gt;SCA defines common assembly model.&lt;br /&gt;&lt;br /&gt;Continue..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-3747575941327293004?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/3747575941327293004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=3747575941327293004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3747575941327293004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3747575941327293004'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/02/sca.html' title='SCA'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-4809769851191199679</id><published>2008-02-17T16:19:00.000Z</published><updated>2008-02-17T16:20:12.359Z</updated><title type='text'>Mojo</title><content type='html'>Mojo is a maven plugin.&lt;br /&gt;&lt;br /&gt;Historically, MOJO is a play on POJO (Plain-old-Java-object), substituting "Maven" for "Plain". Mojo is also an iteresting word (see definition ). From Wikipedia , a "mojo" is defined as: "...a small bag worn by a person under the clothes (also known as a mojo hand). Such bags were thought to have supernatural powers, such as protecting from evil, bringing good luck, etc."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-4809769851191199679?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/4809769851191199679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=4809769851191199679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/4809769851191199679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/4809769851191199679'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/02/mojo.html' title='Mojo'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-8563738948983221790</id><published>2008-02-17T16:06:00.005Z</published><updated>2008-03-01T10:16:09.728Z</updated><title type='text'>SOA Design Points</title><content type='html'>It is good from a design perspective to separate out api from implementation.&lt;br /&gt;&lt;br /&gt;SOA and service-orientation are implementation-agnostic paradigms that can be realized with any suitable technology.&lt;br /&gt;&lt;br /&gt;Loose coupling - Services maintain a relationship that minimizes dependencies and only require tat they retain an awareness of each other.&lt;br /&gt;&lt;br /&gt;Service contract - Services adhere to a communications agreement, a defined collectively by one or more service descriptions and related documents.&lt;br /&gt;&lt;br /&gt;Autonomy - Services have control over the logic they encapsulate.&lt;br /&gt;&lt;br /&gt;Abstraction - Beyond what is described in the service contract, services hide logic from the outside world&lt;br /&gt;&lt;br /&gt;Reusability - Logic is divided into services with the intention of promoting resuse.&lt;br /&gt;&lt;br /&gt;Composability - Collections of services can be coordinated and assembled to form composite services.&lt;br /&gt;&lt;br /&gt;Statelessness = Services minimize retaining information specific to an entity.&lt;br /&gt;&lt;br /&gt;Discoverability - Services are designed to be outwardly descriptive so that they can be found and assessed via available discovery mechanisms.&lt;br /&gt;&lt;br /&gt;================&lt;br /&gt;&lt;br /&gt;Services understand each other through use of service descriptions (ie. wsdl)  A service description has a name and location of service.  The manner in which services use service descriptions results in a relationship classified as loose coupling.&lt;br /&gt;&lt;br /&gt;=================&lt;br /&gt;&lt;br /&gt;SOA is a term that represents a model in which automation logic is decomposed into smaller, distinct unit of logic.  Collectively, these units comprise a larger piece of business automation logic.  Individually, these units can be distributed.  (Note: City scenario, lots of businesses some offer same services etc.. but agree on common language, common currency..)&lt;br /&gt;&lt;br /&gt;==================&lt;br /&gt;&lt;br /&gt;The concern addressed by a service can be small or large&lt;br /&gt;&lt;br /&gt;=================&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-8563738948983221790?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/8563738948983221790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=8563738948983221790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8563738948983221790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/8563738948983221790'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/02/soa-design-points.html' title='SOA Design Points'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-1681901654819094248</id><published>2008-02-17T16:05:00.001Z</published><updated>2008-02-17T16:05:30.233Z</updated><title type='text'>Asus laptop</title><content type='html'>&lt;a href="http://www.asuslaptop.co.uk/proddetail.php?prod=Asus_Eee_PC"&gt;Asus&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-1681901654819094248?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/1681901654819094248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=1681901654819094248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1681901654819094248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1681901654819094248'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/02/asus-laptop.html' title='Asus laptop'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-7329247958472822130</id><published>2008-01-27T06:26:00.001Z</published><updated>2008-02-01T06:45:06.738Z</updated><title type='text'>Why I ditched Seam 2</title><content type='html'>I recently started using Seam to help develop a web application running under Weblogic.  In the end I ended up ditching it and going with myfaces JSF.  &lt;br /&gt;&lt;br /&gt;Reasons for ditching Seam included:&lt;br /&gt;&lt;br /&gt;I was not using EJB3 so did not benefit from the tight integration between JSF and EJB programming models.&lt;br /&gt;&lt;br /&gt;There were 2 files controlling navigation faces-config.xml (myfaces) and pages.xml (Seam) which seemed a little confusing.  I think in practice you should keep the faces-config.xml pretty empty and just use the Seam pages.xml.&lt;br /&gt;&lt;br /&gt;Seam 2 does not run under jetty as there is an EL library mismatch.&lt;br /&gt;&lt;br /&gt;The test framework is great if you use test NG.  If you have to use JUnit, then you need to port the test ng classes to use junit 4 annotations and then try and get the test framework / Seam to bootstrap itself which seems to involve getting an embeddable EJB runtime up and running as Seam uses Stateful session beans to help support its conversational state.&lt;br /&gt;&lt;br /&gt;When plugging in a custom JAAS module The security mechanism employed by Seam led me to believe it might plugin nicely with JAAS, but reports on the web led me to believe getting this to work with a Weblogic JAAS module might not work.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jira.jboss.org/jira/browse/JBSEAM-2230"&gt;JBSEAM-2230&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I did have to spend time producing maven pom to get it to build under maven too.  This is documented &lt;a href="http://www.michaelyuan.com/blog/2007/10/09/jboss-seam-project-setup-with-maven-%E2%80%94-part-2-ear-deployment/"&gt;here&lt;/a&gt;&lt;br /&gt;so did not take too long, just another thing to consider.&lt;br /&gt;&lt;br /&gt;The support on the Seam forum was not great.  I posted a couple of questions and got no response.  My feeling towards open source is that I know people do it for free but  if they are actively going to encourage people to use their frameworks then they should support them properly.&lt;br /&gt;&lt;br /&gt;I am not saying Seam is bad at all, but I was not getting much benefit from using it over JSF apart from a couple of nice annotations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-7329247958472822130?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/7329247958472822130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=7329247958472822130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/7329247958472822130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/7329247958472822130'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/01/why-i-ditched-seam-2.html' title='Why I ditched Seam 2'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-5865380890060609463</id><published>2008-01-25T14:21:00.000Z</published><updated>2008-01-25T14:25:42.987Z</updated><title type='text'>JPA Mapping Tips</title><content type='html'>Personally I prefer the annotations on the fields as it makes it easy to locate the annotation and change it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://techpolesen.blogspot.com/2007/11/10-tips-on-jpa-domain-modelling.html"&gt;JPA Tips&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Interestingly (or not as the case may be), how the JPA implementation decides whether to look for a annotation on a method or a field is how you annotate the @Id.  If the id is annotated on the field, then the JPA implementation expects to find the rest of the annotations on the fields.  This is interesting because if you have a class with two attributes and you choose (for some bizarre reason) to put the annotation for field a on the attribute and for field b on the method, then chances are your annotation for field b will be ignored.  (Well it will be if you are using Hibernate as your provider at least).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-5865380890060609463?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/5865380890060609463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=5865380890060609463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/5865380890060609463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/5865380890060609463'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/01/jpa-mapping-tips.html' title='JPA Mapping Tips'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-3167182526248732621</id><published>2008-01-25T14:18:00.000Z</published><updated>2008-01-25T14:19:17.091Z</updated><title type='text'>Maven dependency browser</title><content type='html'>&lt;a href="http://code.google.com/p/maven-dependency-browser/"&gt;Dependency Browser&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-3167182526248732621?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/3167182526248732621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=3167182526248732621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3167182526248732621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3167182526248732621'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/01/maven-dependency-browser.html' title='Maven dependency browser'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-5055854669413123273</id><published>2008-01-25T14:05:00.001Z</published><updated>2008-01-25T14:05:44.578Z</updated><title type='text'>Free maven book</title><content type='html'>&lt;a href="http://gforge.nci.nih.gov/docman/view.php/27/7059/BetterBuildsWithMaven.pdf"&gt;Better builds with maven&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-5055854669413123273?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/5055854669413123273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=5055854669413123273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/5055854669413123273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/5055854669413123273'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/01/free-maven-book.html' title='Free maven book'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-4639629144749224389</id><published>2008-01-25T13:29:00.003Z</published><updated>2008-01-25T14:02:16.297Z</updated><title type='text'>Infrastructure software</title><content type='html'>Maven repository &lt;a href="http://www.jfrog.org/sites/artifactory/1.2/"&gt;Artifactory&lt;/a&gt;&lt;br /&gt;Continous integration server &lt;a href="http://www.atlassian.com/software/bamboo/"&gt;Bamboo&lt;/a&gt;&lt;br /&gt;Bug tracking &lt;a href="http://www.atlassian.com/software/jira/"&gt;Bug tracking&lt;/a&gt;&lt;br /&gt;View Source Repository &lt;a href="http://www.atlassian.com/software/fisheye/"&gt;Fisheye&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-4639629144749224389?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/4639629144749224389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=4639629144749224389' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/4639629144749224389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/4639629144749224389'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/01/infrastructure-software.html' title='Infrastructure software'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-1696590203898765729</id><published>2008-01-25T13:21:00.001Z</published><updated>2008-01-25T14:00:50.271Z</updated><title type='text'>Switch off javascript in myfaces</title><content type='html'>In web.xml setup a context-param section and setup parameter name:&lt;pre&gt;&lt;br /&gt;&amp;lt;context-param&amp;gt;&lt;br /&gt;  &amp;lt;param-name&gt;org.apache.myfaces.ALLOW_JAVASCRIPT&amp;lt;/param-name&amp;gt;&lt;br /&gt;  &amp;lt;param-value&gt;false&amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-1696590203898765729?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/1696590203898765729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=1696590203898765729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1696590203898765729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/1696590203898765729'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/01/switch-off-javascript-in-myfaces.html' title='Switch off javascript in myfaces'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-357960684997321558</id><published>2008-01-25T13:20:00.000Z</published><updated>2008-01-25T14:17:33.165Z</updated><title type='text'>Useful maven commands</title><content type='html'>To download source code into your maven repo:&lt;br /&gt;&lt;br /&gt;mvn eclipse:clean eclipse:eclipse –DdownloadSources=true&lt;br /&gt;&lt;br /&gt;Another example:&lt;br /&gt;&lt;br /&gt;mvn -r -N -U -cpu -fae clean install&lt;br /&gt;&lt;br /&gt;-r Execute goals found in the reactor (the reactor is a maven feature whereby maven decides what to build first based on the dependency graph)&lt;br /&gt;-N Do not recurse into sub-projects&lt;br /&gt;-U Update snapshots&lt;br /&gt;-cpu Check plugin updates&lt;br /&gt;-fae Fail at end (ie. keep building if one module or test fails)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-357960684997321558?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/357960684997321558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=357960684997321558' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/357960684997321558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/357960684997321558'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/01/useful-maven-commands.html' title='Useful maven commands'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-4903920964696204105</id><published>2008-01-23T19:53:00.000Z</published><updated>2008-01-23T19:55:52.686Z</updated><title type='text'>Remote Debugging with Weblogic 9</title><content type='html'>&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Arial;" lang="EN-GB"&gt;Go to your weblogic domain.&lt;br /&gt;&lt;br /&gt;Edit file setDomainEnv.cmd inside the bin directory within your domain.&lt;br /&gt;&lt;br /&gt;Go to line 80 and type:&lt;br /&gt;&lt;br /&gt;set debugFlag=true&lt;br /&gt;&lt;br /&gt;Start weblogic and connect to default port 8453 (which is specified in setDomainEnv.cmd if you need to change it).&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-4903920964696204105?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/4903920964696204105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=4903920964696204105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/4903920964696204105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/4903920964696204105'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/01/remote-debugging-with-weblogic-9.html' title='Remote Debugging with Weblogic 9'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8912474396363526474.post-3490187142311882800</id><published>2008-01-23T19:51:00.000Z</published><updated>2008-01-23T19:52:16.824Z</updated><title type='text'>Remote Debugging with Maven 2</title><content type='html'>&lt;div dir="ltr" align="left"&gt;&lt;span&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;set MAVEN_OPTS=&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color:#000000;"&gt;&lt;span&gt;-&lt;/span&gt;Xdebug -Xnoagent  &lt;tt&gt;-Xrunjdwp:transport=dt_socket&lt;wbr&gt;,address=8008,server=y,suspend&lt;wbr&gt;=y&lt;br /&gt;&lt;br /&gt;Sorted.&lt;br /&gt;&lt;/tt&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8912474396363526474-3490187142311882800?l=bendgill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bendgill.blogspot.com/feeds/3490187142311882800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8912474396363526474&amp;postID=3490187142311882800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3490187142311882800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8912474396363526474/posts/default/3490187142311882800'/><link rel='alternate' type='text/html' href='http://bendgill.blogspot.com/2008/01/remote-debugging-with-maven-2.html' title='Remote Debugging with Maven 2'/><author><name>Ben Gill</name><uri>http://www.blogger.com/profile/09832311947963733786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
