<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Weiqi Gao&#039;s Observations - spring tag</title>
  <link>http://www.weiqigao.com/blog/tags/spring/</link>
  <description>Sharing My Experience...</description>
  <language>en</language>
  <copyright>Weiqi Gao</copyright>
  <lastBuildDate>Fri, 11 May 2012 12:48:36 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  <image>
    <url>http://pebble.sourceforge.net/common/images/powered-by-pebble.gif</url>
    <title>Weiqi Gao&#039;s Observations</title>
    <link>http://www.weiqigao.com/blog/</link>
  </image>
  
  
  <item>
    <title>Dependency Injection Annotations To Come To A JVM Near You.</title>
    <link>http://www.weiqigao.com/blog/2009/05/05/dependency_injection_annotations_to_come_to_a_jvm_near_you.html</link>
    
      
        <description>
          &lt;p&gt;&lt;em&gt;(Via &lt;a href= &#034;http://twitter.com/crazybob/status/1707957663&#034; &gt;Twitter&lt;/a&gt;, where else?)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Remember &lt;a href= &#034;http://www.weiqigao.com/blog/2007/03/18/google_guice_1_0_release_sparks_discussions.html&#034; &gt;this (my blog reaction to Google Guice 1.0)&lt;/a&gt;?  At the time I wondered:&lt;/p&gt;

&lt;blockquote&gt;
&lt;a href= &#034;&#034; &gt;Me&lt;/a&gt;: &lt;h4&gt;Guice, Or Something Like It, Should Be In The JDK&lt;/h4&gt; 
 
&lt;p&gt;About the only thing that makes feel a little bit uncomfortable is the use of Guice specific imports in my application code.&lt;/p&gt; 
 
&lt;p&gt;Wouldn&#039;t it be nice if I don&#039;t have to do a
 
&lt;pre style=&#034;margin-left:3em&#034;&gt;import com.google.inject.*;&lt;/pre&gt; 
 
but do a
 
&lt;pre style=&#034;margin-left:3em&#034;&gt;import java.lang.inject.*;&lt;/pre&gt; 
 
instead?&lt;/p&gt; 
&lt;/blockquote&gt;

&lt;p&gt;It&#039;s been 779 days since then, but &lt;a href= &#034;http://crazybob.org/&#034; &gt;Bob Lee&lt;/a&gt; and &lt;a href= &#034;http://blog.springsource.com/author/rodj/&#034; &gt;Rod Johnson&lt;/a&gt; have just &lt;a href= &#034;http://crazybob.org/2009/05/announcing-javaxinjectinject.html&#034; &gt;made public&lt;/a&gt; a (work-in-progress) JSR &lt;a href= &#034;http://docs.google.com/Doc?id=dd2fhx4z_13cw24s7dj&#034; &gt;JSR ?: Annotations for Dependency Injection&lt;/a&gt; &#034;to standardize a proven, non-controversial set of annotations that make injectable classes portable across frameworks.&#034;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href= &#034;http://google-code-updates.blogspot.com/2009/05/javaxinjectinject.html&#034; &gt;Bob Lee&lt;/a&gt;: Five years ago, &lt;a title=&#034;Spring 1.0&#034; href= &#034;http://www.springsource.org/&#034; &gt;Spring 1.0&lt;/a&gt; brought Java &lt;a title=&#034;dependency injection&#034; href= &#034;http://en.wikipedia.org/wiki/Dependency_injection&#034; &gt;dependency injection&lt;/a&gt; into the mainstream. Three years later, &lt;a title=&#034;Google Guice 1.0&#034; href= &#034;http://code.google.com/p/google-guice/&#034; &gt;Google Guice 1.0&lt;/a&gt; introduced annotation-based dependency injection and made Java programming a little easier. Since then, developers have had to choose between a) writing external configuration or b) importing vendor-specific annotations.&lt;/p&gt;

&lt;p&gt;Today, we hope to give developers the best of both worlds. &lt;b&gt;Google Guice and SpringSource have partnered to standardize a proven, non-controversial set of annotations that make injectable classes portable across frameworks.&lt;/b&gt; At the moment, the set of specified annotations consists of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;span style=&#034;font-family: &#039;Courier New&#039;;&#034;&gt;@Inject&lt;/span&gt; - Identifies injectable constructors, methods, and fields&lt;/li&gt;
&lt;li&gt;&lt;span style=&#034;font-family: &#039;Courier New&#039;;&#034;&gt;@Qualifier&lt;/span&gt; - Identifies qualifier annotations&lt;/li&gt;
&lt;li&gt;&lt;span style=&#034;font-family: &#039;Courier New&#039;;&#034;&gt;@Scope&lt;/span&gt; - Identifies scope annotations&lt;/li&gt;
&lt;li&gt;&lt;span style=&#034;font-family: &#039;Courier New&#039;;&#034;&gt;@Named&lt;/span&gt; - String-based qualifier&lt;/li&gt;
&lt;li&gt;&lt;span style=&#034;font-family: &#039;Courier New&#039;;&#034;&gt;@Singleton&lt;/span&gt; - Identifies a type that the injector only instantiates once&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One additional interface is specified for use in conjunction with these annotations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;span style=&#034;font-family: &#039;Courier New&#039;;&#034;&gt;Provider&amp;lt;T&gt;&lt;/span&gt; - Provides instances of a type T. For any type T that can be injected, you can also inject &lt;span style=&#034;font-family: &#039;Courier New&#039;;&#034;&gt;Provider&amp;lt;T&gt;&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
        </description>
      
      
    
    
    
    <comments>http://www.weiqigao.com/blog/2009/05/05/dependency_injection_annotations_to_come_to_a_jvm_near_you.html#comments</comments>
    <guid isPermaLink="true">http://www.weiqigao.com/blog/2009/05/05/dependency_injection_annotations_to_come_to_a_jvm_near_you.html</guid>
    <pubDate>Tue, 05 May 2009 18:23:22 GMT</pubDate>
  </item>
  
  <item>
    <title>Hey Rod, You Are Killing Your Company</title>
    <link>http://www.weiqigao.com/blog/2008/09/23/hey_rod_you_are_killing_your_company.html</link>
    
      
        <description>
          &lt;p&gt;&lt;em&gt;(Via &lt;a href= &#034;http://fishbowl.pastiche.org/2008/09/23/spring_is_sprung/&#034; &gt;The Fishbowl&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;a href= &#034;http://www.springsource.com/node/558&#034; &gt;Unnamed PR firm for SpringSource&lt;/a&gt;: After a new major version of Spring is released, community maintenance updates will be issued for three months to address initial stability issues.  Subsequent maintenance releases will be available to SpringSource Enterprise customers.  Bug fixes will be folded into the open source development trunk and will be made available in the next major community release of the software.
&lt;/blockquote&gt;

&lt;p&gt;A lot of people have voiced their opinions about this policy, and an open revolt, a.k.a. a fork, is called for from open source advocates.&lt;/p&gt;

&lt;p&gt;Rod Johnson and company is too smart to have not anticipated such reactions.  The fact that they went ahead with the plan anyway indicates to me that they are pursuing some other goals.  And the way words like &#034;enterprise&#034;, &#034;subscription&#034; and &#034;customers&#034; are used indicates that it is money they are after.&lt;/p&gt;

&lt;p&gt;I don&#039;t fault them for wanting to make money.  It is wonderful to have paying customers for your software product, especially an open source one.&lt;/p&gt;

&lt;p&gt;However, the policy of differentiating paying customers and community users by the releases that they may or may not receive simply goes against the grain of open source thinking.  The community is rightfully &#034;outraged.&#034;  But we already know that they don&#039;t care.&lt;/p&gt;

&lt;p&gt;The key here is the response from the paying customers.  And I do think that they have some legitimate questions to ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The extra patched releases that I receive after three months (but within three years), are they still open source?  Can I redistribute it, with source, to the world?&lt;/li&gt;
&lt;li&gt;If what I receive is not open source anymore, have I been &#034;bait-and-switched&#034; into thinking that I&#039;m going with open source when I selected Spring?&lt;/li&gt;
&lt;li&gt;SpringSource has taken the first steps of abandoning the open source community.  Will the product lose its luster?&lt;/li&gt;
&lt;li&gt;Am I locked in?  Will the subscription price go higher each year?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once again, SpringSource is too smart to have not thought about these, and the effects on their open-source-oriented customers (that they will be gone).&lt;/p&gt;

&lt;p&gt;That leaves only their paying customers who don&#039;t care about the open source thing that much.&lt;/p&gt;

&lt;p&gt;Even for them, there are still some key questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I know we don&#039;t care about open source.  But SpringSource ought to care, they are, after all, an open source company.  Why are they alienating their own community?&lt;/li&gt;
&lt;li&gt;They must be desperate for money.  How long can they last?&lt;/li&gt;
&lt;li&gt;What if my biggest competitor bought SpringSource?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I&#039;m sure Rod Johnson and company has good answers to all of the above questions.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://www.weiqigao.com/blog/2008/09/23/hey_rod_you_are_killing_your_company.html#comments</comments>
    <guid isPermaLink="true">http://www.weiqigao.com/blog/2008/09/23/hey_rod_you_are_killing_your_company.html</guid>
    <pubDate>Tue, 23 Sep 2008 15:02:57 GMT</pubDate>
  </item>
  
  <item>
    <title>You Become What You Disrupt</title>
    <link>http://www.weiqigao.com/blog/2008/04/30/you_become_what_you_disrupt.html</link>
    
      
        <description>
          &lt;p&gt;&lt;a href= &#034;http://www.infoq.com/news/2008/04/springsource-app-platform&#034; &gt;SpringSource Launches New Application Server without Java EE&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It looks like the Spring guys want to get into the proprietary Java App Server business, exactly what they tried so hard to discredit a mere four years ago.&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.weiqigao.com/blog/2008/04/30/you_become_what_you_disrupt.html#comments</comments>
    <guid isPermaLink="true">http://www.weiqigao.com/blog/2008/04/30/you_become_what_you_disrupt.html</guid>
    <pubDate>Wed, 30 Apr 2008 13:16:00 GMT</pubDate>
  </item>
  
  </channel>
</rss>

