Agile and scrum is getting more and more populair in the Oracle / Java world. Harald Walker started this group to share experiences with Agile and Scrum. See: http://groups.google.com/group/dutch-agile-user-group/
Weblog
Dutch Agile User Group (DOUG)
Using xml properties in Ant
Over at the Amis weblog Sjoerd Michels has posted some example code illustrating how you can read values from an xml document into ant: Using Ant to inspect Connection Properties in WSDL Files that are generated by Oracle SOA Suite Adapters . This can be very handy at times when you are automating deployment of for example esb projects in ant.
I recently solved a similar problem, but using some standard ant features. Actually, i just found this solution in a build file generated by jdeveloper for a bpel project, and used it to determine the guid of an esb component.
The definition of every esb component is stored in an xml document with the extension .esbsvc. Here’s an example of the first few lines of such a file:
<service name="RelatieServiceRouter"
guid="7BB43571367A11DCBFA3770D27346396"
qname="DefaultSystem.RelatieServiceRouter"
status="ENABLED"
serviceType="RoutingService"
typeDescription="Routing Service"
isWSDLEditable="false"
soapEndpointStatus="ENABLED" dirty="true">
<versioninfo>
<id>1186037612567</id>
If you want to undeploy an esb component you need the guid. Using xml properties you can easily determine the guid in ant:
<xmlproperty file="DefaultSystem_RelatieServiceRouter.esbsvc"/>
<property name="relatierouter.guid" value="${service(guid)}"/>
<undeploy -esb guid="${relatierouter.guid}"/>
As you can see, you can target specific elements and attributes in your xml document. It’s not as powerfull as xpath, but often it’s good enough to do the job. More info in the ant documentation: XmlProperty. Btw, Undeploy-esb is just a macro which calls an ant esb task to undeploy the esb entity.
Oracle documentation now with user comments
The documentation for Oracle RDBMS 11g enables users to leave comments. That’s an welcome improvement. I’ve always appreciated the user comments on the php and mysql documentation, as it often includes problems (and solutions) with common use cases. Most software documentation is a long list of “this is what we have, and here’s more of what we have”. But it’s usually the real life examples that help the most. I hope that the user comments on the Oracle documentation will prove to be just as useful.
Oracle Database 11g available for download
You can now download Oracle 11g for linux on OTN. It has grown quite a bit compared to 10gR2: 1.7Gb instead of 660 Mb. The documentation is here.
JSF: Partial Page Rendering hell
Case: Make a form with components rendering on the state of a af:selectBooleanCheckbox.
This is some standard functionality and shouldn’t be hard to implement. But sometimes you’re on the wrong track.
Example:
WRONG!!!
<h :form>
<af :selectBooleanCheckbox id="checkbox" text="Show / Hide"
value="#{test.chkState}" autoSubmit="true"
valueChangeListener="#{test.chkValueChange}"/>
<af
utputText value="Name" rendered="#{test.chkState}"
partialTriggers="checkbox"/>
<af :inputText value="#{test.name}" rendered="#{test.chkState}"
partialTriggers="checkbox"/>
</h>
When you put the partialTriggers on a not rendered component it couldn’t react on a partialtrigger because the component is’t rendered. The trick to make this thing work is to set the partial trigger on a parent component.
Like this:
<h :form>
<af :selectBooleanCheckbox id="checkbox" text="Show / Hide"
value="#{test.chkState}" autoSubmit="true"
valueChangeListener="#{test.chkValueChange}"/>
<af :panelForm partialTriggers="checkbox">
<af
utputText value="Name" rendered="#{test.chkState}"/>
<af :inputText value="#{test.name}" rendered="#{test.chkState}"/>
</af>
</h>
Suddenly everything works like is should.
