You just don’t draw so well.

Tiny Art Director

Tiny Art Director

Bill Zeman is an artist.  His daughter is the Tiny Art Director.  She tells him what to draw, he draws it, and she critiques it.  More often than not, she is not pleased.  She only occasionally destroys the artwork, which I guess must be sort of good for Bill’s ego.

Behold, Axe Cop, the most awesome comic ever!

Axe Cop

Axe Cop

Ethan Nicolle is a 29 year old comic artist/author.  Malachai Nicolle is his 5 year old brother.  Together, they produce Axe Cop.  Malachai writes the stories, and Ethan illustrates them.  If you’ve ever spent much time with or as a 5 year old boy, you already know where this will lead.  If not, I will tell you, it leads to the most awesome comic book ever written.

Invoking a Task via XPRESS in Sun’s Identity Manager 7.1

Occasionally, I’ve wanted to invoke an Identity Manager Task from within a rule in XPRESS. Here is a rule that will do that:

<Rule name="runTask">
    <RuleArgument name='taskName'/>
    <RuleArgument name='taskVariables'/>
    <RuleArgument name='execMode'/>
    
    <block>
        <defvar name='processView'>
            <new class='com.waveset.object.GenericObject'>
                <ref>taskVariables</ref>
            </new>
        </defvar>
        
        <invoke name='setId'>
            <ref>processView</ref>
            <s>Process</s>
        </invoke>
        
        <invoke name='put'>
            <ref>processView</ref>
            <s>task.process</s>
            <ref>taskName</ref>
        </invoke>
        
        <invoke name='put'>
            <ref>processView</ref>
            <s>task.taskName</s>
            <ref>taskName</ref>
        </invoke>
        
        <cond>
            <ref>execMode</ref>
            <invoke name='put'>
                <ref>processView</ref>
                <s>task.execMode</s>
                <ref>execMode</ref>
            </invoke>
        </cond>
        
        <invoke name='checkinView'>
            <rule name='getCallerSession'/>
            <ref>processView</ref>
            <null/>
        </invoke>
    </block>
</Rule>

And here is a sample invocation:

<rule name='runTask'>
    <argument name='taskName' value='myTask'/>
    <argument name='taskVariables'>
        <map>
            <s>taskArgument1</s>
            <ref>myVariable</ref>
            <s>taskArgument2</s>
            <s>String Data</s>
        </map>
    </argument>
    <argument name='execMode' value='async'/>
</rule>

The value of execMode should be one of the following:

sync
Specifies synchronous or foreground execution
async
Specifies asynchronous or background execution
asyncImmediate
Specifies asynchronous with immediate thread launch