Include libs and dedicated server
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@505 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
338f2c1c42
commit
f37219cfbf
13 changed files with 94 additions and 1 deletions
84
src/jrummikub/server/DedicatedServer.java
Normal file
84
src/jrummikub/server/DedicatedServer.java
Normal file
|
@ -0,0 +1,84 @@
|
|||
package jrummikub.server;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
|
||||
import org.apache.vysper.mina.TCPEndpoint;
|
||||
import org.apache.vysper.storage.OpenStorageProviderRegistry;
|
||||
import org.apache.vysper.xmpp.addressing.Entity;
|
||||
import org.apache.vysper.xmpp.authorization.UserAuthorization;
|
||||
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.MUCModule;
|
||||
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.storage.InMemoryOccupantStorageProvider;
|
||||
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.storage.InMemoryRoomStorageProvider;
|
||||
import org.apache.vysper.xmpp.modules.roster.persistence.MemoryRosterManager;
|
||||
import org.apache.vysper.xmpp.server.XMPPServer;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class DedicatedServer {
|
||||
String serverPassword;
|
||||
String hostName;
|
||||
|
||||
public DedicatedServer(String serverPassword) {
|
||||
this.serverPassword = serverPassword;
|
||||
try {
|
||||
InetAddress addr = InetAddress.getLocalHost();
|
||||
hostName = addr.getCanonicalHostName();
|
||||
} catch (Exception e) {
|
||||
hostName = "localhost";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String getHostName() {
|
||||
return hostName;
|
||||
}
|
||||
|
||||
public void start() throws Exception {
|
||||
XMPPServer server = new XMPPServer(hostName);
|
||||
|
||||
OpenStorageProviderRegistry providerRegistry = new OpenStorageProviderRegistry();
|
||||
providerRegistry.add(new ServerPasswordAuthorization());
|
||||
providerRegistry.add(new MemoryRosterManager());
|
||||
providerRegistry.add(new InMemoryRoomStorageProvider());
|
||||
providerRegistry.add(new InMemoryOccupantStorageProvider());
|
||||
|
||||
server.setStorageProviderRegistry(providerRegistry);
|
||||
server.addEndpoint(new TCPEndpoint());
|
||||
|
||||
server.setTLSCertificateInfo(
|
||||
getClass().getResource(
|
||||
"/jrummikub/resource/bogus_mina_tls.cert").openStream(),
|
||||
"boguspw");
|
||||
|
||||
server.start();
|
||||
MUCModule muc = new MUCModule("play");
|
||||
server.addModule(muc);
|
||||
|
||||
}
|
||||
|
||||
public class ServerPasswordAuthorization implements UserAuthorization {
|
||||
@Override
|
||||
public boolean verifyCredentials(Entity entity, String password,
|
||||
Object credentials) {
|
||||
return password.equals(serverPassword);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean verifyCredentials(String entity, String password,
|
||||
Object credentials) {
|
||||
return password.equals(serverPassword);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
DedicatedServer server = new DedicatedServer("password");
|
||||
System.out.println("Server hostname is " + server.getHostName());
|
||||
try {
|
||||
server.start();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue