Showing posts with label work. Show all posts
Showing posts with label work. Show all posts

Friday, March 20, 2009

Some Particulars like Room Names in Aflexi

This is truly a random post. During the lunch time at Full House (NZX), I talked about red-tape/bureaucracy in corporates that I can't stand, then exchanges of some Oz slangs.

When I got back to the office, I came across a blog titled "101 Guide to going to the Men's toilet in Sydney" in my ex-company's internal blog (we still maintain a good relationship basically).

Here're a number of things I raised and discussed over in a meeting an hour ago with the team:
  1. The developer's roster, tasks and deadlines.
  2. The right ways to use the toilet.
  3. The ashtray pot and your ciggy.
  4. The cups and basin.
  5. The room names.
Items 2 to 4 are small particulars but people neglect or find themselves resistant in conforming to social standards, if that're the right words to use, anyway. The Aflexi devhub in PJ, Taman Megah Emas (which I named it Aflexi Gold a while ago), has quite a number of rooms and 3 toilets. I'm thinking of giving them names (since 2 months ago but things got me stuck), like country's, city's, etc.

How're rooms named in your office?

Friday, June 6, 2008

Some Status Update

Haven't been blogging much as I have been busy with some stuff lately, although I have been heavily blogging in CustomWare's intranet, like one blog or two blogs per day. This is a quick blog to update you about what I'm up to these days.

We, the Malaysian Java User Group, just had a meeting two weeks back and we want to keep this momentum up. Naresh has volunteered himself to speak on Spring and what we have to do right now is to bake when and where it will be.

The Malaysian Flex User Group had a "write a review for Flex builder 3 and win a free license" event not too long ago. I got one. :) Here is the review.

yc

Friday, April 11, 2008

BridgeComponent.. OMG

In Mule, BridgeComponent is the root of a lot of evil if you do not pay enough of attention, for instance, you might be wondering why interceptor was not working then realized that BridgeComponent was the culprit!

What is a BridgeComponent? According to the API documentation:

The BridgeComponent is a standard Mule component that enables a bridge between an inbound and outbound endpoints. Transformers can be used on the endpoints to convert the data being received in order to 'bridge' from one endpoint transport to another.

When the BridgeComponent is used, it configures itself so that it will not actually be invoked, instead it tells Mule to bypass invocation of the component, which has a slight performance improvement. Note that because the component is never actually invoked any interceptors configured on the component will not be invoked either.


It is an implementation of the Messaging Bridge pattern in integration. A messaging bridge is responsible to connect two different channels, it is smart because it has a big list of channel adapters.

Fair enough, the API documentation has warned you about interceptor. It's all your fault if you did not read it.

I had been working on a response router problem since morning, scratching my head since then, and in the end realized that the culprit of my unexpectation was the BridgeComponent. What is a response router? Basically, in Mule, a response router is used for request-reply scenario, where a request will be blocked until a response is formed (usually using an aggregator) from results of asynchronous calls. But what is the problem? When my client sent a request to Mule, it received a null response straight after the invocation, before the asynchronous calls were ever made.

I had done a lot of debugging, drilling into the code to find out which part that I could have missed out, perhaps it would just be a missing property? Yes, there was a lot of WTFs. Until I did a full code search on "*ResponseRouter" and noticed that DefaultMuleProxy was in the results..

What had happened? The DefaultMuleProxy is a proxy to a UMO component and it handles its lifecycle (start/stop), interceptors and message routing (which includes response router). When you use a BridgeComponent, request will be forwarded from the inbound to the outbound directly without invoking the UMO component, and thus the response router part will not be not taken care. As Mule dispatches messages asynchronously if ReplyTo is detected at the outbound, a null response will be returned. This explains why I was getting a null response.

So, please take note when you are using BridgeComponent!

- yc