<?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-611883803908938175</id><updated>2011-11-27T18:29:36.013-05:00</updated><category term='springframework'/><category term='jsr294'/><category term='osgi'/><category term='welcome'/><category term='eclipse osgi virgo jndi gemini'/><category term='spring-build'/><category term='springsource'/><category term='java'/><category term='dmserver'/><category term='modularity'/><category term='dm-server'/><category term='Chariot'/><category term='hibernate maven'/><category term='firstpost'/><title type='text'>It Depends™</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dmitry</name><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>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-611883803908938175.post-1454263237738831852</id><published>2010-11-10T14:29:00.006-05:00</published><updated>2010-11-10T14:36:24.032-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse osgi virgo jndi gemini'/><title type='text'>How to use Gemini Naming with Eclipse Virgo (Part 1)</title><content type='html'>&lt;div&gt;First, let me get some definitions down.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;What is Gemini Naming?&lt;/i&gt;&amp;nbsp;It is a bridge to use JNDI in OSGi runtime.  More information is available on the &lt;a href="http://www.eclipse.org/gemini/naming/"&gt;gemini naming site&lt;/a&gt;.  You can also read up in &lt;a href="http://www.osgi.org/Download/Release4V42"&gt;OSGi Enterprise Specification&lt;/a&gt; section 126&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;i&gt;What is &lt;a href="http://www.eclipse.org/virgo/"&gt;Eclipse Virgo&lt;/a&gt;?&lt;/i&gt;&amp;nbsp;This is a donated SpringSource dmServer.  A really nice modular OSGi runtime/app server.&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now let me explain why would I, being in sound state of mind would try to use JNDI in OSGi.  &lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Long version&lt;/i&gt;:&amp;nbsp;I am very lazy and I also like to use &lt;i&gt;other peoples stuff&lt;/i&gt;.  That &lt;i&gt;stuff&lt;/i&gt; is usually not OSGi aware and I am currently trying to use it&amp;nbsp;in Virgo.  Most of the time &lt;i&gt;other peoples stuff&lt;/i&gt; also needs to be configured with a database connection information.  Well, at least &lt;i&gt;stuff&lt;/i&gt; that I wanted to use.  That configuration can be conveniently provided with 5 to 10 entries in the property file or a single JNDI location string.  I already have 5 to 10 entries in the property file to maintain, so I did not want to duplicate it to another property file to be missed during deployment.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Short version&lt;/i&gt;:&amp;nbsp;Because I can and hacking/learning stuff is fun.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So without further delay, lets me explain how to deploy Gemini Naming and use it to look up entries from a &lt;i&gt;traditional&lt;/i&gt; java app in the Virgo Web Server.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some preparation is needed:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;1.&amp;nbsp;&lt;a href="http://www.eclipse.org/virgo/download/"&gt;Download Virgo Web Server&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.eclipse.org/virgo/download/"&gt;&lt;/a&gt;2. Unzip that bad boy to a location that we will call &lt;code&gt;$VIRGO_HOME&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;3.&amp;nbsp;&lt;a href="http://www.eclipse.org/gemini/naming/download.php"&gt;Download Gemini Naming&lt;/a&gt; (M1 at the time of the post - so artifact names might change)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Unzip that bad boy as well.&lt;br /&gt;&lt;br /&gt;5. Copy &lt;code&gt;org.eclipse.gemini.naming.impl-1.0.0.M01-incubation.jar&lt;/code&gt; to &lt;code&gt;$VIRGO_HOME/lib/kernel&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;6.&amp;nbsp;&lt;/span&gt;Download APIs for &lt;a href="http://mirrors.ibiblio.org/pub/mirrors/maven2/org/osgi/org.osgi.enterprise/4.2.0/org.osgi.enterprise-4.2.0.jar"&gt;OSGi enterprise bundle&lt;/a&gt; from t&lt;a href="http://mirrors.ibiblio.org/pub/mirrors/maven2/org/osgi/org.osgi.enterprise/4.2.0"&gt;he maven repo&lt;/a&gt; and save them to &lt;code&gt;$VIRGO_HOME/lib/kernel&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Now we need to modify a few files.  Use your editor of choice and modify &lt;code&gt;$VIRGO_HOME/lib/org.eclipse.virgo.kernel.launch.properties&lt;/code&gt; to add the OSGi enterprise api bundle to the list of launcher bundles:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="brush: bash"&gt;launcher.bundles =\&lt;br /&gt;....&lt;br /&gt;file:lib/kernel/org.osgi.enterprise-4.2.0.jar@start,\&lt;br /&gt;file:lib/kernel/org.apache.felix.configadmin-1.2.4.jar@start,\&lt;br /&gt;....&lt;br /&gt;&lt;/pre&gt;&lt;pre class="brush: bash"&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;This takes care of the kernel region (Read on for more info on Virgo regions &lt;a href="http://wiki.eclipse.org/Virgo/Concepts#Regions"&gt;more info on Virgo regions&lt;/a&gt;).  Now lets take care of user region.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We need to modify &lt;code&gt;$VIRGO_HOME/config/org.eclipse.virgo.kernel.userregion.properties&lt;/code&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Let's add Gemini naming to the list of baseBundles in user region&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="brush: bash"&gt;baseBundles = \&lt;br /&gt;... ,\&lt;br /&gt;file:lib/kernel/org.eclipse.gemini.naming.impl-1.0.0.M01-incubation.jarr@start&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;2. We need to import a package into the user region from the kernel and that is done by modifying the &lt;code&gt;packageImports&lt;/code&gt; property:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="brush: bash"&gt;packageImports =\&lt;br /&gt;..... ,\&lt;br /&gt;org.osgi.service.jndi;version="0"&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This package comes from the osgi enterprise bundle deployed in the kernel region and allows us to keep a single version of the bundle deployed in both regions vs. each having an individual copy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3.  Let's enable osgi console at the same time so we can examine the list of services:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="brush: bash"&gt;osgi.console=2401&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now you can start the server and see the JNDI services deployed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="brush: bash"&gt;cd $VIRGO_HOME/bin/&lt;br /&gt;./startup.sh -clean&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;Connect to telnet console:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="brush: bash"&gt;$ telnet localhost 2401&lt;br /&gt;osgi&amp;gt; vsh service list&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;You should see entries:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre class="brush: bash"&gt;....&lt;br /&gt;51 javax.naming.spi.ObjectFactory                                    4&lt;br /&gt;52 javax.naming.spi.InitialContextFactoryBuilder                     4&lt;br /&gt;53 org.osgi.service.jndi.JNDIContextManager                          4&lt;br /&gt;54 org.osgi.service.jndi.JNDIProviderAdmin                           4&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;That is it.  Now you can use JNDIContextManager and JNDIProviderAdmin to get a reference to InitialContext or look up services with "osgi:service/" schema name.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well... You almost can.  But that is topic for part 2.  Stay tuned. &amp;nbsp;Hint Tomcat gets in the way (&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=328174"&gt;see here&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-1454263237738831852?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/1454263237738831852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=1454263237738831852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/1454263237738831852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/1454263237738831852'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2010/11/how-to-use-gemini-naming-with-eclipse.html' title='How to use Gemini Naming with Eclipse Virgo (Part 1)'/><author><name>Dmitry</name><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-611883803908938175.post-1504253275041257698</id><published>2010-11-09T20:39:00.011-05:00</published><updated>2010-11-12T11:13:27.835-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chariot'/><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>Mule says no thanks to OSGi.</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;Ross Mason of MuleSoft posted an &lt;a href="http://blogs.mulesoft.org/osgi-no-thanks/"&gt;article&lt;/a&gt; where he argues that OSGi is too complex for end user developer.  Although I can sympathize, I do not completely agree.  Yes there are areas where OSGi is middleware centric.  Yes there are always things that should be simplified.  Yes there are pains moving to OSGi. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;OSGi is a &lt;i&gt;Dynamic Module System for Java&lt;/i&gt;.  The key word is &lt;i&gt;Module&lt;/i&gt;.  Modularity is hard, not OSGi.  Properly drawing boundaries between components is hard.  Getting communication protocols and APIs right is hard.  Unlearning habits of the past is hard.  &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Dynamic&lt;/i&gt; is not something that a regular developer ever learned to deal with properly.  For years we have been in a servlet world, where one never really worried about resources/services disappearing or even cared about writing code to account for a multi-threading.  I still see code that treats HttpSession as a private HashMap.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Think about all the iterations that enterprise Java went through and all of the technologies involved.  CORBA, EJB1, EJB2, RMI, JINI, JNDI, JSP, JDBC, JMS, JCA, JPA, WS-(death)*, and on and on.  How many books, articles, man-years of effort and learning went into getting developers to understand that set of technologies?  All sorts of stacks and frameworks were built to hide the complexities of that set of technologies.  Struts, WebWork, iBatis, Hibernate, Spring (later validated with EJB3/JEE5 and 6), Facelets, Seam, etc.  That is a lot of effort from a lot of very smart people to get us to where we are now.   It is very easy now to write an app in 3-4 weeks that is useful, pretty and functional.  The same would be one to two years of manpower with EJB+JSP+"name the container you hate the most" just seven, six or even five years ago.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With OSGi the situation is very similar to the days of EJB1.  Very little information was available in dead-tree format (until recently) and not too many people who &lt;b&gt;&lt;i&gt;you &lt;/i&gt;&lt;/b&gt;knew were using OSGi.  Advice was hard to come by.  Surrounding ecosystem was narrowly focused on middleware, embedded devices or Eclipse plugins.  The situations is improving dramatically lately. Books are getting published (check out &lt;a href="http://www.manning.com/hall/"&gt;OSGi in Action&lt;/a&gt; and &lt;a href="http://www.manning.com/cogoluegnes/"&gt;Spring DM in Action&lt;/a&gt;). OSGi Alliance has started a &lt;a href="http://wiki.osgi.org/Main/HomePage"&gt;wiki&lt;/a&gt; to spread the jungle knowledge.  Many OSS projects are picking up OSGi and provide feedback and information on project specific pages.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;OSGi is a great technology, but it is fairly low level technology.  It is like coding your whole application persistence logic with JDBC all over again.  There are number of OSGi specs that address most of perceived complexities of OSGi: &lt;a href="http://felix.apache.org/site/apache-felix-service-component-runtime.html"&gt;Declarative Services (DS)&lt;/a&gt; and Blueprint (&lt;a href="http://www.eclipse.org/gemini/blueprint/documentation/"&gt;Eclipse/SpringDM&lt;/a&gt;  and &lt;a href="http://incubator.apache.org/aries/blueprint.html"&gt;Apache Aries&lt;/a&gt;) bring DI capabilities to OSGi.  Building OSGi bundle metadata becomes simpler by the use of tooling support provided by &lt;a href="http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html"&gt;bnd&lt;/a&gt;, &lt;a href="http://www.springsource.org/bundlor"&gt;bundlor&lt;/a&gt; and IDE tooling.  Containers like &lt;a href="http://karaf.apache.org/"&gt;Apache Karaf&lt;/a&gt; and &lt;a href="http://www.eclipse.org/virgo/"&gt;Eclipse Virgo&lt;/a&gt; are simplifying the use of OSGi with each release.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Having said that, there is one issue with OSGi.  Please bear with me while I address it in a roundabout way.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think it was 2007 or 2008.  I was at the SpringExperience/SpringOne conference.  There was a lot of talk about data grids, super-duper distributed caching, mass scaling.  All that sounded like candy to me.  During one of the BOFs I asked Rob Harrop of SpringSource fame - "what is stopping adoption of this technology for use in an everyday project".  His answer was very interesting and I wish I wrote it down, but it boiled down to (paraphrasing) :&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Developers want to use APIs and tools that they already know.  If there are serious limitations on usage of those tools and APIs, developers tend to scream bloody murder and bail.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;OSGi is a different programming model from what we have learned to use so far.  It has different quirks (TCCL handling is undefined in the spec for example) and not all libraries that we grew up with play nicely in that different programming model.  Until all/most of the current cream of the crop libraries work seamlessly, or with very limited, configuration-only changes (no recompile/re-bundling required), there will be a push back on OSGi adoption.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I do not consider myself an OSGi &lt;i&gt;evangelist&lt;/i&gt; or a &lt;i&gt;zealot&lt;/i&gt;.   I really do not think that OSGi is a golden hammer or a nail.  OSGi and modularity forces architects and developers to think about overall architecture in much more detail.  There are projects that just don't need it.  But there are applications that will benefit greatly from OSGi support.  Those applications will tend to have a longer lifespans without complete rewrites and will be less complex after 2 years in production than a usual package tangle that is found in other so called "enterprise" applications.  &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-1504253275041257698?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/1504253275041257698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=1504253275041257698' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/1504253275041257698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/1504253275041257698'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2010/11/mule-says-no-thanks-to-osgi.html' title='Mule says no thanks to OSGi.'/><author><name>Dmitry</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-611883803908938175.post-2026050067807690313</id><published>2010-10-20T21:40:00.002-04:00</published><updated>2010-10-20T21:44:39.024-04:00</updated><title type='text'>News flash from SpringOne2GX</title><content type='html'>This is very interesting development.  https://greenhouse.springsource.org/ (get source at http://git.springsource.org/greenhouse)&lt;br /&gt;&lt;br /&gt;A way to use Spring when building social/mobile apps.  Including  OAuth, integration with Twitter/LinkedIn/etc.&lt;br /&gt;There is &lt;a href="http://git.springsource.org/spring-mobile"&gt;SpringMobile&lt;/a&gt; and &lt;a href="http://git.springsource.org/spring-social"&gt;SpringSocial&lt;/a&gt; projects.  &lt;br /&gt;Very very interesting.  Including &lt;a href="http://github.com/grails/inconsequential"&gt;Grails&lt;/a&gt;/&lt;a href="http://git.springsource.org/spring-data"&gt;Spring Data&lt;/a&gt; support for NoSql datastores  - very inventing of them to &lt;br /&gt;revitalize Spring Framework in post JEE world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-2026050067807690313?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/2026050067807690313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=2026050067807690313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/2026050067807690313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/2026050067807690313'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2010/10/news-flash-from-springone2gx.html' title='News flash from SpringOne2GX'/><author><name>Dmitry</name><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-611883803908938175.post-376570734923708947</id><published>2010-03-02T09:13:00.004-05:00</published><updated>2010-03-02T10:02:12.455-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate maven'/><title type='text'>Compiling Hibernate 3.5.x</title><content type='html'>Few days ago I wanted to build Hibernate new 3.5.x trunk to see the documentation and basically eyeball differences from prior versions.  I found this page (http://www.hibernate.org/422.html) and followed the set-up steps.  This is where the pain started.&lt;br /&gt;&lt;br /&gt;First off, build failed with an maven enforcer plugin error.  I am running on jdk 1.6, specifically "1.6.0_17".  Enforcer has a configuration that stops build when building with 1.6 jdk i.e. &lt;version&gt;[1.5,1.6)&lt;/version&gt; - require at least 1.5 exclusive of 1.6.&lt;br /&gt;Ended up changing that to &lt;version&gt;[1.5,&lt;span style="font-weight:bold;"&gt;1.7&lt;/span&gt;)&lt;/version&gt;&lt;br /&gt;&lt;br /&gt;Secondly, I am working on a Mac and hibernate builds documentation with po2xml that is not available on mac out of the box.  Need to use ports (fink, macports, etc).  I had an Ubuntu VM - so instead of messing around with ports I just moved to vm. &lt;br /&gt;&lt;br /&gt;Thirdly, build was doing some very strange things - i.e. jar artifacts were not getting published to local .m2/repository.  For some reason they were renamed to $artifact&lt;span style="font-weight:bold;"&gt;.jdocbook-style&lt;/span&gt;.  This was totally bewildering result.  I spent a bit of time trying to look at the debug log from Maven - but that provided no immediate results.  A hint came from :&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&amp;lt;requireMavenVersion&amp;gt;&lt;br /&gt; &amp;lt;version&amp;gt;(2.0.7,)&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;lt;/requireMavenVersion&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I was using Maven 2.2.1.  So I thought - would it help to downgrade to 2.0.11 and see if that helps?  Well - yes it did help.&lt;br /&gt;After repointing M2_HOME to location of 2.0.11 - build worked fine.&lt;br /&gt;&lt;br /&gt;The moral of the story - to build hibernate you MUST use Maven 2.0.11 until something funky is fixed in maven jdocbook plugin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-376570734923708947?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/376570734923708947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=376570734923708947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/376570734923708947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/376570734923708947'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2010/03/compiling-hibernate-35x.html' title='Compiling Hibernate 3.5.x'/><author><name>Dmitry</name><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-611883803908938175.post-8655669766785454699</id><published>2010-02-06T04:04:00.007-05:00</published><updated>2010-02-07T16:38:07.240-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spring-build'/><category scheme='http://www.blogger.com/atom/ns#' term='springframework'/><category scheme='http://www.blogger.com/atom/ns#' term='dm-server'/><title type='text'>Common local repository location for spring-build ivy artifacts</title><content type='html'>SpringFramework in version 3 came out with a common ant + ivy build system across most of the projects.&lt;br /&gt;One thing that was driving me insane is that this build would pull artifacts into a project specific repository directory during ivy resolution vs. a common directory (like maven).  As I was playing with the different projects and different versions of those projects disk usage was going through the roof.&lt;br /&gt;&lt;br /&gt;The only way that I found to have a common location is to provide a -D flag to ant:&lt;br /&gt;&lt;pre class="brush: bash"&gt;&lt;br /&gt;export ANT_OPTS="-Divy.cache.dir=$HOME/.spring-build-ivy-cache"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Single location, minimize disk usage.  But there is always a but in there somewhere.  dm-server code base for one makes some assumptions about where that repository is located, i.e. "../ivy-cache/repository/[artifact]".  I ended up creating a symbolik link for those situations.  Not the best solutions but freed about 1G of space on my machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-8655669766785454699?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/8655669766785454699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=8655669766785454699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/8655669766785454699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/8655669766785454699'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2010/02/common-local-repository-location-for.html' title='Common local repository location for spring-build ivy artifacts'/><author><name>Dmitry</name><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-611883803908938175.post-5777338335161049653</id><published>2010-01-22T17:10:00.003-05:00</published><updated>2010-01-22T17:18:27.051-05:00</updated><title type='text'>WebFlow on dmServer</title><content type='html'>It should be easy to use webflow on dmServer right?  Well, not if you depend on maven to copy dependencies.&lt;br /&gt;Just ran into few issues and wanted to share:&lt;br /&gt;&lt;br /&gt;1. Bundle-Import both org.springframework.webflow and org.springframework.binding (too many packages to import individually)&lt;br /&gt;  WebFlow xml config will try to add a ConversionService from binding to your app context and if you don't have binding packages imported - BOOM...&lt;br /&gt;2. Don't forget el libraries&lt;br /&gt;  WebFlow libd (library) has an optional dependency on org.jboss.el:com.springsource.org.jboss.el:2.0.0.GA and does not even lists ognl. org.springframework.binding imports javax.el, org.jboss.el and ognl as optional so resolution does not fail until you try to create an app context and webflow can't find any el parser to use and throws up.&lt;br /&gt;&lt;br /&gt;That is it for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-5777338335161049653?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/5777338335161049653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=5777338335161049653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/5777338335161049653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/5777338335161049653'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2010/01/webflow-on-dmserver.html' title='WebFlow on dmServer'/><author><name>Dmitry</name><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-611883803908938175.post-2617224169730430295</id><published>2009-12-12T09:09:00.011-05:00</published><updated>2010-02-07T16:13:39.537-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dmserver'/><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><category scheme='http://www.blogger.com/atom/ns#' term='springsource'/><title type='text'>dmServer plans and osgi services</title><content type='html'>SpringSource dmServer is very nice piece of equipment.  One of the major additions to the OSGi arsenal is concept of plans.  Plans are deployment descriptors that allow for composition of application assemblies and provided added capabilities like scoping.  You can think of scoped plan as a pseudo bundle that shades all included artifacts and creates a concept of a nested classloader.  Very similar to jee concept of nesting wars and ejb-jars in ear.  This is very useful addition that allows normal use of ORM libraries like hibernate that use TCCL (thread context class loader) and expect all classes to be found by classpath scanning. Scoping also hides services published within a scoped plan. No service gets out from a scope into a global service registry.&lt;br /&gt;This is all nice and dandy, but what if you do want to "jail break" a service from a plan?  Well there is a very simple way to do it.  As &lt;a href="http://underlap.blogspot.com/"&gt;Glyn&lt;/a&gt; describes in &lt;a href="http://forum.springsource.org/showthread.php?t=81711"&gt;this &lt;/a&gt;thread on SpringSource dmServer forums, it's as simple as adding a service property.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml; highlight: [3]"&gt;&lt;br /&gt;&amp;lt;service id="publishIntoGlobal" interface="java.lang.CharSequence"&amp;gt;&lt;br /&gt;&amp;lt;service-properties&amp;gt;&lt;br /&gt;    &amp;lt;beans:entry key="com.springsource.service.scope" value="global" /&amp;gt;&lt;br /&gt;&amp;lt;/service-properties&amp;gt;&lt;br /&gt;&amp;lt;beans:bean class="java.lang.String"&amp;gt;&lt;br /&gt; &amp;lt;beans:constructor-arg value="foo"/&amp;gt;&lt;br /&gt;&amp;lt;/beans:bean&amp;gt;&lt;br /&gt;&amp;lt;/service&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/611883803908938175-2617224169730430295?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/2617224169730430295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=2617224169730430295' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/2617224169730430295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/2617224169730430295'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2009/12/springsource-dmserver-is-very-nice.html' title='dmServer plans and osgi services'/><author><name>Dmitry</name><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-611883803908938175.post-2367703327338582398</id><published>2009-12-11T12:27:00.004-05:00</published><updated>2010-02-07T14:23:06.186-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr294'/><category scheme='http://www.blogger.com/atom/ns#' term='modularity'/><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>Is JSR294 Active or Inactive?</title><content type='html'>I was surprised to find out that JSR 294 was marked inactive (&lt;a href="http://www.infoq.com/news/2009/12/state-of-osgi"&gt;here&lt;/a&gt;).  Is it really inactive?  It depends on who you ask.  From Alex Buckley email for JSR 294 mail list, 294 is still alive:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The PMO has a new rule: a JSR that doesn't produce an EDR for 18 months is marked inactive. Nothing else happens, just the marker.&lt;br /&gt;&lt;br /&gt;Officially, 294's last EDR was December 2007. However, as per the agreement with 277 and 294 EG members in December 2008, 294 was revived ain January 2009.&lt;br /&gt;&lt;br /&gt;Materials for an EDR were presented privately to the 294 EG in June 2009. You and BJ sent useful comments. Just about the time I was ready to file the EDR, the Simple Module System proposal showed up. I can only imagine the complaints had I proceeded with the EDR at that time.&lt;br /&gt;&lt;br /&gt;So, I will file an EDR this month based on the materials from June, along the following lines:&lt;br /&gt;&lt;br /&gt;- Module accessibility is a JLS concept; runtime module is a JVMS concept.&lt;br /&gt;&lt;br /&gt;- Module compilation unit is a JLS concept; it defines a module name + version; it is annotatable; its contents are implementation-defined.&lt;br /&gt;&lt;br /&gt;- java.* APIs are limited to representing runtime modules and (the runtime form of) module compilation units.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;Direct link &lt;a href="http://altair.cs.oswego.edu/pipermail/jsr294-modularity-eg/2009-December/000392.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-2367703327338582398?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/2367703327338582398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=2367703327338582398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/2367703327338582398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/2367703327338582398'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2009/12/is-jsr294-active-or-inactive.html' title='Is JSR294 Active or Inactive?'/><author><name>Dmitry</name><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-611883803908938175.post-4405867021512518291</id><published>2009-08-13T16:44:00.002-04:00</published><updated>2009-08-13T16:49:41.761-04:00</updated><title type='text'>Good bye S3Browse.  It was fun...</title><content type='html'>While browsing springsource s3 repo noticed &lt;span style="color:red;"&gt;&lt;a style="color: rgb(255, 0, 0);" href="http://blog.s3browse.com/2009/06/s3browse-end-of-life.html"&gt;Important News&lt;/a&gt;&lt;span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Slight panic, but Google came to the rescue again and pointed to &lt;a href="http://shrub.appspot.com/"&gt;http://shrub.appspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Much relief and rejoicing followed.&lt;br /&gt;&lt;/span&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/611883803908938175-4405867021512518291?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/4405867021512518291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=4405867021512518291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/4405867021512518291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/4405867021512518291'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2009/08/good-bye-s3browse-it-was-fun.html' title='Good bye S3Browse.  It was fun...'/><author><name>Dmitry</name><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-611883803908938175.post-6647637658980579737</id><published>2009-08-10T17:01:00.003-04:00</published><updated>2009-08-10T17:06:08.875-04:00</updated><title type='text'>SpringSource + VMWare == Couple</title><content type='html'>&lt;blockquote&gt;VMware will acquire SpringSource for approximately $362 million in cash and equity plus the assumption of approximately $58 million of unvested stock and options.&lt;/blockquote&gt;&lt;br /&gt;There is nothing bad in getting paid for the work you do. It is even better to get paid a lot.  Congratulations!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-6647637658980579737?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://finance.yahoo.com/news/VMware-to-Acquire-iw-1761113527.html?x=0&amp;.v=2' title='SpringSource + VMWare == Couple'/><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/6647637658980579737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=6647637658980579737' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/6647637658980579737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/6647637658980579737'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2009/08/springsource-vmware-couple.html' title='SpringSource + VMWare == Couple'/><author><name>Dmitry</name><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-611883803908938175.post-6952915493812334796</id><published>2009-02-09T09:44:00.004-05:00</published><updated>2009-05-21T14:49:40.060-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chariot'/><title type='text'>On innovation within comfort zones</title><content type='html'>This is brilliant!!!  Perfect example of why innovation happens elsewhere!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_424YskAfew&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/_424YskAfew&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That huge process chart on a wall is classic!&lt;br /&gt;&lt;br /&gt;All too often technology/hi-tech companies succumb to a top heavy bureaucratic management.  Everyone is comfortable, paid well, got a well lubricated 401k.  Why rock the boat?  Because that well lubricated job will go by a way of a dodo bird if your organization stops to innovate.  There is simply no chance that any single product can continue to monopolize the market in a day of open source and web everywhere.  A pimpled faced kid working from his dorm room can single handed revolutionize a way any problem is solved or approached.  Examples are abound!  Napster, Microsoft (in early days), Google, Apple, Linux, many many others.  There can't be a lull, no time to milk a product, no time to rest.   That is why rocking the boat is good and much needed practice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-6952915493812334796?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/6952915493812334796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=6952915493812334796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/6952915493812334796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/6952915493812334796'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2009/02/on-innovation-within-comfort-zones.html' title='On innovation within comfort zones'/><author><name>Dmitry</name><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-611883803908938175.post-667008610172181440</id><published>2009-01-28T09:52:00.002-05:00</published><updated>2009-01-28T10:17:51.971-05:00</updated><title type='text'>Great thought</title><content type='html'>From &lt;a href="http://www.oreillynet.com/pub/wlg/3190"&gt;Why Scripting Languages Matter&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;The reason why dynamic languages like Perl, Python, and PHP are so important is key to understanding the paradigm shift. Unlike applications from the previous paradigm, web applications are not released in one to three year cycles. They are updated every day, sometimes every hour. Rather than being finished paintings, they are sketches, continually being redrawn in response to new data.&lt;/blockquote&gt;The quote is great.  What a fantastic perspective to present when choosing a technology stack for your next project!&lt;br /&gt;&lt;br /&gt;The great write/compile/package/deploy does not work that well for the web apps.  There is a need for agile/scripting approaches even in "&lt;span style="font-style: italic; font-weight: bold;"&gt;enterprise&lt;/span&gt;" (non Web2.0ish) environment.  There will come a time when waiting 3 weeks for a fix and re-deploy will not work for anyone.&lt;br /&gt;&lt;br /&gt;Would love to build an app with groovy/grails or ruby/rails on the front and Java back end.  Fully asynchronous, even-based, ESB/SOA...  I think I may just get a chance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-667008610172181440?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/667008610172181440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=667008610172181440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/667008610172181440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/667008610172181440'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2009/01/great-thought.html' title='Great thought'/><author><name>Dmitry</name><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-611883803908938175.post-6009486395824937938</id><published>2008-12-02T08:48:00.001-05:00</published><updated>2008-12-03T00:33:14.841-05:00</updated><title type='text'>SpringOne Keynote</title><content type='html'>I am at SpringOne in Florida. As always it is nice to be out of the cold and in a nice hotel. Food is good, content is great. Good times.&lt;br /&gt;&lt;br /&gt;Now for some news. Rod Johnson did an opening night keynote.  Very informative and nicely presented as always.  Major take away:  SpringSource stands for "Creative destruction of complexity" and Spring Framework provides "Weapons for the war on Java complexity".  So now you are warned!&lt;br /&gt;&lt;br /&gt;I will not try to reproduce it all.  &lt;a href="http://www.jroller.com/Solomon/entry/spring_one_random_thoughts_and"&gt;Here&lt;/a&gt; and &lt;a href="http://springinpractice.wordpress.com/2008/12/01/rod-johnsons-keynote-address-at-springone-americas-2008/"&gt;here&lt;/a&gt; have a great write-up already. &lt;br /&gt;&lt;br /&gt;Biggest announcement has to be a new tc Server.  Basically Tomcat with integrated AMS and great management console.  That should open up a number of doors for SpringSource.  I have been in a number of engagement where BEA and IBM servers were used only because they provided a much better operational environment.  Will be interesting to see what SpringSource guys will come up with next. &lt;br /&gt;&lt;br /&gt;At Philadelphia Spring User Group we will be doing a SpringOne redux on December 10th.  So if you in the area come check it out.  We will cover all of the announcements and happenings.  &lt;a href="http://phillyspring.org"&gt;phillyspring.org&lt;/a&gt; for information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-6009486395824937938?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/6009486395824937938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=6009486395824937938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/6009486395824937938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/6009486395824937938'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2008/12/springone-keynote.html' title='SpringOne Keynote'/><author><name>Dmitry</name><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-611883803908938175.post-3129279397758178459</id><published>2008-10-28T11:20:00.003-04:00</published><updated>2008-10-28T13:32:24.718-04:00</updated><title type='text'>Comparing MVC Frameworks?</title><content type='html'>I saw a question on one of LinkedIn groups asking for a comparison of MVC frameworks.  Obvious reaction is to point to Matt Raible's &lt;a href="http://raibledesigns.com/rd/entry/comparing_jvm_web_frameworks_presentation"&gt;presentation&lt;/a&gt; from 2007 on this topic.  Thinking further brings up an "It Depends" moment.  Now days it is not enough to just use "best" MVC framework.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Is this a green field project, i.e. do you have any legacy code to integrate?&lt;/li&gt;&lt;li&gt;What type of application is this going to be?&lt;/li&gt;&lt;li&gt;Is there need for wizards with suspend/restart functionality?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What are you using for persistence?&lt;/li&gt;&lt;li&gt;Do you have need for DI container?&lt;/li&gt;&lt;li&gt;Is there a need for "flashy" desktop feel to the application?&lt;/li&gt;&lt;li&gt;What is experience level of developers who will develop this application?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Those and other questions must be considered before making a decision on presentation framework.  UI is only one, albeit very important, part of the system architecture.  Care must be taken to pick a UI technology that compliments and plays nice with other pieces of overall system.&lt;br /&gt;&lt;br /&gt;Before jumping in bed with a framework make sure that development staff is comfortable and understands underlying technology, i.e. does not have to be retrained.  Make sure that picked technology fits with a business direction/objectives/strategy few years in a future.  Don't get caught up in a short term trends or you will suffer pains of complete rewrite when business focus changes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-3129279397758178459?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/3129279397758178459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=3129279397758178459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/3129279397758178459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/3129279397758178459'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2008/10/comparing-mvc-frameworks.html' title='Comparing MVC Frameworks?'/><author><name>Dmitry</name><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-611883803908938175.post-727765840538648806</id><published>2008-10-07T21:24:00.003-04:00</published><updated>2008-10-07T21:50:17.016-04:00</updated><title type='text'>SpringSource dm Server with Rob Harrop</title><content type='html'>Just a quick announcement.  Philadelphia Spring User Group will be hosting Rob Harrop of SpringSource fame.  He will be presenting on &lt;a href="http://springsource.com/node/597"&gt;recently&lt;/a&gt; blessed SpringSource dm Server.  This is the one that is all OSGi inside and out.  Very cool stuff.&lt;br /&gt;Rob is one of the best technology speakers out there.  If you are insterest in OSGi, SpringDM and SpringSource dm Server, this is the presentation for you.&lt;br /&gt;&lt;br /&gt;Check out &lt;a href="http://phillyspring.org"&gt;http://phillyspring.org&lt;/a&gt; for details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-727765840538648806?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://phillyspring.org' title='SpringSource dm Server with Rob Harrop'/><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/727765840538648806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=727765840538648806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/727765840538648806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/727765840538648806'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2008/10/springsource-dm-server-with-rob-harrop.html' title='SpringSource dm Server with Rob Harrop'/><author><name>Dmitry</name><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-611883803908938175.post-982327617561685425</id><published>2008-10-07T21:01:00.003-04:00</published><updated>2008-10-07T21:24:35.609-04:00</updated><title type='text'>Change of course at SpringSource</title><content type='html'>Glad to see an &lt;a href="http://blog.springsource.com/2008/10/07/a-question-of-balance-tuning-the-maintenance-policy/"&gt;announcement&lt;/a&gt; from Rod.  Honestly, what took so long?&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div class="callbox"&gt; &lt;span style="font-size:85%;"&gt;We are amending our maintenance policy in the light of community feedback. We will make regular binary releases from the Spring trunk available to the community, with no 3 month window. For each version of Spring, community releases will be available while it remains the trunk or until the next version is stable.&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Once we have published a release candidate for a new version of a project, we will typically not release further tags or binary builds of earlier versions of the project to the open source community. Such releases will be available for three years to SpringSource Enterprise customers.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;This is the type of a policy that I would be completely comfortable with.  Initial version seemed a little out of character and rushed.  Call me a "Spring Fan Boy" but I am mighty happy with the news today.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-982327617561685425?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.springsource.com/2008/10/07/a-question-of-balance-tuning-the-maintenance-policy/' title='Change of course at SpringSource'/><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/982327617561685425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=982327617561685425' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/982327617561685425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/982327617561685425'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2008/10/change-of-course-at-springsource.html' title='Change of course at SpringSource'/><author><name>Dmitry</name><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-611883803908938175.post-808523221242977331</id><published>2008-10-03T15:43:00.003-04:00</published><updated>2008-10-03T15:47:28.849-04:00</updated><title type='text'>Cloud Computing Conference</title><content type='html'>What is Cloud Computing?  It depends on who you speak to.  I don't have an answer.  I like the idea and would like to learn more about it.  If you are like me,  my employer  &lt;a href="www.chariotsolutions.com"&gt;Chariot Solutions&lt;/a&gt; is sponsoring a conference on Cloud Computing on Friday, October 17th at the Penn State Great Valley campus.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We have some big names attending:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Jeff Barr of Amazon.com speaking about Amazon's EC2 and S3 Cloud Computing platform&lt;/li&gt;&lt;li&gt;Joe Gregorio and Johnathan Rochelle of Google, talking about Google App Engine and Google Spreadsheets&lt;/li&gt;&lt;li&gt;Justin McCarthy and Britt Crawford of Cafe Press, the developers of HiveDB, a cloud-capable database platform&lt;/li&gt;&lt;li&gt;Prasaad Chakka of Facebook, speaking about data warehousing in the cloud with Hive&lt;/li&gt;&lt;li&gt;Chris Richardson, author of "POJOs in Action" and developer of CloudTools, a mechanism for deploying Java and Groovy applications in the cloud&lt;/li&gt;&lt;li&gt;Ezra Zygmuntowicz of Engine Yard, a Rubyist, developer of MERB (a high performance alternative to Ruby on Rails) and author of Vertebra, a cloud computing platform&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;There are several more sessions, including an hour-long panel talk on using Amazon and other cloud platforms with local experts Toby DiPasquale, Chis Cera, and Andrew Kortina. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're interested, the web site is &lt;a href="http://www.cloudconeast.com/" target="_blank"&gt;http://www.cloudconeast.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Maybe I'll see you there.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-808523221242977331?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.cloudconeast.com' title='Cloud Computing Conference'/><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/808523221242977331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=808523221242977331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/808523221242977331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/808523221242977331'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2008/10/cloud-computing-conference.html' title='Cloud Computing Conference'/><author><name>Dmitry</name><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-611883803908938175.post-3061488129089550326</id><published>2008-09-23T09:57:00.005-04:00</published><updated>2008-09-23T11:19:27.334-04:00</updated><title type='text'>SpringSource travesty!</title><content type='html'>Or Not? It Depends! There was a lot of speculation and outcry at the initial announcement.  Just read &lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=50727"&gt;theserverside&lt;/a&gt; fireside chat.  Both Rod Johnson and Mark Brewer from SpringSource dropped by to provide some explanation.  I am still hungry for explicit details.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;How IP of the enterprise supported changes be handled or if there will be a difference at all?  &lt;/li&gt;&lt;li&gt;Will there be tags made as point releases are made to the paying customers?  I would really, really, really hate to go off the trunk only.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How transparent will the changes made to support paying customer be?  Will there be a jira link, release notes, some sort of description of the change?  That would be crucial when building of the trunk.  Personally I do not have bandwidth to monitor FishEye.&lt;/li&gt;&lt;/ol&gt;I do not think that this is a sell out by SpringSource but I am biased.  I have spent the last 5 years using Spring Framework.  Now I can hardly write an "&lt;span style="font-style: italic;"&gt;enterprise&lt;/span&gt;" app of any size without it.  I got lazy about looking for an alternative because Spring is so damn good.&lt;br /&gt;&lt;br /&gt;I am yet to see a huge issue with announcement outside of inconvenience.  Most of the customers that I work with pick a version and stick with it for a while.  Lets say they have 2.5.2 and it will take an act of deity to move them to 2.5.5 unless it it the next major internal release.&lt;br /&gt;&lt;br /&gt;So lets wait and see.  If SpringSource does pull an Ext, there is a solid foundation that can still be forked and developed by the community.  I really hope it will never come to that.&lt;br /&gt;&lt;br /&gt;Further reading:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;SpringSource &lt;a href="http://blog.springsource.com/2008/05/27/open-source-open-strategy-the-springsource-manifesto/"&gt;manifesto&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Rod on Open Source &lt;a href="http://howsoftwareisbuilt.com/2007/09/10/interview-with-rod-johnson-ceo-interface21/"&gt;contibutors&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Rod on Enterprise Open Source (&lt;a href="http://chariotsolutions.com/slides/pdfs/ete2007-johnson-enterprise-java-open-source.pdf"&gt;Presentaton Slides&lt;/a&gt; from Emerging Technology for Enterprise Conference 2007)&lt;/li&gt;&lt;li&gt;Craig Walls &lt;a href="http://www.jroller.com/habuma/entry/what_the_new_springsource_maintenance"&gt;thoughts&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-3061488129089550326?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/3061488129089550326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=3061488129089550326' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/3061488129089550326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/3061488129089550326'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2008/09/springsource-travesty.html' title='SpringSource travesty!'/><author><name>Dmitry</name><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-611883803908938175.post-1722431708273531175</id><published>2008-09-13T14:48:00.003-04:00</published><updated>2008-09-13T14:55:55.858-04:00</updated><title type='text'>Quick thought on Google BigTable</title><content type='html'>We just had one of the internal geek fests at my much heralded &lt;a href="http://www.chariotsolutions.com/"&gt;employer&lt;/a&gt;.  Eric presented on Google App engine.  Very interesting.  One observation that I came away on BigTable and transactions through data store api.  That is ALL of the entities that you want persisted in transaction in AppEngine must belong to the same Entity Group. &lt;br /&gt;Translate that to Java and DDD -&gt; Aggregate Roots.  The root entity could be an aggregate root and should be persisted as a whole.  Interesting way to partition data.  Have to play with Python and AppEngine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-1722431708273531175?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/1722431708273531175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=1722431708273531175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/1722431708273531175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/1722431708273531175'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2008/09/quick-thought-on-google-bigtable.html' title='Quick thought on Google BigTable'/><author><name>Dmitry</name><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-611883803908938175.post-7626793086526705719</id><published>2008-09-05T09:19:00.004-04:00</published><updated>2008-09-23T11:22:19.723-04:00</updated><title type='text'>So why "It Depends™"?</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Georgia;color:black;"  &gt;What's in the name?  Let me start with a story.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Georgia;color:black;"  &gt;&lt;o:p&gt; I once worked for a client.  You know the type.  The one with huge "NIH" (not invented here) syndrome.  The one where "open source" is a curse word.  Thankfully there are a number of very bright and gifted people working there trying to bring about a change.  But no matter how great those folks are, the story is not about them.&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Georgia;color:black;"  &gt;&lt;o:p&gt; While there, we were looking into introducing Spring Framework as a back bone of future architecture.  Every one who worked with Spring knows that there are number of ways of doing anything with it.   Fried, broiled, baked, shaken, not stirred...  After a while I had a standard response to each question that client asked: "It Depends...".  My coworker, very funny guy by the way, soon added a "TM" to the phrase and mentioned that all usage of the phrase cost 10c payable immediately.&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Georgia;color:black;"  &gt;&lt;o:p&gt; So that is the story.  But that got me thinking.  And the thought was:  There isn't a golden hammer in software engineering.  And this engineering thing is a big misnomer.  Working with software is more like art vs. production line and model T.  There are no preset measurements on parts.  No stringent requirements.  "This procedure must be completed in 101.23 lines of code".  There is a final product that should do X.  And how it does it - who cares!!!  End user does not.  As long as it does what the user wanted, performs well, delivered on time.  It must be maintainable and bug free to be viable as a product going forward.  That is where art comes in and "It Depends™" takes root.  &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Georgia;color:black;"  &gt;&lt;o:p&gt;How to solve a problem always&lt;span class="apple-converted-space"&gt; &lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;i&gt;depends&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/span&gt;on the context of a problem and surrounding problem domain.  Who in the right mind would use a JSF + WebSphere Portal + DB to display a static html page?  But some companies do that, because that is the stack they use for web based deployments.  There are tons such examples out there.  No need to look further than last project you or I worked on.  Oh do I have some stories to tell about those :)  Maybe next time.&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-7626793086526705719?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/7626793086526705719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=7626793086526705719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/7626793086526705719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/7626793086526705719'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2008/09/so-why-it-depends.html' title='So why &quot;It Depends&amp;trade;&quot;?'/><author><name>Dmitry</name><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-611883803908938175.post-2566970999358274160</id><published>2008-09-04T10:11:00.000-04:00</published><updated>2008-09-04T10:46:44.918-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firstpost'/><category scheme='http://www.blogger.com/atom/ns#' term='welcome'/><title type='text'>Hello World!</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I guess I should start with an introduction and a reason for you, dear reader to stop by back here and read the musing of another deranged blogger with Pinky and Brain &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Pinky_and_the_Brain"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;aspirations&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;So here we go.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Hello and Welcome!&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;My name is Dmitry Sklyut and I am a software developer/architect living a peaceful life in suburban &lt;/span&gt;&lt;st1:city&gt;&lt;st1:place&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Philadelphia&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I work &lt;a href="http://www.chariotsolutions.com"&gt;here&lt;/a&gt; (and just in case:&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"The opinions expressed on this blog represent my own and not those of my employer unless specifically stated in section 42 of ...” You get the picture...).&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I work mostly with Java since around 1999, but was paid to write PowerBuilder (Remember Data Window??? Sight...) and MUMPS (don't ask) among other more standard things.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I am very into Spring Framework for its simplicity and productivity gains.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Been using it since version 1.1.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I like and use a lot of other open source technologies from Hibernate to Tomcat.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Lately I got very interested in OSGi.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Mostly for its ability to build modular applications and secondly for the deployment aspects.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;On my plate is a shelf full of books to read, languages to learn and technologies to explore.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I did start writing a blog a while back but that went by the way of Dodo Bird.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;This is my second attempt of providing some consistency to the endeavor.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;This attempt has been triggered by my last project and I will blog about it later.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;What type of content can you expect?&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Technical, computery, and programy type of a stuff.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I will try to minimize the rambling.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Politics will not be discussed here, except in context of where to put the brackets in the code :)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;So welcome again and stay tuned.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/611883803908938175-2566970999358274160?l=itdependstm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itdependstm.blogspot.com/feeds/2566970999358274160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=611883803908938175&amp;postID=2566970999358274160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/2566970999358274160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/611883803908938175/posts/default/2566970999358274160'/><link rel='alternate' type='text/html' href='http://itdependstm.blogspot.com/2008/09/hello-world.html' title='Hello World!'/><author><name>Dmitry</name><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>
