<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Deng Ching</title>
	<link>http://blogs.exist.com/oching</link>
	<description>Thoughts to ponder..</description>
	<pubDate>Tue, 27 Oct 2009 05:21:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Apache Maven 2 Effective Implementation book (final version) now available!</title>
		<link>http://blogs.exist.com/oching/2009/09/15/apache-maven-2-effective-implementation-book-final-version-now-available/</link>
		<comments>http://blogs.exist.com/oching/2009/09/15/apache-maven-2-effective-implementation-book-final-version-now-available/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 02:01:23 +0000</pubDate>
		<dc:creator>Deng Ching</dc:creator>
		
		<category><![CDATA[Tech blogs]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[archiva]]></category>

		<category><![CDATA[best practices]]></category>

		<category><![CDATA[build]]></category>

		<category><![CDATA[build tools]]></category>

		<category><![CDATA[ci]]></category>

		<category><![CDATA[continuous integration]]></category>

		<category><![CDATA[continuum]]></category>

		<category><![CDATA[effective implementation]]></category>

		<category><![CDATA[effective maven]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[maven]]></category>

		<category><![CDATA[pom]]></category>

		<category><![CDATA[repo manager]]></category>

		<category><![CDATA[repository manager]]></category>

		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blogs.exist.com/oching/2009/09/15/apache-maven-2-effective-implementation-book-final-version-now-available/</guid>
		<description><![CDATA[After almost a year of writing and revising, our book is finally finished and published  The book is about Apache Maven and centered on a &#34;best practices&#34; approach. It is not the usual how-to books but more on effective usage and application of Maven in your projects/applications. You will also learn how to use [...]]]></description>
			<content:encoded><![CDATA[<p>After almost a year of writing and revising, our book is finally finished and published <img src="http://blogs.exist.com/oching/wp-content/plugins/fckeditor-for-wordpress-plugin/smiles/msn/regular_smile.gif" alt="" /> The book is about Apache Maven and centered on a &quot;best practices&quot; approach. It is not the usual how-to books but more on effective usage and application of Maven in your projects/applications. You will also learn how to use Maven together with Apache Continuum (continuous integration server) and Apache Archiva (a repository manager) and use these tools to your advantage.</p>
<p>To learn more about these projects, visit:</p>
<p><a href="http://maven.apache.org/">maven.apache.org/</a></p>
<p><a href="archiva.apache.org/">archiva.apache.org/</a></p>
<p><a href="continuum.apache.org/">continuum.apache.org/</a></p>
<p>You can grab a copy of the book at <a href="http://www.packtpub.com/apache-maven-2-effective-implementations/book">www.packtpub.com/apache-maven-2-effective-implementations/book</a>. Grab a copy now while it&#8217;s still on sale <img src='http://blogs.exist.com/oching/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>(Thanks again to everyone who helped us out and supported us with this book!)</p>
<p><a href="http://www.packtpub.com/apache-maven-2-effective-implementations/book"><img width="233" height="273" src="http://images.packtpub.com/images/full/1847194540.jpg" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.exist.com/oching/2009/09/15/apache-maven-2-effective-implementation-book-final-version-now-available/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8220;Managing Your Repositories with Archiva&#8221; @ApacheCon Europe 2009</title>
		<link>http://blogs.exist.com/oching/2009/03/05/managing-your-repositories-with-archiva-apachecon-europe-2009/</link>
		<comments>http://blogs.exist.com/oching/2009/03/05/managing-your-repositories-with-archiva-apachecon-europe-2009/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 12:28:03 +0000</pubDate>
		<dc:creator>Deng Ching</dc:creator>
		
		<category><![CDATA[Tech blogs]]></category>

		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://blogs.exist.com/oching/2009/03/05/managing-your-repositories-with-archiva-apachecon-europe-2009/</guid>
		<description><![CDATA[&#160;
ApacheCon Europe is coming up!** I&#8217;m given the privilege of holding an hour long session at the conference to talk about Archiva. Here&#8217;s a short summary of what I will be covering in my presentation: www.eu.apachecon.com/c/aceu2009/sessions/169
&#160;Wendy Smoak and Carlos Sanchez will also be speaking at the conference. Wendy will be doing a presentation on Apache [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>ApacheCon Europe is coming up!** I&#8217;m given the privilege of holding an hour long session at the conference to talk about Archiva. Here&#8217;s a short summary of what I will be covering in my presentation: <a href="http://www.eu.apachecon.com/c/aceu2009/sessions/169">www.eu.apachecon.com/c/aceu2009/sessions/169</a></p>
<p>&nbsp;Wendy Smoak and Carlos Sanchez will also be speaking at the conference. Wendy will be doing a presentation on Apache Continuum <a href="http://www.eu.apachecon.com/c/aceu2009/sessions/170">www.eu.apachecon.com/c/aceu2009/sessions/170</a> while Carlos will be talking about Enterprise Build and Test <a href="http://www.eu.apachecon.com/c/aceu2009/sessions/171">www.eu.apachecon.com/c/aceu2009/sessions/171</a>, and Eclipse IAM <a href="http://www.eu.apachecon.com/c/aceu2009/sessions/185">www.eu.apachecon.com/c/aceu2009/sessions/185</a></p>
<p>See you all in Amsterdam!&nbsp;</p>
<p>**ApacheCon Europe 2009 is on March 23-27 at Movenpick Hotel, Amsterdam - <a href="http://www.eu.apachecon.com/c/aceu2009/">www.eu.apachecon.com/c/aceu2009/</a>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.exist.com/oching/2009/03/05/managing-your-repositories-with-archiva-apachecon-europe-2009/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Configuring JSW + embedded Jetty with JMX</title>
		<link>http://blogs.exist.com/oching/2009/02/26/configuring-jsw-embedded-jetty-with-jmx/</link>
		<comments>http://blogs.exist.com/oching/2009/02/26/configuring-jsw-embedded-jetty-with-jmx/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 02:00:51 +0000</pubDate>
		<dc:creator>Deng Ching</dc:creator>
		
		<category><![CDATA[Tech blogs]]></category>

		<category><![CDATA[appassembler-maven-plugin]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[jetty]]></category>

		<category><![CDATA[jmx]]></category>

		<category><![CDATA[jsw]]></category>

		<category><![CDATA[maven]]></category>

		<category><![CDATA[mbeans]]></category>

		<guid isPermaLink="false">http://blogs.exist.com/oching/2009/02/26/configuring-jsw-embedded-jetty-with-jmx/</guid>
		<description><![CDATA[
I thought I&#8217;d share this knowledge that I&#8217;ve learned while migrating our project to be distributed in a Jetty bundle JMX (see java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/)
I&#8217;ve summarized this into the following steps:
1. You must have a jetty-jmx.xml file with the following configuration:
&#60;?xml version=&#34;1.0&#34;?&#62;
&#60;!DOCTYPE Configure PUBLIC &#34;-//Mort Bay Consulting//DTD Configure//EN&#34; &#34;http://jetty.mortbay.org/configure.dtd&#34;&#62;
&#60;Configure id=&#34;Server&#34; class=&#34;org.mortbay.jetty.Server&#34;&#62;
&#160;&#160;&#160; &#60;!&#8211; =========================================================== &#8211;&#62;
&#160;&#160;&#160; &#60;!&#8211; Initialize an [...]]]></description>
			<content:encoded><![CDATA[<p>
I thought I&#8217;d share this knowledge that I&#8217;ve learned while migrating our project to be distributed in a Jetty bundle JMX (see <a href="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/">java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/</a>)</p>
<p>I&#8217;ve summarized this into the following steps:</p>
<p>1. You must have a jetty-jmx.xml file with the following configuration:</p>
<p style="margin-left: 40px;">&lt;?xml version=&quot;1.0&quot;?&gt;<br />
&lt;!DOCTYPE Configure PUBLIC &quot;-//Mort Bay Consulting//DTD Configure//EN&quot; &quot;http://jetty.mortbay.org/configure.dtd&quot;&gt;<br />
&lt;Configure id=&quot;Server&quot; class=&quot;org.mortbay.jetty.Server&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;!&#8211; =========================================================== &#8211;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;!&#8211; Initialize an mbean server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;!&#8211; =========================================================== &#8211;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;!&#8211; Use the jdk 1.5 platformMBeanServer &#8211;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;Call id=&quot;MBeanServer&quot; class=&quot;java.lang.management.ManagementFactory&quot; name=&quot;getPlatformMBeanServer&quot;/&gt;<br />
&nbsp;&nbsp;  <br />
&nbsp;&nbsp;&nbsp; &lt;!&#8211; =========================================================== &#8211;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;!&#8211; Initialize the Jetty MBean container&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;!&#8211; =========================================================== &#8211;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;Get id=&quot;Container&quot; name=&quot;container&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Call name=&quot;addEventListener&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Arg&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;New class=&quot;org.mortbay.management.MBeanContainer&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Arg&gt;&lt;Ref id=&quot;MBeanServer&quot;/&gt;&lt;/Arg&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211; If using &lt; jdk1.5 uncomment to start http adaptor &#8211;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211; Set name=&quot;managementPort&quot;&gt;8082&lt;/Set &#8211;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Call name=&quot;start&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/New&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Arg&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Call&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/Get&gt;&nbsp;&nbsp;&nbsp; <br />
&lt;/Configure&gt;&nbsp;</p>
<p>2. In your wrapper.conf file, add the jetty-jmx.xml file in the Application Parameters section like the following:</p>
<p style="margin-left: 40px;">wrapper.app.parameter.1=org.mortbay.start.Main<br />
wrapper.app.parameter.2=[PATH_TO_JETTY_CONFIG]/jetty-jmx.xml<br />
wrapper.app.parameter.3=[PATH_TO_JETTY_CONFIG]/jetty.xml</p>
<p>3. Add&nbsp; also the following in the Java Additional Parameters section of the wrapper.conf:</p>
<p style="margin-left: 40px;">wrapper.java.additional.7=-Dcom.sun.management.jmxremote.ssl=false<br />
wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false<br />
wrapper.java.additional.9=-Dcom.sun.management.jmxremote.port=9999</p>
<p>4. Start the Jetty bundle by invoking the startup script for the JSW.</p>
<p>5. To see if JMX was enabled, use jconsole to connect. In jconsole, create a new connection and in the Advanced tab, provide the following JMX url then click Connect:</p>
<p style="margin-left: 40px;"><code>service:jmx:rmi:///jndi/rmi://127.0.0.1:9999/jmxrmi</code></p>
<p>After step 4, you should be able to see the Memory, Threads, Classes and MBeans info of your application.</p>
<p>&nbsp;</p>
<p><i>Specifics for the tools used above: </i></p>
<ul>
<li><i>appassembler-maven-plugin 1.0-beta-2</i></li>
<li><i>java 1.5.0_11</i></li>
<li><i>jetty 6.1.11</i><i><br />
    </i></li>
<li><i>jsw 3.2.3</i>&nbsp;</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.exist.com/oching/2009/02/26/configuring-jsw-embedded-jetty-with-jmx/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Continuum 1.3.1 (Alpha) now released!</title>
		<link>http://blogs.exist.com/oching/2009/01/21/continuum-131-alpha-now-released/</link>
		<comments>http://blogs.exist.com/oching/2009/01/21/continuum-131-alpha-now-released/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 10:11:26 +0000</pubDate>
		<dc:creator>Deng Ching</dc:creator>
		
		<category><![CDATA[Tech blogs]]></category>

		<guid isPermaLink="false">http://blogs.exist.com/oching/2009/01/21/continuum-131-alpha-now-released/</guid>
		<description><![CDATA[Continuum 1.3.1 (Alpha) has been officially released today! Although this is just an alpha release, there&#8217;s a vast amount of new features (in it&#8217;s initial implementation) to look out for as can be seen in the release notes below:
Release Notes - Continuum - Version 1.3.1
** Sub-task
&#160;&#160;&#160; * [CONTINUUM-2023] - Document usage of parallel builds
** Bug
&#160;&#160;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Continuum 1.3.1 (Alpha) has been officially released today! Although this is just an alpha release, there&#8217;s a vast amount of new features (in it&#8217;s initial implementation) to look out for as can be seen in the release notes below:</p>
<p>Release Notes - Continuum - Version 1.3.1</p>
<p>** Sub-task<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-2023] - Document usage of parallel builds</p>
<p>** Bug<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1513] - Release does not work when maven 2 executable is not on PATH<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1978] - regression from 1.1 to 1.2.2: Add Maven 2.0+ Project using https POM Url where the source server has self signed certificate<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1981] - Error while using Windows domain in username when adding a M2 project<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1984] - Dead link to data-management-cli-1.2-app.jar in upgrade documentation<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1988] - Cannot build project if triggered from Project Information page<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1998] - Unable to delete a user<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1999] - Missing validation error message for duplicate project group<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-2008] - Creating or Editing&nbsp; &quot;build definition&quot; and &quot;build definition template&quot; generates javascript error<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-2017] - Unable to add build definitions to a template<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-2021] - NullPointerException when sending mail notification<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-2030] - Show Users in Role paging not working<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-2035] - Unable to release when Distributed Build is enabled<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-2040] - NPE encountered when building a project migrated from an old database</p>
<p>** Improvement<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1829] - separate transient errors from build failures in notification and display<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1864] - Transient State<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1884] - Clicking &#8216;Done&#8217; after a successful release perform sends you all the way out to the list of groups<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1962] - Migrate to Struts 2<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1969] - Externalize all strings and make continuum fully localizable.<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-2010] - Add group cancel build<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-2013] - Database migration tool for migration from 1.2.x to 1.3.x</p>
<p>** New Feature<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-265] - Concurrent builds<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1666] - Distributed Builds</p>
<p>** Task<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1990] - Unable to publish website from 1.3.0 tag<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-2024] - Upgrade httpclient to 4.0beta2</p>
<p>
** Wish<br />
&nbsp;&nbsp;&nbsp; * [CONTINUUM-1635] - Manage configurable number of parallel build queues
</p>
<p>BTW, the release can be obtained here: http://continuum.apache.org/download.html</p>
<p>Enjoy!</p>
<p>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.exist.com/oching/2009/01/21/continuum-131-alpha-now-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BarCampApache @ApacheCon US 2008</title>
		<link>http://blogs.exist.com/oching/2008/11/04/barcampapache-apachecon-us-2008/</link>
		<comments>http://blogs.exist.com/oching/2008/11/04/barcampapache-apachecon-us-2008/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 14:41:11 +0000</pubDate>
		<dc:creator>Deng Ching</dc:creator>
		
		<category><![CDATA[Tech blogs]]></category>

		<guid isPermaLink="false">http://blogs.exist.com/oching/2008/11/04/barcampapache-apachecon-us-2008/</guid>
		<description><![CDATA[For the first time in Apache Con history, Apache will be hosting a bar camp! Visit http://barcamp.pbwiki.com/BarCampApache for more details  
]]></description>
			<content:encoded><![CDATA[<p>For the first time in Apache Con history, Apache will be hosting a bar camp! Visit http://barcamp.pbwiki.com/BarCampApache for more details <img src='http://blogs.exist.com/oching/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.exist.com/oching/2008/11/04/barcampapache-apachecon-us-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Archiva @ApacheCon US 2008</title>
		<link>http://blogs.exist.com/oching/2008/11/04/archiva-apachecon-us-2008/</link>
		<comments>http://blogs.exist.com/oching/2008/11/04/archiva-apachecon-us-2008/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 14:31:33 +0000</pubDate>
		<dc:creator>Deng Ching</dc:creator>
		
		<category><![CDATA[Tech blogs]]></category>

		<guid isPermaLink="false">http://blogs.exist.com/oching/2008/11/04/archiva-apachecon-us-2008/</guid>
		<description><![CDATA[&#160;
I was given a chance to do a fast feather talk about Archiva at the ApacheCon US 2008 on Wednesday Nov. 5, 3pm at the Sheraton Hotel in New Orleans. See you there!
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>I was given a chance to do a fast feather talk about Archiva at the ApacheCon US 2008 on Wednesday Nov. 5, 3pm at the Sheraton Hotel in New Orleans. See you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.exist.com/oching/2008/11/04/archiva-apachecon-us-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Generating RSS Feeds with Rome</title>
		<link>http://blogs.exist.com/oching/2008/08/26/generating-rss-feeds-with-rome/</link>
		<comments>http://blogs.exist.com/oching/2008/08/26/generating-rss-feeds-with-rome/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 12:46:17 +0000</pubDate>
		<dc:creator>Deng Ching</dc:creator>
		
		<category><![CDATA[Tech blogs]]></category>

		<category><![CDATA[archiva]]></category>

		<category><![CDATA[atom]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[rome]]></category>

		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://blogs.exist.com/oching/2008/08/26/generating-rss-feeds-with-rome/</guid>
		<description><![CDATA[Want to have RSS feeds in your Java application? Try Rome..
&#34;Rome is an open source library for generating, parsing and manipulating RSS and Atom feeds. It supports different RSS and Atom feed formats such as Atom 0.3, and Atom 1.0, RSS 0.90, RSS 0.91 Netscape, RSS 0.91 Userland, RSS 0.92, RSS 0.93, RSS 0.94, RSS [...]]]></description>
			<content:encoded><![CDATA[<p>Want to have RSS feeds in your Java application? Try Rome..</p>
<p>&quot;<a href="https://rome.dev.java.net/" title="Rome">Rome</a> is an open source library for generating, parsing and manipulating RSS and Atom feeds. It supports different RSS and Atom feed formats such as Atom 0.3, and Atom 1.0, RSS 0.90, RSS 0.91 Netscape, RSS 0.91 Userland, RSS 0.92, RSS 0.93, RSS 0.94, RSS 1.0 and RSS 2.0.&quot;</p>
<p>A couple months back, I got to use the Rome library to implement RSS in <a href="http://archiva.apache.org/" title="Archiva">Archiva</a>. What I liked about Rome is how it&#8217;s so easy to understand and use. To generate an RSS feed, you basically just need to be familiar with these three classes: SyndFeed, SyndEntry and SyndContent. These three are Java interfaces with the following concrete implementations: SyndFeedImpl, SyndEntryImpl and SyndContentImpl respectively. Here&#8217;s a short example on how you can generate a RSS 2.0 feed:</p>
<blockquote>
<p>SyndFeed feed = new SyndFeedImpl();            // create the feed<br />
Date publishDate = new Date( System.currentTimeMillis() );</p>
<p>
feed.setTitle( &quot;Techblog.ph RSS Feeds&quot; );<br />
feed.setDescription( &quot;RSS feeds of blog entries from Techblog.ph&quot; );<br />
feed.setLanguage( &quot;en-us&quot; );<br />
feed.setPublishedDate( publishDate );<br />
feed.setFeedType( &quot;rss_2.0&quot; );          // set the type of your feed</p>
<p>List&lt;SyndEntry&gt; entries = new ArrayList&lt;SyndEntry&gt;();</p>
<p>SyndEntry entry = new SyndEntryImpl();           // create a feed entry<br />
entry.setTitle( &quot;Generating RSS Feeds with Rome&quot; );<br />
entry.setPublishedDate( publishDate );</p>
<p>SyndContent content = new SyndContentImpl();         // create the content of your entry<br />
content.setType( &quot;text/plain&quot; );<br />
content.setValue( &quot;Want to have RSS feeds in your Java application? Try Rome&#8230;..&quot; );</p>
<p>entry.setDescription( content );<br />
entries.add( entry );<br />
feed.setEntries( entries );              // you can add multiple entries in your feed</p>
</blockquote>
<p>For the published date, make sure that you update it whenever you have a new entry and publish the feed so that the reader knows there were changes/updates in your feed.</p>
<p>Now, to publish your feed.. you can write it into a file (example, write it to rss.xml) which the feed reader checks for updates or you can generate the feed by request (like how it is done in Archiva). If you are publishing your feeds by writing it on a file, you might need to read the file into a SyndFeed before adding new entries as shown below:</p>
<blockquote>
<p>SyndFeedInput input = new SyndFeedInput();<br />
SyndFeed  feed = input.build( new XmlReader( outputFile ) );</p>
</blockquote>
<p>To learn more about the Rome library, check out the <a href="https://rome.dev.java.net/apidocs/1_0/overview-summary.html">Rome API</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.exist.com/oching/2008/08/26/generating-rss-feeds-with-rome/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BarCamp in Manila tonight!</title>
		<link>http://blogs.exist.com/oching/2008/08/20/barcamp-in-manila-tonight/</link>
		<comments>http://blogs.exist.com/oching/2008/08/20/barcamp-in-manila-tonight/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 01:55:47 +0000</pubDate>
		<dc:creator>Deng Ching</dc:creator>
		
		<category><![CDATA[Tech blogs]]></category>

		<guid isPermaLink="false">http://blogs.exist.com/oching/2008/08/20/barcamp-in-manila-tonight/</guid>
		<description><![CDATA[&#160;
BarCamp in Manila tonight at the G2VC Innovation Center, starts at 7pm..&#160; Sign up now!
For more details, visit barcamp.org/BarCampManila
See you there! &#160;
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>BarCamp in Manila tonight at the G2VC Innovation Center, starts at 7pm..&nbsp; Sign up now!</p>
<p>For more details, visit <a href="http://barcamp.org/BarCampManila">barcamp.org/BarCampManila</a></p>
<p>See you there! <img alt="" src="http://blogs.exist.com/oching/wp-content/plugins/fckeditor-for-wordpress-plugin/smiles/msn/regular_smile.gif" />&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.exist.com/oching/2008/08/20/barcamp-in-manila-tonight/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Groovy Users Group First Meetup Tomorrow!</title>
		<link>http://blogs.exist.com/oching/2008/07/13/groovy-users-group-first-meetup-tomorrow/</link>
		<comments>http://blogs.exist.com/oching/2008/07/13/groovy-users-group-first-meetup-tomorrow/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 14:39:26 +0000</pubDate>
		<dc:creator>Deng Ching</dc:creator>
		
		<category><![CDATA[Tech blogs]]></category>

		<category><![CDATA[grails]]></category>

		<category><![CDATA[groovy]]></category>

		<category><![CDATA[pinoy]]></category>

		<category><![CDATA[users group]]></category>

		<guid isPermaLink="false">http://blogs.exist.com/oching/2008/07/13/groovy-users-group-first-meetup-tomorrow/</guid>
		<description><![CDATA[
The first meetup of the Groovy Users Group will be held tomorrow 7pm at the Orange and Bronze office in Makati.
Topics to be presented:

Intro to Groovy by Michael Mallete
Grails + Acegi walkthrough by Melvin Dave Vivas

For more details, visit groups.google.com/group/philippine-groovy-users/browse_thread/thread/a835c5c84b6f9679
See you there!  
&#160;
]]></description>
			<content:encoded><![CDATA[<p>
The first meetup of the Groovy Users Group will be held tomorrow 7pm at the Orange and Bronze office in Makati.</p>
<p>Topics to be presented:</p>
<ol>
<li>Intro to Groovy by Michael Mallete</li>
<li>Grails + Acegi walkthrough by Melvin Dave Vivas</li>
</ol>
<p>For more details, visit <a href="http://groups.google.com/group/philippine-groovy-users/browse_thread/thread/a835c5c84b6f9679">groups.google.com/group/philippine-groovy-users/browse_thread/thread/a835c5c84b6f9679</a></p>
<p>See you there! <img src='http://blogs.exist.com/oching/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.exist.com/oching/2008/07/13/groovy-users-group-first-meetup-tomorrow/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Maven @ the POSS</title>
		<link>http://blogs.exist.com/oching/2008/07/04/maven-the-poss/</link>
		<comments>http://blogs.exist.com/oching/2008/07/04/maven-the-poss/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 12:24:59 +0000</pubDate>
		<dc:creator>Deng Ching</dc:creator>
		
		<category><![CDATA[Tech blogs]]></category>

		<category><![CDATA[archiva]]></category>

		<category><![CDATA[artifact]]></category>

		<category><![CDATA[continuum]]></category>

		<category><![CDATA[maven]]></category>

		<category><![CDATA[pom]]></category>

		<category><![CDATA[POSS]]></category>

		<category><![CDATA[repository]]></category>

		<guid isPermaLink="false">http://blogs.exist.com/oching/2008/07/04/maven-the-poss/</guid>
		<description><![CDATA[&#160;
&#160;Last June 23-24, the Philippine Open Source Summit (POSS) was held in Cebu and I got to do a technical session about Maven. For those who didn&#8217;t get to attend, here&#8217;s a short summary of what was presented and discussed in the session =)&#160;
&#160;

What is Maven?

It is a software project management and comprehension tool that [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>&nbsp;Last June 23-24, the Philippine Open Source Summit (POSS) was held in Cebu and I got to do a technical session about Maven. For those who didn&#8217;t get to attend, here&#8217;s a short summary of what was presented and discussed in the session =)&nbsp;</p>
<p>&nbsp;</p>
<ol>
<li>What is Maven?
<ul>
<li>It is a software project management and comprehension tool that can manage a project&#8217;s build, reporting and documentation from a central piece of information.</li>
</ul>
</li>
<li>Before Maven was around you need to..
<ul>
<li>Compile your project (dependencies, source classes)</li>
<li>Package your project</li>
<li>Test your project</li>
<li>Document your project</li>
<li>Deploy/publish your project</li>
</ul>
</li>
<li>Life with Maven.. Maven does it ALL!
<ul>
<li>Building a project with Maven is demonstrated (from compiling your project up to deployment), showing the Maven build life cycle.</li>
<li>A diagram of how Maven works</li>
<li><img width="600" height="375" alt="" src="http://blogs.exist.com/oching/wp-content/uploads/image/how_maven_works.png" /></li>
</ul>
</li>
<li>Definition of Terms:
<ul>
<li>Repository (remote and local) - where artifacts are contained</li>
<li>Artifact - a jar, war, ear, zip, tar, etc. file</li>
<li>POM (Project Object Model) - the central piece of information; xml configuration file where all info (build, reporting, resources, etc.) regarding the project is located</li>
<li>Dependency - an artifact which is needed by your project in order to build or run it</li>
<li>Build - steps for preparing your project for deployment (compile, test, package, deploy, etc.)</li>
</ul>
</li>
<li>The Power of Maven (reference: <a href="http://maven.apache.org/maven-features.html">maven.apache.org/maven-features.html</a>)
<ul>
<li>Simple project setup that follows best practices</li>
<li>Consistent usage across all projects means no ramp up time for new developers coming onto a project</li>
<li>Superior dependency management</li>
<li>Support for multi-module projects</li>
<li>Extensible (you can create your own plugins!)</li>
<li>Coherent site of project information</li>
<li>Release management and distribution publication</li>
</ul>
</li>
<li>Related Tools:
<ul>
<li>Apache Archiva &ndash; Build Artifact Repository Manager</li>
<li>Apache Continuum &ndash; Continuous Integration Server</li>
</ul>
</li>
<li>Features of Archiva:
<ul>
<li>can be used as proxy cache of artifacts</li>
<li>manage repositories (deploy/upload artifacts, search, cleanup)</li>
<li>provides reports (repository health)</li>
<li>security (for your repositories)</li>
</ul>
</li>
<li>Features of Continuum:
<ul>
<li>scheduled builds (m2, m1, ant and shell projects)</li>
<li>build notification (mail, irc, IM clients)</li>
<li>has support for build environments</li>
<li>web UI for releasing a project</li>
<li>security (across project groups)</li>
</ul>
</li>
<li>Resources:
<ul>
<li>Maven website - <a href="http://maven.apache.org">maven.apache.org</a></li>
<li>Books on Maven:
<ul>
<li>Better Builds With Maven - <a href="http://repo.exist.com/dist/maestro/">repo.exist.com/dist/maestro/</a></li>
<li>Maven: The Definitive Guide -&nbsp; <a href="http://www.sonatype.com/book/#">www.sonatype.com/book/#</a></li>
</ul>
</li>
<li>Archiva website - <a href="http://archiva.apache.org">archiva.apache.org</a></li>
<li>Continuum website - <a href="http://continuum.apache.org">continuum.apache.org</a></li>
</ul>
</li>
</ol>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.exist.com/oching/2008/07/04/maven-the-poss/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
