Adding New RIM Type Guide

This document describes how to update project code in order to support a new type when a new version of RIM becomes available:

Updating XML Schema

  • Update rim.xsd
  • validate with a Schema validator such as XML Spy. Multiple validators are suggested as compliance to XML Schema standard varies across tools. I have had good luck with XML Spy.

Update JAXB Bindings

  • In ebxmlrr-spec module run following targets: clean, bindingsv3, compile, doc, dist
  • Copy src jar to web site so developers have access to it:

    • scp /home/najmi/osws-v3/ebxmlrr-spec/build/lib/oasis-regrep-src.jar
  • Copy jars to omar/misc/lib:
    • cp /home/najmi/osws-v3/ebxmlrr-spec/build/lib/oasis-regrep*.jar ../omar/misc/lib

Update SQL Bindings

  • Update conf/database/database.sql.template for table and indexes. Dont forget views. Make sure to generate new UUID for objectType
  • Update conf/database/<database> files (all of them) for check.<tablename>

Update Canonical and Demo Data (minDB, demoDB)

  • Update misc/samples/minDB/SubmitObjectsRequest_ObjectTypeScheme.xml. Make sure nesting reflects OO hierarchy
  • Add demo data: Usually in misc/samples/demoDB/SubmitObjectsRequest_Organization.xml

Update Common Code

  • Update BindingUtility to add new constant for objectType

Update Server Code

  • Update DAO classes:
    • Update following methods in SQLPersistenceManagerImpl for new type: sortRegistryObjects, insert, update, getObjects
    • Update following methods in RegistryObjectDAO for new type: getRegistryObjectsIdsFromResultSet, getObjectsHetero

Test Server Side

  • Do a clean build and deploy: ant clean, compile, deploy
  • Build demodb: ant cleandb, createDemoDB
  • Check DB and make sure that new class and its demo data has been loaded correctly: I use SquirrelDB GUI tool

Update Client Code

  • Add new class to JAXR provider code: For RIM type Foo add org.freebxml.omar.client.xml.registry.infomodel.FooImpl class
  • Update following methods in BulkResponseImpl for new class: processSqlQueryResult
  • Add new xxPanel class in RegistryBrowser: For RIM type Foo add org.freebxml.omar.client.ui.swing.FooPanel class