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
farrukh_najmi@ebxmlrr.sourceforge.net:/home/groups/e/eb/ebxmlrr/htdocs/tmp
- 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>-filter.properties 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
Wrapup
Links