<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>toniBlog &#187; Java</title>
	<atom:link href="http://www.the-arm.com/tag/Java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.the-arm.com</link>
	<description>A weblog about Methodologies for Development</description>
	<lastBuildDate>Mon, 01 Mar 2010 07:22:39 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ESB = Enterprise Service Bullocks</title>
		<link>http://www.the-arm.com/2009/04/esb-enterprise-service-bullocks/</link>
		<comments>http://www.the-arm.com/2009/04/esb-enterprise-service-bullocks/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 09:14:12 +0000</pubDate>
		<dc:creator>toni</dc:creator>
				<category><![CDATA[General Stuff]]></category>
		<category><![CDATA[actors]]></category>
		<category><![CDATA[esb]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[servicemix]]></category>
		<category><![CDATA[synapse]]></category>

		<guid isPermaLink="false">http://www.the-arm.com/?p=403</guid>
		<description><![CDATA[As you can see from the title I&#8217;m not a big fan of Enterprises Services Buses.
I&#8217;m not the only one, Jim Webber motivated already in these nice slides why, I&#8217;ll just add my impressions, as a newbie.
I&#8217;ve tried using serviceMix and I had a quick look to some other not OS vendors.
The first weird thing [...]]]></description>
			<content:encoded><![CDATA[<p>As you can see from the title I&#8217;m not a big fan of Enterprises Services Buses.</p>
<p>I&#8217;m not the only one, <a href="http://jim.webber.name/2009/02/22/c3350ec8-6342-4ed5-bea4-8be93d7f70c4.aspx">Jim Webber motivated already in these nice slides why</a>, I&#8217;ll just add my impressions, as a newbie.</p>
<p>I&#8217;ve tried using <a href="http://servicemix.apache.org/home.html">serviceMix</a> and I had a quick look to some other not OS vendors.</p>
<p>The first weird thing is that everybody is writing an <a href="http://en.wikipedia.org/wiki/ESB">ESB</a>, you got so many choices, even the Apache foundation has two ESBs: ServiceMix and <a href="http://synapse.apache.org/">Synapse</a>, must be an easy thing to write is so many companies are writing their own version: don&#8217;t assume knowing and writing code for one will work elsewhere!</p>
<p>The second very bad thing is maintenance. I had to change a little some JBI components written a couple of months ago, it has been painful, ServiceMix is all about XML configuration but you have no clue on what&#8217;s talking with who, which service is connected to what and why, you change a name and bang, nothing works anymore. Aweful.</p>
<p>You might buy one of those cool ESB (Oracle, Tibco, the list is long) offering a &#8220;nice UI&#8221; to drag and drop components, well I&#8217;m sceptical, never been a big fan of this type of tools (vendors too, to be honest).</p>
<p>Testability. Assuming that you care about testing how do you want to test this stuff? Writing long running integration tests?</p>
<p>I tried a little and I ended up pinging ServiceMix to understand if it&#8217;s up or not (it akes honestly ages to came up) and do some clever wait on JMS queues for messages in order to understand if the bus still works but hey&#8230; That&#8217;s not cool at all. It&#8217;s slow and breakes very easily.</p>
<p>Instead of an ESB you might consider the architecture proposed by Jim on the slides mentioned above, if that&#8217;s not enough (maybe you&#8217;ve got some syncronized JMS queues) you might try to have a look to <a href="http://www.scala-lang.org/">Scala</a>, I think (and I&#8217;ll try to write something more about it) you can write an ESB (only what YOU need, no XML, no bullshit) in a day or so with a couple of <a href="http://www.scala-lang.org/node/242">Scala Actors</a>.</p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://www.the-arm.com/2009/04/esb-enterprise-service-bullocks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Maven Facts</title>
		<link>http://www.the-arm.com/2009/04/maven-facts/</link>
		<comments>http://www.the-arm.com/2009/04/maven-facts/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 15:27:07 +0000</pubDate>
		<dc:creator>toni</dc:creator>
				<category><![CDATA[General Stuff]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[pom]]></category>

		<guid isPermaLink="false">http://www.the-arm.com/?p=382</guid>
		<description><![CDATA[
Maven will never tell you which phases or goals are available in the pom, you have to guess or check the on-line documentation
Maven by default uses text files to dump the test execution results, if you want to see what&#8217;s happening on the console you have to call it with -Dsurefire.useFile=false
Maven can skip the executions [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li><a href="http://maven.apache.org/">Maven </a>will never tell you which phases or goals are available in the pom, you have to guess or check the <a href="http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html">on-line documentation</a></li>
<li>Maven by default uses text files to dump the test execution results, if you want to see what&#8217;s happening on the console you have to call it with -Dsurefire.useFile=false</li>
<li>Maven can skip the executions of the tests (sometimes might be useful!) call it with <a href="http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html">-Dmaven.test.skip=true</a></li>
<li>Maven knows what inheritance is (and therefore claims that it&#8217;s object oriented&#8230; grrr&#8230;) so if you can&#8217;t find where some property is defined <a href="http://mavenize.blogspot.com/2007/06/pom-inheritance.html">have a look up on the parent</a></li>
<li>Maven is based on XML but you won&#8217;t write as much XML as with Ant</li>
<li>Maven can create Eclipse project files and even download the sources for you (<a href="http://maven.apache.org/guides/mini/guide-ide-eclipse.html">mvn eclipse:eclipse -DdownloadSources=true</a>)</li>
<li>Maven downloads stuff from the internet  (#1 failure reason for 99% Maven presentations) but can be run in offline mode (if you had a sucessfull install previously), try mvn -o</li>
<li>Maven uses repositories, but since not all the libs in the world are in repositories you should setup a local repository (<a href="http://archiva.apache.org/">Archiva</a> works well)</li>
<li>Maven uses repositories, but since you don&#8217;t want to hog all your company bandwith you should setup a local repository</li>
<li>Maven goes great with stuff like <a href="https://hudson.dev.java.net/">Hudson</a>, <a href="http://sonar.codehaus.org/">Sonar</a></li>
<li>Maven <a href="http://maven.apache.org/guides/introduction/introduction-to-profiles.html">build profiles</a> are really cool</li>
<li>Maven is not <a href="http://en.wikipedia.org/wiki/Silver_bullet">silver bullet</a> but I&#8217;ll never go back to <a href="http://ant.apache.org/">Ant</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.the-arm.com/2009/04/maven-facts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>You might want to keep an eye on these four opensource project&#8230;</title>
		<link>http://www.the-arm.com/2009/02/you-might-want-to-keep-an-eye-on-these-four-opensource-project/</link>
		<comments>http://www.the-arm.com/2009/02/you-might-want-to-keep-an-eye-on-these-four-opensource-project/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 13:29:08 +0000</pubDate>
		<dc:creator>toni</dc:creator>
				<category><![CDATA[General Stuff]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[soa]]></category>

		<guid isPermaLink="false">http://www.the-arm.com/?p=343</guid>
		<description><![CDATA[

Apache ODE (Orchestration Director Engine) executes business processes written following the WS-BPEL standard. It talks to web services, sending and receiving messages, handling data manipulation and error recovery as described by your process definition. It supports both long and short living process executions to orchestrate all the services that are part of your application.




JBoss DNA [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<ul>
<li><a href="http://ode.apache.org/index.html">Apache ODE (Orchestration Director Engine) </a>executes business processes written following the <a title="WS-BPEL 2.0" href="http://ode.apache.org/ws-bpel-20.html">WS-BPEL</a> standard. It talks to web services, sending and receiving messages, handling data manipulation and error recovery as described by your process definition. It supports both long and short living process executions to orchestrate all the services that are part of your application.</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><a href="http://www.jboss.org/dna/">JBoss DNA</a> is a new unified repository system that is JCR-compliant and capable of federating information from a variety of systems. To client applications, JBoss DNA looks and behaves like a regular JCR repository that they search, navigate, version, and listen for changes. But under the covers, JBoss DNA gets its content by federating multiple external systems (like databases, services, other repositories, etc). This way, the unified repository content stays up-to-date and in sync, even though the external systems still own the information and existing applications still work. Plus, JBoss DNA sequences the content in the repository, extracting patterns and structured content that makes the repository more useful and effective.</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><a href="http://www.openspaces.org/display/CVG/Convergence">Convergence </a>is a project aimed at integrating Computational Grids with In-Memory Data Grids (IMDG)</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li> <strong><a href="http://www.subrecord.org/features">SubRecord </a>is a stack of enterprise aspects</strong>:</li>
</ul>
<p class="hdr"><strong>Data repository</strong></p>
<ul>
<li>repository for storing flexible records in Amazon SimpleDB manner</li>
<li>CRUD</li>
<li>underlying storage is HBase &#8211; distributed storage for massive data hosting &#8211; <a href="http://www.subrecord.org/repo">Learn more&#8230;</a></li>
</ul>
<p class="hdr"><strong>Logs repository</strong></p>
<ul>
<li>Collecting logs from many sources/interfaces like (remote)       files, JMS, HTTP and dedicated API</li>
</ul>
<p class="hdr"><strong>API/interface</strong></p>
<ul>
<li>RESTful services channel &#8211; <a href="http://www.subrecord.org/tutorial">Learn more&#8230;</a></li>
</ul>
<p class="hdr"><strong>GUI/Console interface</strong></p>
<ul>
<li>GUI interface with many capabilities</li>
<li>Trace/control Core module in real time</li>
</ul>
<p class="hdr"><strong>Tracing events (CEP/ESP)</strong></p>
<ul>
<li>Registering logical events that can be identified and used in       rules</li>
<li>Rules can trigger specifing events to alert/trigger another events on some specific       circumstances</li>
</ul>
<p class="hdr"><strong>Metrics</strong></p>
<ul>
<li>Measuring time of invocations &#8211; record time/context before       service is invoked and after</li>
<li>Collect metrics reports for specific services</li>
</ul>
<p class="hdr"><strong>Processing (data)</strong></p>
<ul>
<li>Collected data can be processed by scheduled, automatic tasks</li>
<li>Unification of models can be done using adaptive processing</li>
<li>Aggregating, normalizing,&#8230;</li>
</ul>
<p class="hdr"><strong>Session management</strong></p>
<ul>
<li>Providing session token based authentication/authorization across multiple applications</li>
<li>Authenticate once and be logged to entire federation of       applications, SSO</li>
</ul>
<p class="hdr"><strong>Application monitoring</strong></p>
<ul>
<li>Monitoring services</li>
<li>Report failures</li>
</ul>
<p class="hdr"><strong>OSGI integration</strong></p>
<ul>
<li>The application is supposed to be an OSGI bundle</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.the-arm.com/2009/02/you-might-want-to-keep-an-eye-on-these-four-opensource-project/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mavenized</title>
		<link>http://www.the-arm.com/2009/01/mavenized/</link>
		<comments>http://www.the-arm.com/2009/01/mavenized/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 05:47:35 +0000</pubDate>
		<dc:creator>toni</dc:creator>
				<category><![CDATA[General Stuff]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://www.the-arm.com/?p=337</guid>
		<description><![CDATA[It&#8217;s almost two months now that I use Maven every day, I have to say that it helped me a lot, I&#8217;m much more productive. 
There are, indeed things that I don&#8217;t like and problems but the dependency management is really sweet, the project setup too, with the archetypes. 
Some good links to start if you&#8217;re still [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s almost two months now that I use Maven every day, I have to say that it helped me a lot, I&#8217;m much more productive. </p>
<p>There are, indeed things that I don&#8217;t like and problems but the dependency management is really sweet, the project setup too, with the archetypes. </p>
<p>Some good links to start if you&#8217;re still not mavenized: </p>
<ul>
<li><a href="http://today.java.net/pub/a/today/2007/03/01/building-web-applications-with-maven-2.html">Web applications with maven</a></li>
<li><a href="http://findjar.com/">Jar Search Engine</a> to find unresolved dependencies </li>
<li><a href="http://www.mvnbrowser.com/index.html">Maven Browser</a> to browse Maven repositories</li>
<li><a href="http://m2eclipse.codehaus.org/">M2 for Eclipse</a> to integrate Maven with Eclipse </li>
</ul>
<p>I still get annoyed sometimes, with the xml, with some weird repositories publishing strange versions, or just with <a href="http://onemanwenttomow.wordpress.com/2007/12/31/maven2-log4j-and-jmx-dependencies/">Log4J</a> for example, depending on libraries not available on any repository, but hey, Maven downloaded for me, only once, only in one place hundreds of jar, I&#8217;ll really never do that job again by myself.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.the-arm.com/2009/01/mavenized/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
