Quantcast
Channel: Ignite Realtime : Discussion List - Openfire Support
Viewing all articles
Browse latest Browse all 4596

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

$
0
0

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:  <prop><sub><sub2>value</sub2></sub></prop>
  4. edit openfire.xml to have my DB connection information
  5. 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.


Viewing all articles
Browse latest Browse all 4596

Trending Articles