<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.2.1 on Tue, 24 Oct 2006 12:32:59 GMT -->
<rss version="2.0">
	<channel>
		<title>David Black: Eclipse</title>
		<link>http://radio.weblogs.com/0146416/categories/eclipse/</link>
		<description>Eclipse, the tooling and rich client platform</description>
		<copyright>Copyright 2006 David Black</copyright>
		<lastBuildDate>Tue, 24 Oct 2006 12:32:59 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.2.1</generator>
		<managingEditor>dblack@codecurl.org</managingEditor>
		<webMaster>dblack@codecurl.org</webMaster>
		<category domain="http://www.weblogs.com/rssUpdates/changes.xml">rssUpdates</category> 
		<skipHours>
			<hour>23</hour>
			<hour>0</hour>
			<hour>1</hour>
			<hour>2</hour>
			<hour>3</hour>
			<hour>4</hour>
			<hour>5</hour>
			<hour>6</hour>
			</skipHours>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<ttl>60</ttl>
		<item>
			<title>A long time ago</title>
			<description>Somewhere I have not been for a very long time is www.microsoft.com. I wonder what it is like there now? Is it still &lt;span style=&quot;font-style: italic;&quot;&gt;great&lt;/span&gt;? (The word that appears in more Microsoft sentences than any other). I was a Microsoft developer for many years (this feels like a confession - hi, my name is David and I&apos;m a Microsoft-holic), then one day I just converted to Java, Eclipse &amp;amp; Co. Just like that, it was like flipping a switch. And I&apos;ve never looked back. But now I&apos;m wondering, while that company doesn&apos;t seem to be so important anymore, am I missing things I should not be? Have I closed my mind too much? Maybe its time to take a look at Visual Studio version whatever and do some comparisons with Eclipse. I never bothered learning C#, I already know it! :-) One thing Microsoft always did well were developer tools, and I&apos;m hearing from a couple of friends who are still on the &lt;span style=&quot;font-style: italic;&quot;&gt;other&lt;/span&gt; side that they have some pretty slick stuff ... if you want to develop for the CLM (do they still call it that?) and .NOT, uh, I mean .NET. A long time ago Microsoft were a &lt;span style=&quot;font-style: italic;&quot;&gt;force&lt;/span&gt; to be reckoned with. Now you&apos;d want to have your head examined to voluntarily choose the Microsoft platform for Enterprise development. Still, I wouldn&apos;t mind having a &lt;span style=&quot;font-style: italic;&quot;&gt;peak&lt;/span&gt;, if I can just free up enough space on my hard drive...&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2006/10/24.html#a65</guid>
			<pubDate>Tue, 24 Oct 2006 12:32:58 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=65&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F10%2F24.html%23a65</comments>
			</item>
		<item>
			<title>Eclipse workbench in a browser?</title>
			<description>Has anyone ever thought about a hosted Eclipse concept, with the workbench being available in a browser? Would this be as simple as an implementation of SWT using AJAX techniques? Ok, its far from simple, but the AJAX front end would be firing events back to the SWT AJAX proxy and into the platform agnostic layer, and the UI changes would be sucked back out ... and hey, it would all just work! :-)&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2006/09/22.html#a60</guid>
			<pubDate>Fri, 22 Sep 2006 12:18:56 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=60&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F09%2F22.html%23a60</comments>
			</item>
		<item>
			<title>A vote for IStorageEditorInput</title>
			<description>Now that Eclipse editors are reaching out beyond the confines of the workspace more and more (with &lt;a href=&quot;http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/filesystem/EFS.html&quot;&gt;pluggable file systems&lt;/a&gt; and files that can link to resources at remote locations e.g. HTTP accessible resources), editors that expect to be working with files should be coded to support &lt;a href=&quot;http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/IStorageEditorInput.html&quot;&gt;IStorageEditorInput&lt;/a&gt;, and not just IFileEditorInput. All too often when developing editors the assumption is made that the editor is dealing with a local resource, and worse, often casts are made to IFileEditorInput. Remember that an &lt;span style=&quot;font-style: italic;&quot;&gt;editor is a viewer&lt;/span&gt; before it is anything else, a lot of the time the purpose of opening a file in its editor is purely to browse its contents. In fact, probably more than half of the time, when a file is opened in a editor, it is never updated, it is only read. IStorageEditorInput is the super interface of IFileEditorInput, and its API contract states: &lt;span style=&quot;font-style: italic;&quot;&gt;File-oriented editors should support this as a valid input type, and display its content for viewing (but not allow modification)&lt;/span&gt;. So if you are not supporting IStorageEditorInput properly, you are potentially failing to support a large number of use cases.</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2006/09/11.html#a57</guid>
			<pubDate>Mon, 11 Sep 2006 14:41:21 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=57&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F09%2F11.html%23a57</comments>
			</item>
		<item>
			<title>Refactoring SOA Artifacts - Part 1</title>
			<description>One of the key features that first hooked me on Eclipse was its (Java) refactoring capabilities. Refactoring is an indispensable tool in the Java code jockeys toolbox, and Eclipse makes it easy. The &lt;a href=&quot;http://www.eclipse.org/articles/Article-LTK/ltk.html&quot;&gt;Eclipse Language Toolkit&lt;/a&gt; (LTK) provides a framework within which to build refactorings.&lt;br&gt;&lt;br&gt;As we move into the realm of service-oriented programming, developing services that can be deployed on Enterprise Service Buses, I&apos;d like to see the same level of refactoring available for SOA artifacts. By SOA artifacts I mean things like WSDL, BPEL, deployment descriptors, as well as Java classes and other language files. At the detail level, the relationships between these artifacts can be complex.&lt;br&gt;&lt;br&gt;With WSDL described services, when the WSDL changes some refactoring often happens automatically i.e. tooling can regenerate the proxy code for a service when the WSDL describing the service changes. But beyond this kind of thing, more sophisticated refactoring is required. In fact, whether this refactoring is done explicitly by the user, or implicitly by the tooling reacting to changes in WSDL and automatically altering other artifacts, much of what needs to be done is the same.&lt;br&gt;&lt;br&gt;The use case I&apos;m starting with is a simple one. A BPEL script implements a service defined using WSDL. The BPEL script invokes another service also defined in WSDL. It should be possible to rename a portType operation by highlighting the operation in the WTP WSDL Editor in Eclipse, right clicking and choosing Refactor | Rename. I&apos;m considering both the cases of the service implemented and the service invoked. &lt;br&gt;&lt;br&gt;It is worth noting that the WSDL editor in Eclipse 3.2 provides a basic rename refactoring feature, but to date I think its pretty limited.&lt;br&gt;&lt;br&gt;The LTK provides a high level framework for refactoring, within which I&apos;m going to put the framework for SOA artifact refactoring. The basic steps are something like this:&lt;br&gt;&lt;br&gt;&lt;ol&gt;&lt;li&gt;Identify the refactoring the user wishes to perform e.g. renaming a WSDL portType operation.&lt;/li&gt;&lt;li&gt;Find all the projects and artifacts in the workspace that should be changed.&lt;/li&gt;&lt;li&gt;Perform the initial sanity check.&lt;/li&gt;&lt;li&gt;Ask the user for more information if necessary.&lt;/li&gt;&lt;li&gt;Calculate the changes required to each artifact.&lt;/li&gt;&lt;li&gt;Check that each artifact will still be valid after the changes.&lt;/li&gt;&lt;li&gt;Present the changes to the user for acceptance or alteration.&lt;/li&gt;&lt;li&gt;Commit the changes.&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;Lets have a look at a snippet from a really simple WSDL file, &lt;span style=&quot;font-style: italic;&quot;&gt;HelloWorld.wsdl&lt;/span&gt;, that shows an operation called &lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;sayHello&lt;/span&gt;:&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;wsdl:portType name=&quot;HelloWorld&quot;&gt;&lt;/wsdl:portType&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;wsdl:portType 
