<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Mimul&#039;s Developer World - Java Tech category</title>
  <link>http://mimul.com:80/pebble/default/categories/JavaTech/</link>
  <description>미물의 개발 세상</description>
  <language>ko</language>
  <copyright>미물</copyright>
  <lastBuildDate>Wed, 27 Aug 2008 13:52:00 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  <image>
    <url>http://www.mimul.com/pebble/default/images/hhj.jpg</url>
    <title>Mimul&#039;s Developer World (Java Tech category)</title>
    <link>http://mimul.com:80/pebble/default/</link>
  </image>
  
  
  <item>
    <title>jdk1.5에서 concurrent library를 사용해서 contention 피하기</title>
    <link>http://mimul.com:80/pebble/default/2008/08/27/1219845120000.html</link>
    
      
        <description>
          Java Concurrency in Practice책에 의하면 jdk1.5의 java.util.concurrent 패키지를 활용하면 동기화에 대한 contention의 부하를 줄일 수 있는 방법들을 제시합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1. ThreadLocal 사용&lt;/strong&gt;&lt;br /&gt;
아래의 예제처럼 ThreadLocal을 통해 synchronization을 대체할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;import java.text.DateFormat;&lt;br /&gt;import java.text.SimpleDateFormat;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;public class DateUtil&lt;br /&gt;{&lt;br /&gt;    private ThreadLocal&amp;lt;DateFormat&amp;gt; sdf = new ThreadLocal&amp;lt;DateFormat&amp;gt;() {&lt;br /&gt;        protected DateFormat initialValue()&lt;br /&gt;        {&lt;br /&gt;            return new SimpleDateFormat(&amp;quot;yyyyMMdd&#039;T&#039;HH:mm:ss&amp;quot;);&lt;br /&gt;        }&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    public String getCurrentDate()&lt;br /&gt;    {&lt;br /&gt;        return sdf.get().format(new Date());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args)&lt;br /&gt;    {&lt;br /&gt;        DateUtil du = new DateUtil();&lt;br /&gt;        System.out.println(du.getCurrentDate());&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;br /&gt;
initialValue를 오버라이드를 통해 최초에 생성자가 호출 될 경우 해당 변수가 초기화되어 사용이 가능해집니다.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;2. ConcurrentMap 사용&lt;/strong&gt;&lt;br /&gt;
java.util.concurrent.ConcurrentHashMap를 사용하여 하나 이상의 쓰레드가 contention하는 것을 보호할 수 있도록 해 줍니다.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;import java.util.concurrent.ConcurrentMap;&lt;br /&gt;import java.util.concurrent.ConcurrentHashMap;&lt;br /&gt;&lt;br /&gt;public class MapUtil&lt;br /&gt;{&lt;br /&gt;    private ConcurrentMap&amp;lt;String, String&amp;gt; userMap;&lt;br /&gt;    private final int CAPACITY = 100;&lt;br /&gt;&lt;br /&gt;    private MapUtil()&lt;br /&gt;    {&lt;br /&gt;	if (userMap == null)&lt;br /&gt;           userMap = new ConcurrentHashMap&amp;lt;String, String&amp;gt;(CAPACITY);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private void changeUser(String userId, String name)&lt;br /&gt;    {&lt;br /&gt;        // 동기화 안해도 됨&lt;br /&gt;        String lastValue = curMap.put(userId, name);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private String findUser(String userId)&lt;br /&gt;    {&lt;br /&gt;        // 동기화 안해도 됨&lt;br /&gt;        return curMap.get(userId);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;strong&gt;3. CopyOnWriteArrayList 사용&lt;/strong&gt;&lt;br /&gt;
Listener (AKA observer) pattern에 사용할 경우 많이 사용됩니다.&lt;br /&gt;
&lt;pre&gt;import java.awt.event.ActionEvent;&lt;br /&gt;import java.awt.event.ActionListener;&lt;br /&gt;import java.util.List;&lt;br /&gt;import java.util.concurrent.CopyOnWriteArrayList;&lt;br /&gt;&lt;br /&gt;public class ListenerUtil&lt;br /&gt;{&lt;br /&gt;    private List&amp;lt;ActionListener&amp;gt; listeners;&lt;br /&gt;&lt;br /&gt;    public ListenerUtil()&lt;br /&gt;    {&lt;br /&gt;        listeners = new CopyOnWriteArrayList&amp;lt;ActionListener&amp;gt;();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void addActionListener(ActionListener listener)&lt;br /&gt;    {&lt;br /&gt;        // 동기화 되지 않음&lt;br /&gt;        listeners.add(listener);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void removeActionListener(ActionListener listener)&lt;br /&gt;    {&lt;br /&gt;        // 동기화 되지 않음&lt;br /&gt;        listeners.remove(listener);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void fireActionEvent()&lt;br /&gt;    {&lt;br /&gt;        for (ActionListener listener : listeners)&lt;br /&gt;        {&lt;br /&gt;            listener.actionPerformed(new ActionEvent(this, 1, &amp;quot;HELLO&amp;quot;));&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
        </description>
      
      
    
    
    
    <category>Java Tech</category>
    
    <comments>http://mimul.com:80/pebble/default/2008/08/27/1219845120000.html#comments</comments>
    <guid isPermaLink="true">http://mimul.com:80/pebble/default/2008/08/27/1219845120000.html</guid>
    <pubDate>Wed, 27 Aug 2008 13:52:00 GMT</pubDate>
  </item>
  
  <item>
    <title>lambdaprobe로 Tomcat 모니터링</title>
    <link>http://mimul.com:80/pebble/default/2008/08/11/1218456900000.html</link>
    
      
        <description>
          &lt;p&gt;&lt;strong&gt;1. 다운로드 및 설치&lt;br /&gt;
&lt;/strong&gt;&lt;/p&gt;
&amp;nbsp;- 다운로드 사이트 : &lt;a href=&#034;http://www.lambdaprobe.org/d/download.htm&#034;&gt;http://www.lambdaprobe.org/d/download.htm&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;- probe.war 파일을 webapps에 카피함&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;strong&gt;2. 설정&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- conf/tomcat-users.xml 편집&lt;br /&gt;
&lt;pre&gt;&amp;lt;role rolename=&amp;quot;poweruser&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;role rolename=&amp;quot;probeuser&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;role rolename=&amp;quot;poweruserplus&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;user username=&amp;quot;admin123&amp;quot; password=&amp;quot;xxxx&amp;quot; roles=&amp;quot;manager,admin&lt;br /&gt;,poweruser,poweruserplus,probeuser&amp;quot;/&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;3. 모니터링 내용&lt;br /&gt;
&lt;/strong&gt;&amp;nbsp;- Applications, Data Sources, Deployment, Thread, Cluster, System Information, Connector Status 등의 성능 정보를 보여줍니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;4. 모니터링 화면&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#034;&#034; src=&#034;http://www.mimul.com/pebble/default/images/blog/java/lamda.PNG&#034; /&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>Java Tech</category>
    
    <comments>http://mimul.com:80/pebble/default/2008/08/11/1218456900000.html#comments</comments>
    <guid isPermaLink="true">http://mimul.com:80/pebble/default/2008/08/11/1218456900000.html</guid>
    <pubDate>Mon, 11 Aug 2008 12:15:00 GMT</pubDate>
  </item>
  
  <item>
    <title>UrlRewriteFilter 사용</title>
    <link>http://mimul.com:80/pebble/default/2008/08/08/1218131340000.html</link>
    
      
        <description>
          c 소스 기반의 mod_rewrite의 내용을 Java버전으로 컨버팅한 Url Rewrite Filter를 사용하기 위한 정보를 공유합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1. 다운로드 및 설치&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- 다운로드 사이트에서 최신판 다운 로드 : http://tuckey.org/urlrewrite/#download&lt;br /&gt;
&amp;nbsp;- WEB-INF/lib에 jar파일 카피&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;2. 설정&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- WEB-INF/web.xml &lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;    &amp;lt;filter&amp;gt;&lt;br /&gt;        &amp;lt;filter-name&amp;gt;UrlRewriteFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;        &amp;lt;filter-class&amp;gt;org.tuckey.web.filters.urlrewrite&lt;br /&gt;.UrlRewriteFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt;        &amp;lt;init-param&amp;gt;&lt;br /&gt;            &amp;lt;param-name&amp;gt;logLevel&amp;lt;/param-name&amp;gt;&lt;br /&gt;            &amp;lt;param-value&amp;gt;WARN&amp;lt;/param-value&amp;gt;&lt;br /&gt;        &amp;lt;/init-param&amp;gt;&lt;br /&gt;    &amp;lt;/filter&amp;gt;&lt;br /&gt;    &amp;lt;filter-mapping&amp;gt;&lt;br /&gt;        &amp;lt;filter-name&amp;gt;UrlRewriteFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;        &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;        &amp;lt;dispatcher&amp;gt;REQUEST&amp;lt;/dispatcher&amp;gt;&lt;br /&gt;        &amp;lt;dispatcher&amp;gt;FORWARD&amp;lt;/dispatcher&amp;gt;&lt;br /&gt;    &amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&amp;nbsp;- WEB-INF/urlrewrite.xml &lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;    &amp;lt;rule&amp;gt;&lt;br /&gt;    	&amp;lt;from&amp;gt;^/([0-9a-zA-Z]+)($|\/$)&amp;lt;/from&amp;gt;&lt;br /&gt;    	&amp;lt;to&amp;gt;/member?username=$1&amp;lt;/to&amp;gt;&lt;br /&gt;   &amp;lt;/rule&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&amp;nbsp;- WAS(tomcat) 리스타트&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;3. 설정 설명&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- http://www.mimul.com/pepsi가 호출되면 서버 내부에서는 자동으로 http://www.mimul.com/member?username=pepsi로 전환되어 호출된다.&lt;br /&gt;
&amp;nbsp;- &amp;lt;to type=&amp;quot;forward&amp;quot;&amp;gt; : 사용자의 호출 path가 사용자에게 그대로 노출되고 내부적으로 바뀌어서 처리됨&lt;br /&gt;
&amp;nbsp;- &amp;lt;to type=&amp;quot;redirect&amp;quot;&amp;gt; : 사용자의 호출 path가 해당 매핑 path로 전환되어 처리됨&lt;br /&gt;
&amp;nbsp;- Browser detection 기능도 가능&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;    &amp;lt;rule&amp;gt;&lt;br /&gt;        &amp;lt;condition name=&amp;quot;user-agent&amp;quot;&amp;gt;Mozilla/[1-4]&amp;lt;/condition&amp;gt;&lt;br /&gt;        &amp;lt;from&amp;gt;/some/page.html&amp;lt;/from&amp;gt;&lt;br /&gt;        &amp;lt;to&amp;gt;/some/page-for-old-browsers.html&amp;lt;/to&amp;gt;&lt;br /&gt;    &amp;lt;/rule&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;strong&gt;4. 정규식 설명&lt;/strong&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;. (any character) &lt;/li&gt;
    &lt;li&gt;* (zero of more of the preceding) &lt;/li&gt;
    &lt;li&gt;+ (one or more of the preceding) &lt;/li&gt;
    &lt;li&gt;{} (minimum to maximum quantifier) &lt;/li&gt;
    &lt;li&gt;? (ungreedy modifier) &lt;/li&gt;
    &lt;li&gt;! (at start of string means &amp;quot;negative pattern&amp;quot;) &lt;/li&gt;
    &lt;li&gt;^ (start of string, or &amp;quot;negative&amp;quot; if at the start of a range) &lt;/li&gt;
    &lt;li&gt;$ (end of string) &lt;/li&gt;
    &lt;li&gt;[] (match any of contents) &lt;/li&gt;
    &lt;li&gt;- (range if used between square brackets) &lt;/li&gt;
    &lt;li&gt;() (group, backreferenced group) &lt;/li&gt;
    &lt;li&gt;| (alternative, or) &lt;/li&gt;
    &lt;li&gt;\ (the escape character itself) &lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <category>Java Tech</category>
    
    <category>Open Framework</category>
    
    <comments>http://mimul.com:80/pebble/default/2008/08/08/1218131340000.html#comments</comments>
    <guid isPermaLink="true">http://mimul.com:80/pebble/default/2008/08/08/1218131340000.html</guid>
    <pubDate>Thu, 07 Aug 2008 17:49:00 GMT</pubDate>
  </item>
  
  <item>
    <title>ROME을 활용해서 Feed 생성하기</title>
    <link>http://mimul.com:80/pebble/default/2008/08/03/1217761320000.html</link>
    
      
        <description>
          ROME과 Spring을 활용해서 Feed를 생성하는 소스입니다. 블로그 시스템을 개발하거나 기존 게시판 서비스에서 Feed를 만들어서 외부에 공유해 주기위해서 아래 소스들을 활용하면 원하시는 Feed를 생성할 수 있을 것입니다.&lt;br /&gt;
ROME이 여러모로 좋은 오픈소스로 활용되는 것 같네요. 좀더 분석해서 필요한 기능들을 공유할께요.&lt;br /&gt;
필요한 라이브러리는 ROME 1.0, JDOM 1.0이 필요합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1. Feed 생성 소스&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;package client;&lt;br /&gt;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import org.apache.commons.lang.StringUtils;&lt;br /&gt;import org.apache.commons.logging.Log;&lt;br /&gt;import org.apache.commons.logging.LogFactory;&lt;br /&gt;&lt;br /&gt;import com.mimul.DataFacade;&lt;br /&gt;import com.mimul.domain.Category;&lt;br /&gt;import com.mimul.domain.Entry;&lt;br /&gt;import com.mimul.domain.SiteConfig;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndCategory;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndCategoryImpl;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndContent;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndContentImpl;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndEntry;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndEntryImpl;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndFeed;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndFeedImpl;&lt;br /&gt;&lt;br /&gt;public class CreateFeed &lt;br /&gt;{&lt;br /&gt;	private final Log log = LogFactory.getLog(this.getClass());&lt;br /&gt;	private DataFacade dataFacade;&lt;br /&gt;&lt;br /&gt;	public void setDataFacade(DataFacade dataFacade) {&lt;br /&gt;		this.dataFacade = dataFacade;&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public SyndFeed getFeed(String type)&lt;br /&gt;	{&lt;br /&gt;		SyndFeed feed = null;&lt;br /&gt;		Entry post = null;&lt;br /&gt;		List&amp;lt;Entry&amp;gt; recentEntries = null;&lt;br /&gt;		List&amp;lt;SyndEntry&amp;gt; entries = null;&lt;br /&gt;		List&amp;lt;SyndCategory&amp;gt; categories = null;&lt;br /&gt;		StringBuilder sb = null;&lt;br /&gt;		&lt;br /&gt;		try {&lt;br /&gt;			feed = new SyndFeedImpl();&lt;br /&gt;			feed.setFeedType(type); //rss_2.0&lt;br /&gt;			feed.setTitle(&amp;quot;Mimul&#039;s Developer World&amp;quot;);&lt;br /&gt;			feed.setLink(&amp;quot;http://www.mimul.com/&amp;quot;);&lt;br /&gt;			feed.setDescription(&amp;quot;Java Ecxamples Code&amp;quot;);&lt;br /&gt;			entries = new ArrayList&amp;lt;SyndEntry&amp;gt;();&lt;br /&gt;			&lt;br /&gt;			post = new Entry();&lt;br /&gt;			post.setType(&amp;quot;post&amp;quot;);&lt;br /&gt;			post.setEntryStatus(&amp;quot;publish&amp;quot;);&lt;br /&gt;			// 데이터 베이스에 저장된 엔트리를 가져온다&lt;br /&gt;			recentEntries = dataFacade.getEntryPage(post, &lt;br /&gt;			    10, 0, null, null).getItems();&lt;br /&gt;			&lt;br /&gt;			for (Entry entry:recentEntries) {&lt;br /&gt;			SyndEntry syndEntry = new SyndEntryImpl();&lt;br /&gt;			syndEntry.setTitle(entry.getTitle());&lt;br /&gt;			String link = null;&lt;br /&gt;			if(StringUtils.isNotBlank(entry.getName())) {&lt;br /&gt;			   link = &amp;quot;http://www.mimul.com&amp;quot; + &amp;quot;/post/&amp;quot; + &lt;br /&gt;			   entry.getName() + &amp;quot;.html&amp;quot;;&lt;br /&gt;			}else{&lt;br /&gt;			   link = &amp;quot;http://www.mimul.com&amp;quot; + &amp;quot;/post/id/&amp;quot; + &lt;br /&gt;			      entry.getId() + &amp;quot;.html&amp;quot;;&lt;br /&gt;			}&lt;br /&gt;			syndEntry.setLink(link);&lt;br /&gt;			syndEntry.setAuthor(entry.getAuthor().getNickname());&lt;br /&gt;			syndEntry.setPublishedDate(entry.getPostTime());&lt;br /&gt;			categories = new ArrayList&amp;lt;SyndCategory&amp;gt;();&lt;br /&gt;			// 카테고리 정보를 가져온다&lt;br /&gt;			for(Category category:entry.getCategories()) {&lt;br /&gt;			  SyndCategory syndCategory = new SyndCategoryImpl();&lt;br /&gt;			  syndCategory.setName(category.getName());&lt;br /&gt;			  syndCategory.setTaxonomyUri(&amp;quot;http://www.mimul.com&amp;quot; +&lt;br /&gt;			       &amp;quot;/category/&amp;quot; + category.getName() + &amp;quot;/&amp;quot;);&lt;br /&gt;			}&lt;br /&gt;			syndEntry.setCategories(categories);&lt;br /&gt;			SyndContent content = new SyndContentImpl();&lt;br /&gt;			content.setType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;			sb = new StringBuilder();&lt;br /&gt;			sb.append(entry.getSummary())&lt;br /&gt;			  .append(&amp;quot;&amp;lt;p&amp;gt;&amp;quot;).append(&amp;quot;&amp;lt;a href=\&amp;quot;&amp;quot;).append(link)&lt;br /&gt;			  .append(&amp;quot;\&amp;quot;&amp;gt;[more..]&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;quot;);&lt;br /&gt;			content.setValue(sb.toString());&lt;br /&gt;			syndEntry.setDescription(content);&lt;br /&gt;			entries.add(syndEntry);&lt;br /&gt;			}&lt;br /&gt;			feed.setEntries(entries);&lt;br /&gt;		} catch (Exception e) {&lt;br /&gt;			log.error(e);&lt;br /&gt;		}&lt;br /&gt;		return feed;&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;strong&gt;2. Servlet 소스&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;public void doPost(HttpServletRequest request, &lt;br /&gt;      HttpServletResponse response)&lt;br /&gt;		throws ServletException, IOException {&lt;br /&gt;	SyndFeedOutput output = null;&lt;br /&gt;	try {&lt;br /&gt;		SyndFeed feed = getCreateFeed().getFeed(&amp;quot;rss_2.0&amp;quot;);&lt;br /&gt;		feed.setFeedType(&amp;quot;rss_2.0&amp;quot;);&lt;br /&gt;	&lt;br /&gt;		response.setContentType(&amp;quot;application/xml; charset=UTF-8&amp;quot;);&lt;br /&gt;		response.setHeader(&amp;quot;Pragma&amp;quot;,&amp;quot;No-Cache&amp;quot;);&lt;br /&gt;		response.setHeader(&amp;quot;Cache-Control&amp;quot;,&amp;quot;No-Cache&amp;quot;);&lt;br /&gt;		response.setDateHeader(&amp;quot;Expires&amp;quot;,0);&lt;br /&gt;		&lt;br /&gt;		output = new SyndFeedOutput();&lt;br /&gt;		output.output(feed, response.getWriter());&lt;br /&gt;	} catch (FeedException e) {&lt;br /&gt;		log.error(e);&lt;br /&gt;		response.sendError(&lt;br /&gt;		    HttpServletResponse.SC_INTERNAL_SERVER_ERROR, &lt;br /&gt;		   &amp;quot;FEED 생성 오류&amp;quot;);&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;private CreateFeed getCreateFeed() {&lt;br /&gt;	return (CreateFeed) WebApplicationContextUtils.&lt;br /&gt;	  getWebApplicationContext(getServletConfig()&lt;br /&gt;	  .getServletContext()).getBean(&amp;quot;createFeed&amp;quot;);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
        </description>
      
      
    
    
    
    <category>Java Tech</category>
    
    <comments>http://mimul.com:80/pebble/default/2008/08/03/1217761320000.html#comments</comments>
    <guid isPermaLink="true">http://mimul.com:80/pebble/default/2008/08/03/1217761320000.html</guid>
    <pubDate>Sun, 03 Aug 2008 11:02:00 GMT</pubDate>
  </item>
  
  </channel>
</rss>
