use of org.jivesoftware.openfire.XMPPServer in project Openfire by igniterealtime.
the class UserManagerTest method setUp.
@Before
public void setUp() throws Exception {
Fixtures.clearExistingProperties();
// Ensure the cache's are cleared
CacheFactory.createCache("User").clear();
CacheFactory.createCache("Remote Users Existence").clear();
// Use the stub user provider, and a very short timeout
JiveGlobals.setProperty("provider.user.className", Fixtures.StubUserProvider.class.getName());
JiveGlobals.setProperty("usermanager.remote-disco-info-timeout-seconds", "0");
final XMPPServer xmppServer = Fixtures.mockXMPPServer();
iqRouter = xmppServer.getIQRouter();
userManager = new UserManager(xmppServer);
userManager.createUser(USER_ID, "change me", "Test User Name", "test-email@example.com");
userManager.createUser(USER_ID_2, "change me", "Test User Name 2", "test-email-2@example.com");
XMPPServer.setInstance(xmppServer);
}
use of org.jivesoftware.openfire.XMPPServer in project Openfire by igniterealtime.
the class UpdateManager method getServerUpdateRequest.
private String getServerUpdateRequest() {
XMPPServer server = XMPPServer.getInstance();
Element xmlRequest = docFactory.createDocument().addElement("version");
// Add current openfire version
Element openfire = xmlRequest.addElement("openfire");
openfire.addAttribute("current", server.getServerInfo().getVersion().getVersionString());
return xmlRequest.asXML();
}
use of org.jivesoftware.openfire.XMPPServer in project Openfire by igniterealtime.
the class RayoComponent method createIQHandlers.
private void createIQHandlers() {
XMPPServer server = XMPPServer.getInstance();
onHookIQHandler = new OnHookIQHandler();
server.getIQRouter().addHandler(onHookIQHandler);
offHookIQHandler = new OffHookIQHandler();
server.getIQRouter().addHandler(offHookIQHandler);
privateIQHandler = new PrivateIQHandler();
server.getIQRouter().addHandler(privateIQHandler);
publicIQHandler = new PublicIQHandler();
server.getIQRouter().addHandler(publicIQHandler);
muteIQHandler = new MuteIQHandler();
server.getIQRouter().addHandler(muteIQHandler);
unmuteIQHandler = new UnmuteIQHandler();
server.getIQRouter().addHandler(unmuteIQHandler);
holdIQHandler = new HoldIQHandler();
server.getIQRouter().addHandler(holdIQHandler);
recordIQHandler = new RecordIQHandler();
server.getIQRouter().addHandler(recordIQHandler);
pauseRecordIQHandler = new PauseRecordIQHandler();
server.getIQRouter().addHandler(pauseRecordIQHandler);
resumeRecordIQHandler = new ResumeRecordIQHandler();
server.getIQRouter().addHandler(resumeRecordIQHandler);
sayIQHandler = new SayIQHandler();
server.getIQRouter().addHandler(sayIQHandler);
pauseSayIQHandler = new PauseSayIQHandler();
server.getIQRouter().addHandler(pauseSayIQHandler);
resumeSayIQHandler = new ResumeSayIQHandler();
server.getIQRouter().addHandler(resumeSayIQHandler);
acceptIQHandler = new AcceptIQHandler();
server.getIQRouter().addHandler(acceptIQHandler);
answerIQHandler = new AnswerIQHandler();
server.getIQRouter().addHandler(answerIQHandler);
dialIQHandler = new DialIQHandler();
server.getIQRouter().addHandler(dialIQHandler);
hangupIQHandler = new HangupIQHandler();
server.getIQRouter().addHandler(hangupIQHandler);
redirectIQHandler = new RedirectIQHandler();
server.getIQRouter().addHandler(redirectIQHandler);
dtmfIQHandler = new DtmfIQHandler();
server.getIQRouter().addHandler(dtmfIQHandler);
}
use of org.jivesoftware.openfire.XMPPServer in project Openfire by igniterealtime.
the class UserCreationPlugin method populateRosters.
public void populateRosters(String userPrefix, int from, int total, int usersPerRoster) {
XMPPServer server = XMPPServer.getInstance();
RosterManager rosterManager = server.getRosterManager();
int batchTotal = total / usersPerRoster;
System.out.println("Total batches of users: " + batchTotal);
for (int batchNumber = 0; batchNumber < batchTotal; batchNumber++) {
System.out.println("Current batch: " + batchNumber + ". Users: " + batchNumber * usersPerRoster + " - " + ((batchNumber * usersPerRoster) + usersPerRoster));
// Add rosters items between connected users
for (int i = (batchNumber * usersPerRoster) + from; i < (batchNumber * usersPerRoster) + usersPerRoster + from; i++) {
String username = userPrefix + i;
Roster roster;
try {
roster = rosterManager.getRoster(username);
} catch (UserNotFoundException e) {
continue;
}
if (roster.getRosterItems().size() >= usersPerRoster) {
// Roster already populated. Skip it.
continue;
}
for (int j = (batchNumber * usersPerRoster) + from; j < (batchNumber * usersPerRoster) + usersPerRoster + from; j++) {
if (i == j) {
continue;
}
try {
Roster recipientRoster = rosterManager.getRoster(userPrefix + j);
manageSub(server.createJID(userPrefix + j, null), true, Presence.Type.subscribe, roster);
manageSub(server.createJID(username, null), false, Presence.Type.subscribe, recipientRoster);
manageSub(server.createJID(userPrefix + j, null), true, Presence.Type.subscribed, roster);
manageSub(server.createJID(username, null), false, Presence.Type.subscribed, recipientRoster);
} catch (UserNotFoundException e) {
// Ignore
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
System.out.println("Rosters populated with " + usersPerRoster + " contacts.");
}
use of org.jivesoftware.openfire.XMPPServer in project Openfire by igniterealtime.
the class UserManager method isRegisteredUser.
/**
* Returns true if the specified JID belongs to a local or remote registered user. For
* remote users (i.e. domain does not match local domain) a disco#info request is going
* to be sent to the bare JID of the user.
*
* @param user to JID of the user to check it it's a registered user.
* @return true if the specified JID belongs to a local or remote registered user.
*/
public boolean isRegisteredUser(JID user) {
XMPPServer server = XMPPServer.getInstance();
if (server.isLocal(user)) {
try {
getUser(user.getNode());
return true;
} catch (UserNotFoundException e) {
return false;
}
} else {
// Look up in the cache using the full JID
Boolean isRegistered = remoteUsersCache.get(user.toString());
if (isRegistered == null) {
// Check if the bare JID of the user is cached
isRegistered = remoteUsersCache.get(user.toBareJID());
if (isRegistered == null) {
// No information is cached so check user identity and cache it
// A disco#info is going to be sent to the bare JID of the user. This packet
// is going to be handled by the remote server.
IQ iq = new IQ(IQ.Type.get);
iq.setFrom(server.getServerInfo().getXMPPDomain());
iq.setTo(user.toBareJID());
iq.setChildElement("query", "http://jabber.org/protocol/disco#info");
// Send the disco#info request to the remote server. The reply will be
// processed by the IQResultListener (interface that this class implements)
server.getIQRouter().addIQResultListener(iq.getID(), this);
synchronized (user.toBareJID().intern()) {
server.getIQRouter().route(iq);
// Wait for the reply to be processed. Time out in 1 minute.
try {
user.toBareJID().intern().wait(60000);
} catch (InterruptedException e) {
// Do nothing
}
}
// Get the discovered result
isRegistered = remoteUsersCache.get(user.toBareJID());
if (isRegistered == null) {
// Disco failed for some reason (i.e. we timed out before getting a result)
// so assume that user is not anonymous and cache result
isRegistered = Boolean.FALSE;
remoteUsersCache.put(user.toString(), isRegistered);
}
}
}
return isRegistered;
}
}
Aggregations