name=&quot;HelloWorld&quot;&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp; &amp;lt;wsdl:operation 
name=&quot;sayHello&quot;&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wsdl:input&amp;nbsp; 
message=&quot;tns:sayHelloRequest&quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wsdl:output 
message=&quot;tns:sayHelloResponse&quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp; 
&amp;lt;/wsdl:operation&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;/wsdl:portType&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;  &lt;wsdl:operation name=&quot;sayHello&quot;&gt;&lt;/wsdl:operation&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;wsdl:input message=&quot;tns:sayHelloRequest&quot;&gt;&lt;/wsdl:input&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;wsdl:output message=&quot;tns:sayHelloResponse&quot;&gt;&lt;/wsdl:output&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;/span&gt;&lt;br&gt;Lets suppose this WSDL operation has a SOAP binding. The operation name also appears in the binding and in the soapAction attribute in the binding:&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;wsdl:binding name=&quot;HelloWorldBinding&quot; type=&quot;tns:HelloWorld&quot;&gt;&lt;/wsdl:binding&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;wsdl:binding 
name=&quot;HelloWorldBinding&quot; type=&quot;tns:HelloWorld&quot;&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp; &amp;lt;soap:binding 
style=&quot;rpc&quot; transport=&quot;http://schemas.xmlsoap.org/soap/http&quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp; &amp;lt;wsdl:operation 
name=&quot;sayHello&quot;&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;soap:operation 
soapAction=&quot;cc:HelloWorldService:HelloWorld#sayHello&quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp; 
&amp;lt;/wsdl:operation&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;/wsdl:binding&amp;gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;As in the example, by convention message names often follow the form: &lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;operation&gt;Request&lt;/operation&gt;&lt;/span&gt;, &lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;operation&gt;Response&lt;/operation&gt;&lt;/span&gt;. It would be great if the user could choose to also rename these as an optional part of renaming the operation name.&lt;br&gt;&lt;br&gt;One of the Eclipse plugins I&apos;m going to develop will house the framework core. The implementations of the various parts of the framework can be contributed via extension points.&lt;br&gt;&lt;br&gt;Lets consider the problem of finding all the relevant artifacts and the projects that house them across the Eclipse workspace. While this first use case considers just WSDL and BPEL, the search-for-artifacts step, at a high level, is general enough. &lt;br&gt;&lt;br&gt;The job of the Artifact Finders is to find projects and their artifacts that require changing in response to the operation rename.&lt;br&gt;&lt;br&gt;Consider the case where the &lt;span style=&quot;font-style: italic;&quot;&gt;HelloWorld.wsdl&lt;/span&gt; file lives in one project, some projects have a link to it and others have a copy of it. The projects with a link to it are easy enough to find. Any projects that contain a file called &lt;span style=&quot;font-style: italic;&quot;&gt;HelloWorld.wsdl&lt;/span&gt; are also candidates, but just because one WSDL file has the same name as another does not mean they represent the same service, or the same version of the service. A trickier case again is where the WSDL file is indirectly referenced e.g. it is imported by another WSDL file, or referenced in a descriptor file. For these latter cases we may require some deep searching, which could be time consuming, so we need to bear that in mind.&lt;br&gt;&lt;br&gt;Artifact Finders are one element of the framework. The Artifact Finder interface will look something like this:&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;public interface IArtifactFinder {&lt;/span&gt;&lt;br style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;  public RefactoringParticipant[] findArtifacts(SOAArtifactRefactoringArguments args); &lt;/span&gt;&lt;br style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;}&lt;/span&gt;&lt;br style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;br&gt;And the extension point is defined like this: &lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;extension point=&quot;org.codecurl.soa.refactor.finders&quot;&gt;&lt;/extension&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;extension 
point=&quot;org.codecurl.soa.refactor.finders&quot;&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp; &amp;lt;artifact-finder 
&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; id=&quot;foo.id&quot; &lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name=&quot;Foo Refactor BPEL 
Artifact Finder&quot; &lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
class=&quot;org.codecurl.soa.refactor.finders.FooFinderImpl&quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;/extension&amp;gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;Lets look next at the changes required to the BPEL script, considering first the case where the BPEL service implements the interface defined by the &lt;span style=&quot;font-style: italic;&quot;&gt;HelloWorld.wsdl&lt;/span&gt; file. The variable definitions for the input and output messages may need be to changed (if the user has chosen to also rename the input and output message types):&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;bpws:variable name=&quot;sayHelloRequest&quot; messagetype=&quot;ns:sayHelloRequest&quot;&gt;&lt;/bpws:variable&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;bpws:variable 
name=&quot;sayHelloRequest&quot; messageType=&quot;ns:sayHelloRequest&quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;bpws:variable 
name=&quot;sayHelloResponse&quot; messageType=&quot;ns:sayHelloResponse&quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;bpws:variable name=&quot;sayHelloResponse&quot; messagetype=&quot;ns:sayHelloResponse&quot;&gt;&lt;/bpws:variable&gt;&lt;/span&gt;&lt;br&gt;For consistency, we should allow the user to rename the variables too if the message type names are changing. The receive starts the process:&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;bpws:receive partnerlink=&quot;HelloWorld&quot; porttype=&quot;ns:HelloWorld&quot;&gt;&lt;/bpws:receive&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;bpws:receive 
partnerLink=&quot;HelloWorld&quot; portType=&quot;ns:HelloWorld&quot;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp; operation=&quot;sayHello&quot; 
variable=&quot;sayHelloRequest&quot;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp; 
createInstance=&quot;yes&quot;&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;/bpws:receive&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;So the operation name is changing and maybe also the variable name. And the process ends with a reply:&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;bpws:reply partnerlink=&quot;HelloWorld&quot; porttype=&quot;ns:HelloWorld&quot;&gt;&lt;/bpws:reply&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;bpws:reply 
partnerLink=&quot;HelloWorld&quot; portType=&quot;ns:HelloWorld&quot;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp; operation=&quot;sayHello&quot; 
variable=&quot;sayHelloResponse&quot;&amp;gt; &lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;/bpws:reply&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;Again, the operation name and possibly the variable name will change.&lt;br&gt;&lt;br&gt;In the case where the BPEL process is invoking the &lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;HelloWorld&lt;/span&gt; service, we need to consider the invoke element. The operation name attribute value will change, and the &lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;inputVariable&lt;/span&gt; and &lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;outputVariable&lt;/span&gt; attribute values may change:&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;bpws:invoke partnerlink=&quot;HelloWorld&quot; porttype=&quot;ns:HelloWorld&quot;&gt;&lt;/bpws:invoke&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;bpws:invoke 
partnerLink=&quot;HelloWorld&quot; portType=&quot;ns:HelloWorld&quot;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp; operation=&quot;sayHello&quot; 
inputVariable=&quot;sayHelloRequest&quot;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp; 
outputVariable=&quot;sayHelloResponse&quot;&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;/bpws:invoke&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;br&gt;We need to set up the invoke call by populating the &lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;sayHelloRequest&lt;/span&gt; message, so we should look for assign elements that use the variables:&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;bpws:assign&gt;&lt;/bpws:assign&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;bpws:assign&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp; 
&amp;lt;bpws:copy&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;lt;bpws:from&amp;gt;&amp;lt;xs:string&amp;gt;Bob&amp;lt;/xs:string&amp;gt;&amp;lt;/bpws:from&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpws:to 
variable=&quot;sayHelloRequest&quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;nbsp;&amp;nbsp; 
&amp;lt;/bpws:copy&amp;gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 153); font-family: Courier;&quot;&gt;&amp;lt;/bpws:assign&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;span style=&quot;font-family: Courier; color: rgb(51, 0, 153);&quot;&gt;&lt;/span&gt;&lt;br&gt;Callbacks (onMessage) also need to be considered.&lt;br&gt;&lt;br&gt;One of things I want is APIs for refactoring the various models (WSDL, BPEL, whatever). I like to start with a &quot;perfect&quot; API for something like this, and then implement that with off the shelf components (like &lt;a href=&quot;http://sourceforge.net/projects/wsdl4j&quot;&gt;WSDL4J&lt;/a&gt;) and whatever additional code is required.&lt;br&gt;&lt;br&gt;Once I have the framework plugin working for this simple example, I will look at contributing to the appropriate Eclipse project/area. Maybe the &lt;a href=&quot;http://www.eclipse.org/stp/&quot;&gt;SOA Tools Platform&lt;/a&gt; and/or the LTK.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2006/08/18.html#a51</guid>
			<pubDate>Fri, 18 Aug 2006 07:29:26 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=51&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F08%2F18.html%23a51</comments>
			</item>
		<item>
			<title>CodeGrabbit Plugin</title>
			<description>There are a lot of blogs out there with a lot of useful stuff - code snippets, hints and tips, mini-tutorials and howtos on this open source component and that tool.&lt;br&gt;&lt;br&gt;Wouldn&apos;t it be great if, having come across a useful code snippet or component related howto, there was a way to insert the necessary bits directly into the Eclipse project you&apos;re working on. These bits might include Java classes, the latest jars for a component etc. I&apos;m imagining a plugin that could set all these artifacts up in the selected project, including making appropriate changes to the build properties and whatever, and some sort of server side descriptor that describes the artifacts in question and where to get them. So the blog entry would have a link to the descriptor.&lt;br&gt;&lt;br&gt;The only issue I see with this might be security, I guess some bad folks might put malicious components out there and create tempting blog entries to entice hapless programmers to download, build and run the latest whatever, but then steal their credit card details or something. This could probably be overcome with the usual trust/signing mechanisms - but that might be a bit too expensive/inconvenient for publishers. Not sure what the answer to this is, but I reckon this would be a great help for folks. &lt;br&gt;&lt;br&gt;So I suppose this is kind of a distributed, expert exchange, remote assist, write my code for me stylie thing :)&lt;br&gt;&lt;br&gt;If you think this is a good idea, let me know, and maybe we can start a project to build this.&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2006/06/11.html#a37</guid>
			<pubDate>Sun, 11 Jun 2006 09:54:28 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=37&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F06%2F11.html%23a37</comments>
			</item>
		<item>
			<title>Farewell PaceMetrics</title>
			<link>http://www.pacemetrics.com</link>
			<description>In a few days time I&apos;m finishing up at PaceMetrics, the company I&apos;ve been with for the last three years. Leaving Pace was a tough enough decision for me. I joined on an up curve just as the company was starting to build its fourth generation BAM (Business Activity Monitor), and winning a huge deal with a tier one investment bank. To deliver that project and productise it, I was lucky enough to quickly assemble one of the best software development teams I&apos;ve ever had. This team was world class, all experienced, seasoned, innovative, agile engineers. We had a really stellar project manager and business architect in &lt;a href=&quot;http://www.toolan.de/&quot;&gt;Colm Toolan&lt;/a&gt;, and a super professional services team, and the result was PaceMaker 4:&lt;br&gt; &lt;br&gt;- fully Java, J2EE (POJOs of course!) and JMS based, leveraging best-of-breed open source components and tools&lt;br&gt;- loosely coupled components communicating asynchronously using XML-based messagess&lt;br&gt;- a simple maven based build&lt;br&gt;- a super-scalable, fully reliable, and architecturally innovative BAM engine - thanks James :-)&lt;br&gt;- a scalable web front end built on some pretty cool caching technology&lt;br&gt;- enterprise ready monitoring and management through JMX from our own custom web based admin console&lt;br&gt;- Eclipse based tooling (courtesy of yours truely) &lt;br&gt;&lt;br&gt;Its been a great few years, but in the end I&apos;ve been tempted away by the shimmering lights of SOA and ESBs. I&apos;ll post more on that in a couple of days.&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2006/04/23.html#a33</guid>
			<pubDate>Sun, 23 Apr 2006 16:43:52 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=33&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F04%2F23.html%23a33</comments>
			</item>
		<item>
			<title>Mylar and the Way of the Task</title>
			<link>http://www.eclipse.org/mylar/</link>
			<description>If you&apos;re an Eclipse jockey and you have lots of different tasks on the go at the same time like me, especially if they span multiple projects, you may well need some special mylar care and attention. Mylar is a cool new Eclipse project that monitors your interaction with Eclipse creating a context specific to the current task. Switching from task A to task B closes everything for A and reopens all the stuff you were using for B. There are a bunch of other features like color coordinated task items. Mylar is a work in progress right now - the current 0.4 release seems to have made my rename refactoring very slow and broken a few other things, so its probably a bit early for most people. Could be great though.&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2005/09/23.html#a29</guid>
			<pubDate>Fri, 23 Sep 2005 10:01:50 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=29&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2005%2F09%2F23.html%23a29</comments>
			</item>
		<item>
			<title>Seeing the light behind Eclipse</title>
			<link>http://www.eclipse.org/</link>
			<description>Tools are a vital part of our lives. One of the tenants of good bush craft is build the tool first, then use it to do the work. Most outstanding enterprise software products feature outstanding tools. I&apos;m a big fan of good tooling, and a particular fan of Eclipse.&lt;br&gt;&lt;br&gt;If you are considering developing tools for the enterprise space look first at Eclipse. You would really need to have a very strong reason not to build on Eclipse - leveraging the various sub-projects and the tooling that is already out there should enable you to build functionally impressive and slick looking enterprise tools fast. Unless you are doing &quot;end user&quot; style browser based tools, Eclipse is the business.&lt;br&gt;&lt;br&gt;I find it astonishing that it took Borland so long to drop their own IDE platform in favour of Eclipse - as a Java developer I dropped JBuilder years ago, Swing was (and despite its advances really still is) too clunky on the Windows desktop. And look at BEA and BEA Workshop, they put a lot of effort into their own IDE framework, and it blew up in their faces. When Weblogic 8.0 launched the Eclipse juggernaut was already unstoppable. BEA had to rethink and back Eclipse. Just recently they bought M7 of NitroX studio fame. It is a pity those good folks over at JetBrains keep putting effort into their tooling platform - if they could just take the best out of IntelliJ IDEA, marry it with Eclipse, and switch all that talent to higher level value add, now that would be something. What can I say about Sun and NetBeans? If only Sun could get past that name, and do a little embrace and extend. Actually, I think Sun is a great company and you don&apos;t need me to tell you there is engineering talent to burn there, but sometimes that talent is misguided. But who knows, if NetBeans is the only competition left for Eclipse, then maybe its a good thing. Competition breeds innovation, and Eclipsers need to keep innovating. Thankfully the healthy development community involved with Eclipse, its subprojects etc., are showing every sign of doing so.&lt;br&gt;&lt;br&gt;One of the things I love about Eclipse - apart from all the (growing list of) tooling goodies you can reuse and extend - is SWT. In fact I&apos;m a total convert to SWT - I would rarely now choose Swing over it for rich client applications.&lt;br&gt;&lt;br&gt;Eclipse is one of those things - like Java, JavaEE (well, in some form anyway) and XML - that will most probably span many computing generations.</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2005/09/19.html#a28</guid>
			<pubDate>Mon, 19 Sep 2005 18:52:46 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=28&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2005%2F09%2F19.html%23a28</comments>
			</item>
		<item>
			<title>Offical Eclipse 3.0 FAQs</title>
			<link>http://www.eclipsefaq.org/chris/faq/</link>
			<description>I&apos;ve been doing quite a lot of Eclipse plugin development lately. If you are starting off with Eclipse and you find yourself asking &quot;how do I ... ?&quot; and &quot;shouldn&apos;t that be easy ... ?&quot; - and most of the time you really cannot find the kind of answers you&apos;re looking for in any online resource - check out Offical Eclipse 3.0 FAQs by John Arthorne &amp;amp; Chris Laffra. It will answer a lot of (if not quite all) your questions.&lt;br&gt;&lt;br&gt;Book wise, a good place to start is Erich Gamma and Kent Beck&apos;s Contributing to Eclipse: Principles, Patterns, and Plugins. It actually dates from Eclipse 2.1 and early 3.0 times, but despite this the principles are wholly relevant and well worth covering. Read this before getting into Eric Clayberg and Dan Rubel&apos;s Eclipse: Building Commercial Quality Plugins, which while worth the study, I felt definitely required the kind of fundamental background Gamma and Beck&apos;s book gives.&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2005/05/06.html#a22</guid>
			<pubDate>Sun, 05 Jun 2005 10:02:23 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=22&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2005%2F05%2F06.html%23a22</comments>
			</item>
		<item>
			<title>Eclipse RCP</title>
			<link>http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-ui-home/rcp-proposal/rich_client_platform_facilities.html</link>
			<description>

