The Codeless Code: Case 195 The Magician's Code
======
A monk of the Elephant's Footprint Clan found that his new
service method was failing to update the database, although
no exceptions were thrown. He sought the help of Java master
Bawan.
After a brief investigation, Bawan declared, “Your Service’s
auto-generated proxy object is not committing the
transaction because the Transactional annotation was placed
on a private helper method, instead of on the public
interface method which calls it.”
“I do not understand,” said the monk. “What is this ‘proxy
object’ that you speak of?”
Bawan eyed the monk suspiciously. “Describe to me how
commits and rollbacks are done by the AOP framework.”
The monk shrugged. “They are done automatically.”
Bawan smacked the monk on the head. “If I ask you how the
Emperor’s magician makes rabbits disappear, will you answer:
‘by magic’? Think before speaking, or I will show you how I
make monks disappear.”
The monk rubbed his head. “Should we not expect a
third-party framework to liberate us from the need to know
its internals? What of the Principle of the Black Box?”
Bawan reached behind the monk’s left ear, produced a wooden
spoon out of thin air, and hit the monk with that too. “When
a rabbit is placed inside the Black Box and vanishes on cue,
it is the audience’s privilege to simply ooh and aah in
wonderment. But we who step on stage should know how the
trick is done. The loss of innocence is the price of
applause.”