Where can I find instructions on how to properly bootstrap an Openfire installation (automated install)

I’m adding in “Chat support” to our application. One aspect that I decided on pretty early was using Openfire as the XMPP server on the back-end. It’s going to be completely locked down (127.0.0.1) and only our application will be able to talk to it. I got this all working just as I’d like and now I’m tasking myself with scripting the install. After reading some of the documentation (openfire.xml, etc) it seemed straight forward:

  1. Install RPM
  2. Copy desired plugins to plugins/ folder
  3. edit openfire.xml to include all my properties that I’d like bootstrapped in
  • Using this style: value
  1. edit openfire.xml to have my DB connection information
  2. edit /etc/sysconfig/openfire for things like “run as” user, etc

This seems very straight forward. The problem is, the vast majority of the properties that I defined in openfire.xml did NOT get bootstrapped into the database. I have no idea why. There’s no apparent rhyme or reason. Take this block (pardon the formatting, it’s not copying well):

<jive>
   ...  normal stuff, db connection info, etc ...
   <provider>
   <auth>
   <className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>
   </auth>
   <group>
   <className>org.jivesoftware.openfire.group.JDBCGroupProvider</className>
   </group>
   <user>
   <className>org.jivesoftware.openfire.user.JDBCUserProvider</className>
   </user>
   </provider>
   <admin>
   <authorizedUsernames>securelink</authorizedUsernames>
   </admin>
   <jdbcAuthProvider>
   <passwordSQL>SELECT MD5(passwd) FROM cfg_user WHERE userid=?</passwordSQL>
   <passwordType>plain</passwordType>
   </jdbcAuthProvider>
   <jdbcGroupProvider>
   <groupCountSQL>SELECT count(*) FROM cfg_user_group</groupCountSQL>
   <allGroupsSQL>SELECT name FROM cfg_user_group</allGroupsSQL>
   <userGroupsSQL>SELECT ug.name FROM cfg_user_group ug JOIN cfg_usergroup_bind ugb ON ugb.groupid=ug.groupid WHERE ugb.userid=?</userGroupsSQL>
   <descriptionSQL>SELECT description FROM cfg_user_group WHERE name=?</descriptionSQL>
   <loadMembersSQL>SELECT ugb.userid FROM cfg_user_group ug JOIN cfg_usergroup_bind ugb ON ugb.groupid=ug.groupid WHERE ugb.adminuser=0 AND ug.name=?</loadMembersSQL>
   <loadAdminsSQL>SELECT ugb.userid FROM cfg_user_group ug JOIN cfg_usergroup_bind ugb ON ugb.groupid=ug.groupid WHERE ugb.adminuser=1 AND ug.name=?</loadAdminsSQL>
   <useConnectionProvider>true</useConnectionProvider>
   </jdbcGroupProvider>
   <jdbcUserProvider>
   <loadUserSQL>SELECT name,email FROM cfg_user WHERE userid=? and status=0</loadUserSQL>
   <userCountSQL>SELECT COUNT(*) FROM cfg_user WHERE status=0</userCountSQL>
   <allUsersSQL>SELECT userid FROM cfg_user WHERE status=0</allUsersSQL>
   <searchSQL>SELECT userid FROM cfg_user WHERE status=0</searchSQL>
   <usernameField>userid</usernameField>
   <nameField>name</nameField>
   <emailField>email</emailField>
   <useConnectionProvider>true</useConnectionProvider>
   </jdbcUserProvider>
</jive>

Upon the first startup, only some ofthe values are imported into the database while others are left alone:

<provider>
    <group>
      <className>org.jivesoftware.openfire.group.JDBCGroupProvider</className>
    </group>
  </provider>
  <jdbcGroupProvider>
    <groupCountSQL>SELECT count(*) FROM cfg_user_group</groupCountSQL>
    <allGroupsSQL>SELECT name FROM cfg_user_group</allGroupsSQL>
    <userGroupsSQL>SELECT ug.name FROM cfg_user_group ug JOIN cfg_usergroup_bind ugb ON ugb.groupid=ug.groupid WHERE ugb.userid=?</userGroupsSQL>
    <descriptionSQL>SELECT description FROM cfg_user_group WHERE name=?</descriptionSQL>
    <loadMembersSQL>SELECT ugb.userid FROM cfg_user_group ug JOIN cfg_usergroup_bind ugb ON ugb.groupid=ug.groupid WHERE ugb.adminuser=0 AND ug.name=?</loadMembersSQL>
    <loadAdminsSQL>SELECT ugb.userid FROM cfg_user_group ug JOIN cfg_usergroup_bind ugb ON ugb.groupid=ug.groupid WHERE ugb.adminuser=1 AND ug.name=?</loadAdminsSQL>
    <useConnectionProvider>true</useConnectionProvider>
  </jdbcGroupProvider>
  <jdbcUserProvider>
    <useConnectionProvider>true</useConnectionProvider>
  </jdbcUserProvider>

It’s almost like the .xml values have a “well, maybe we’ll bootstrap” configuration setting. How is a user supposed to handle this? Where can I figure out which properties can be bootstrapped and which can not be? Should I just simply do a .sql dump instead of attempting to use the openfire.xml injection? (PS, I’ve tried this and it doesn’t appear this work - again, no rhyme or reason - values were taken from a working system)

Any help or direction is appreciated. Thanks in advance.