Palmalex

my thoughts

Browsing Posts published by palmalex

I resigned from my job two month ago…

Just two days ago I finished my days as Bridge Consulting employee. Working for Bridge Consulting has been a great experience.

In my job there I leaded a team of beautiful people, I tried to give them my best… I always believe that, starting from raw, a person develop her personality throws the people that she meet during her life. Each time that you “meet” someone is a sort of check point, you compare your self with someone else, and if you open your mind the magic happen.

I hope that I gave them at least some subjects to discuss with them self. If the result of that is change something it will mean that I did a great job. I cannot tell if the change will trigger an improvement, I can only hope that. For sure they gave me a lot.

I have no regrets, but I know that we could make a lot of “Art” together.

I didn’t lost friends,they are still friends of mine, but I will miss working with them.

Last Minute

Last Minute

When you are going to implement a project, any kind of project, you have to do an estimation of the time that you need to finish it.

No matters how you are accurate, even if you overestimate the total time, there will be always the last minute.

I meet the “last minute” in almost all the projects that I managed for my Job: Information Technology Project.

Usually you are in the last minute when you are very close to the deadline of the project (the day before… it’s enough close, but can be closer) and something goes wrong:

  • A Bug in the software that you are going to delivery
  • A Bug in an infrastructure  component that you are using …
  • A misunderstanding of the requirements.

This is the evidence of one, and  perhaps the most famous Murphy’s Law:

Anything that can go wrong will go wrong.

This kind of situation happened, and you cannot do anything to avoid them, it’s very difficult maintain the calm: you can feel the scary of the failure on your neck.

If you are working within a team, this is the moment where you can measure the team cohesion, these situation are usually solved by a single member of the team… but not alone. The success of a project  depends on the team and its cohesion… to archive  a success you have to work hard to build the “Dream Team”.

php54hQsA

waste of money

Tomorrow I have to be at the polling station as teller for a referendum poll… I think that a referendum is the higher expression of the democracy, but in this case… it’s only a big waste of money…

The referendum question are 2+1, one to deprecate a law that permits to an elected politic to be candidate in a ballot during his/her mandate.

The others 1+1 question are related to the electoral law, the question are two because in Italy the parliament is composed by two assemblies, with different pool rules.

My polemic is not about the referendum as tool, but I do think that these kind of decision should be discussed into the parliament… where there are a lot of payed parliaments… payed to take decision; a referendum is a tool for question about the ethical subjects.

A pool require a lot of money: polling station, ballots paper, vigilance and tellers…

Edoardo in the garden

Edoardo in the garden

One of my favorite hobbies is take some photo with my Canon camera, and this is my favorite model: my son Edoardo.

Mule Workaround

Mule Workaround


Using Mule Community edition as ESB, sometimes is not so easy, using CXF endpoint in a message oriented way (proxy=true) is a mess, sometimes ago I was fighting with an integration that at some point had to invoke a web service deployed on an Web Methods integration server.

Unfortunately the WM integration server that I used doesn’t support the HTTP 1.1 specs, in particular the Transfer-Encoding: Chunked directive.

For the CXF outbound endpoint, it’s natural use this way to build the HTTP request as the message it’s a stream,
to obtain better performances especially with big payload. 

I tried to set up the CXF connector to doesn’t use this feature without lucky… very bad for an ESB, its main target is integrate.. also/especially for legacy systems.

After some session using tcpmon to sniff the request and a post on the community forum without any reply, I found a workaround… it’s not elegant but it works.

I added an additional bridge between the CXF outbound and the integration server.

Just to understand the problem, in my case the message arrived from a JMS queue, I transformed this message using XSLT then sent it to the WS. see the following Mule configuration fragment (I snipped the transformers) :

<service name="resumeWm">
			<inbound>
				<jms:inbound-endpoint name="job_in" queue="jobs_toResume_dev" synchronous="false">
					<transformers>
					</transformers>
					<response-transformers>
                                        </response-transformers>
				</jms:inbound-endpoint>
			</inbound>
			<echo-component></echo-component>
			<outbound>
				<pass-through-router>
					  <cxf:outbound-endpoint 
						applyTransformersToProtocol="false" 
						address="http://url" 
						proxy="true"   
						synchronous="true"
						>
					</cxf:outbound-endpoint>
				</pass-through-router>
			</outbound>
		</service>

I this way I wasn’t able to configure Mule and CXF to use only the HTTP1.0 specs… I tried to add a custom cxf.xml… but it seems to be ignored.

As ultima ratio I tried a workaround, I added a protocol bridge,hence instead of invoke directly the WS, I sent the messages on a VM queue using CXF, than I grab the message from the queue and using an http outbound endpoint I forwarded the message to the Integration service… using a simple http connector force HTTP1.0 it’s very easy. following the modified version :

<service name="resumeWm">
			<inbound>
				<jms:inbound-endpoint name="job_in" queue="jobs_toResume_dev" synchronous="false">
					<transformers>
					</transformers>
					<response-transformers>
                                        </response-transformers>
				</jms:inbound-endpoint>
			</inbound>
			<echo-component></echo-component>
			<outbound>
				<pass-through-router>
					  <cxf:outbound-endpoint 
						applyTransformersToProtocol="false" 
						address="vm://wmworkaround" 
						proxy="true"   
						synchronous="true"
						protocolConnector="vmConnector"
						>
					</cxf:outbound-endpoint>
				</pass-through-router>
			</outbound>
		</service>
 
		<service name="httpBridge">
		<inbound>
			<vm:inbound-endpoint address="vm://wmworkaround" connector-ref="vmConnector" synchronous="true"/>
		</inbound>
		<echo-component>
			<logging-interceptor/>
		</echo-component>
		<outbound>
			<pass-through-router>
			<http:outbound-endpoint address="http://url" synchronous="false">
				<mule-xml:xml-to-dom-transformer/>
				<property key="http.version" value="HTTP/1.0"/>
			</http:outbound-endpoint>
			</pass-through-router>
		</outbound>
		</service>

I verified this solution with TCPMON, and the request is HTTP1.0 compliant.