&lt;p class=&quot;MsoNormal&quot; style=&quot;font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;I understand there&apos;s going
to be a new Eclipse project, carved out from the current IDE, for building rich client applications using SWT and JFace.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;I&apos;ve spent a lot of my
development career building thick and creamy client apps for trading rooms
(InVision Advanced Workstation, +Arena) and (not so successfully) development
tools for next (read: never) generation interactive A/V content. I&apos;m a big fan
of Eclipse largely because of SWT.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;The idea of being able to
develop a native Java application that is at home on the windows desktop is
great. Add to this an OSGi based core, if the Eclipse &lt;a href=&quot;http://eclipse.org/equinox/&quot;&gt;Equinox&lt;/a&gt; subproject works
out, and you&apos;ve got dynamic module loading.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;I can see those next
generation financial workstations now, and the traders screaming blue murder as
the thing locks up as the garbage collection kicks in :) Just kidding guys, go
for it!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2004/01/26.html#a17</guid>
			<pubDate>Mon, 26 Jan 2004 18:12:33 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=17&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2004%2F01%2F26.html%23a17</comments>
			</item>
		<item>
			<title>Weblogic Workshop? I don&apos;t think so</title>
			<description>

&lt;p class=&quot;MsoNormal&quot; style=&quot;font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Have you seen the new
Weblogic Workshop released with Weblogic 8.0? Are you impressed by the flash
demo, cool graphics and seamless BPM workflow visual editor based development?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p style=&quot;font-family: Arial;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;I&apos;ve
just had quite a discussion with some of my companies product management
people. It was suggested we ditch the open source and open standards based
stuff we&apos;re using to build a major web application for a big customer we have,
in favour of this new workshop and &lt;st1:place w:st=&quot;on&quot;&gt;BEAs&lt;/st1:place&gt;
webflow technology. So right now we&apos;re using Eclipse for development, Struts,
Tiles, JSTL and EL. Hmmm, let me think about that for just a nanosecond - no
way dude! First of all, why didn&apos;t they just build on Eclipse? Why reinvent an
inferior, Swing-based (barf) IDE wheel? And all this jpd stuff is totally proprietary.
Even if BEA push to standardize some of this it&apos;ll be years before there are
other implementations (and it&apos;ll be different). I just can&apos;t see too many
people ditching Eclipse and best use open source for this. I guess BEA have
deep pockets, but I think this is a mistake.&lt;/span&gt;&lt;/p&gt;

</description>
			<guid>http://radio.weblogs.com/0146416/categories/eclipse/2003/12/18.html#a16</guid>
			<pubDate>Thu, 18 Dec 2003 21:02:18 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=16&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2003%2F12%2F18.html%23a16</comments>
			</item>
		</channel>
	</rss>
