require 'java'

require '/usr/local/openfire/lib/openfire.jar'
require '/usr/local/openfire/lib/mysql.jar'

include_class 'java.util.Date'

# Always set the home directory of the server before anything else!
include_class 'org.jivesoftware.util.JiveGlobals'
JiveGlobals.setHomeDirectory "/usr/local/openfire"
# org.jivesoftware.openfire.user
include_class 'org.jivesoftware.openfire.user.DefaultUserProvider'
include_class 'org.jivesoftware.openfire.user.User'
include_class 'org.jivesoftware.openfire.user.UserManager'
# org.jivesoftware.util
include_class 'org.jivesoftware.util.Log'

dup = DefaultUserProvider.new
# user = dup.createUser("micpringle", "password", "Mic Pringle", "micpringle@dotmic.com") -> java.lang.NoClassDefFoundError: javax/mail/internet/AddressException (NativeException)
# deleteUser, not tested
puts dup.getSearchFields
puts dup.getUserCount
puts dup.getUsernames
# puts dup.getUsers -> Exception in thread "main" java.lang.ExceptionInInitializerError, Caused by: java.lang.NullPointerException
puts dup.isEmailRequired
puts dup.isNameRequired
puts dup.isReadOnly
# user = dup.loadUser "admin" -> org/jivesoftware/openfire/user/UserManager.java:52:in `getUserProvider': java.lang.ExceptionInInitializerError: null (NativeException), Caused by: java.lang.NullPointerException
# dup.setCreationDate "admin", Date.new -> org/jivesoftware/openfire/user/DefaultUserProvider.java:334:in `setCreationDate': java.lang.NoClassDefFoundError: javax/mail/internet/AddressException (NativeException)
dup.setEmail "admin", "admin@admin.com"
# dup.setModificationDate "admin", Date.new -> org/jivesoftware/openfire/user/DefaultUserProvider.java:356:in `setModificationDate': java.lang.NoClassDefFoundError: javax/mail/internet/AddressException (NativeException)
dup.setName "admin", "admin"
