diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server')
-rw-r--r-- | plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/BuddyAdmin.java | 40 | ||||
-rw-r--r-- | plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerBuddy.java (renamed from plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/Buddy.java) | 12 | ||||
-rw-r--r-- | plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerSession.java (renamed from plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/BuddySession.java) | 30 | ||||
-rw-r--r-- | plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/BuddiesServerProtocol.java | 10 | ||||
-rw-r--r-- | plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/LoadAccountIndication.java | 4 | ||||
-rw-r--r-- | plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/OpenSessionIndication.java | 14 |
6 files changed, 61 insertions, 49 deletions
diff --git a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/BuddyAdmin.java b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/BuddyAdmin.java index 8a1c9a5a23..7fb80f7ca1 100644 --- a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/BuddyAdmin.java +++ b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/BuddyAdmin.java @@ -12,14 +12,14 @@ package org.eclipse.net4j.buddies.internal.server; import org.eclipse.net4j.IChannel; import org.eclipse.net4j.IProtocol; -import org.eclipse.net4j.buddies.internal.protocol.BuddyAccount; +import org.eclipse.net4j.buddies.internal.protocol.Account; import org.eclipse.net4j.buddies.internal.protocol.BuddyStateNotification; import org.eclipse.net4j.buddies.internal.server.bundle.OM; import org.eclipse.net4j.buddies.internal.server.protocol.BuddyRemovedNotification; -import org.eclipse.net4j.buddies.protocol.IBuddyAccount; +import org.eclipse.net4j.buddies.protocol.IAccount; +import org.eclipse.net4j.buddies.protocol.ISession; import org.eclipse.net4j.buddies.protocol.IBuddyStateChangedEvent; import org.eclipse.net4j.buddies.server.IBuddyAdmin; -import org.eclipse.net4j.buddies.server.IBuddySession; import org.eclipse.net4j.internal.util.lifecycle.Lifecycle; import org.eclipse.net4j.internal.util.om.trace.ContextTracer; import org.eclipse.net4j.util.ObjectUtil; @@ -40,33 +40,33 @@ public class BuddyAdmin extends Lifecycle implements IBuddyAdmin, IListener private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, BuddyAdmin.class); - private Map<String, IBuddyAccount> accounts = new HashMap<String, IBuddyAccount>(); + private Map<String, IAccount> accounts = new HashMap<String, IAccount>(); - private Map<String, IBuddySession> sessions = new HashMap<String, IBuddySession>(); + private Map<String, ISession> sessions = new HashMap<String, ISession>(); public BuddyAdmin() { LifecycleUtil.activate(this); } - public Map<String, IBuddyAccount> getAccounts() + public Map<String, IAccount> getAccounts() { return accounts; } - public Map<String, IBuddySession> getSessions() + public Map<String, ISession> getSessions() { return sessions; } - public synchronized IBuddySession openSession(IChannel channel, String userID, String password) + public synchronized ISession openSession(IChannel channel, String userID, String password) { if (sessions.containsKey(userID)) { return null; } - IBuddyAccount account = accounts.get(userID); + IAccount account = accounts.get(userID); if (account != null) { if (!account.authenticate(password)) @@ -76,14 +76,14 @@ public class BuddyAdmin extends Lifecycle implements IBuddyAdmin, IListener } else { - account = new BuddyAccount(userID, password); + account = new Account(userID, password); accounts.put(userID, account); } - Buddy buddy = new Buddy(account); + ServerBuddy buddy = new ServerBuddy(account); buddy.addListener(this); - BuddySession session = new BuddySession(channel, buddy); + ServerSession session = new ServerSession(channel, buddy); ((IProtocol)channel.getReceiveHandler()).setInfraStructure(session); sessions.put(userID, session); @@ -94,21 +94,21 @@ public class BuddyAdmin extends Lifecycle implements IBuddyAdmin, IListener public void notifyEvent(IEvent event) { - if (event.getSource() instanceof BuddySession) + if (event.getSource() instanceof ServerSession) { if (event instanceof ILifecycleEvent) { if (((ILifecycleEvent)event).getKind() == ILifecycleEvent.Kind.DEACTIVATED) { - String userID = ((BuddySession)event.getSource()).getBuddy().getUserID(); + String userID = ((ServerSession)event.getSource()).getSelf().getUserID(); synchronized (this) { - BuddySession removed = (BuddySession)sessions.remove(userID); + ServerSession removed = (ServerSession)sessions.remove(userID); if (removed != null) { removed.removeListener(this); - removed.getBuddy().removeListener(this); - for (IBuddySession session : sessions.values()) + removed.getSelf().removeListener(this); + for (ISession session : sessions.values()) { try { @@ -124,18 +124,18 @@ public class BuddyAdmin extends Lifecycle implements IBuddyAdmin, IListener } } } - else if (event.getSource() instanceof Buddy) + else if (event.getSource() instanceof ServerBuddy) { if (event instanceof IBuddyStateChangedEvent) { IBuddyStateChangedEvent e = (IBuddyStateChangedEvent)event; synchronized (this) { - for (IBuddySession session : sessions.values()) + for (ISession session : sessions.values()) { try { - if (!ObjectUtil.equals(session.getBuddy(), e.getBuddy())) + if (!ObjectUtil.equals(session.getSelf(), e.getBuddy())) { new BuddyStateNotification(session.getChannel(), e.getBuddy().getUserID(), e.getNewState()).send(); } diff --git a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/Buddy.java b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerBuddy.java index ec3e66cbb9..22f70b3121 100644 --- a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/Buddy.java +++ b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerBuddy.java @@ -10,17 +10,17 @@ **************************************************************************/ package org.eclipse.net4j.buddies.internal.server; -import org.eclipse.net4j.buddies.internal.protocol.AbstractBuddy; -import org.eclipse.net4j.buddies.protocol.IBuddyAccount; +import org.eclipse.net4j.buddies.internal.protocol.Buddy; +import org.eclipse.net4j.buddies.protocol.IAccount; /** * @author Eike Stepper */ -public class Buddy extends AbstractBuddy +public class ServerBuddy extends Buddy { - private IBuddyAccount account; + private IAccount account; - public Buddy(IBuddyAccount account) + public ServerBuddy(IAccount account) { this.account = account; } @@ -30,7 +30,7 @@ public class Buddy extends AbstractBuddy return account.getUserID(); } - public IBuddyAccount getAccount() + public IAccount getAccount() { return account; } diff --git a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/BuddySession.java b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerSession.java index 8a2867f986..0716c4b7e2 100644 --- a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/BuddySession.java +++ b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerSession.java @@ -12,26 +12,29 @@ package org.eclipse.net4j.buddies.internal.server; import org.eclipse.net4j.IChannel; import org.eclipse.net4j.buddies.protocol.IBuddy; -import org.eclipse.net4j.buddies.server.IBuddySession; +import org.eclipse.net4j.buddies.protocol.ISession; import org.eclipse.net4j.internal.util.lifecycle.Lifecycle; import org.eclipse.net4j.util.event.IEvent; import org.eclipse.net4j.util.event.IListener; import org.eclipse.net4j.util.lifecycle.ILifecycleEvent; import org.eclipse.net4j.util.lifecycle.LifecycleUtil; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.PlatformObject; + /** * @author Eike Stepper */ -public class BuddySession extends Lifecycle implements IBuddySession, IListener +public class ServerSession extends Lifecycle implements ISession, IListener { private IChannel channel; - private IBuddy buddy; + private IBuddy self; - public BuddySession(IChannel channel, IBuddy buddy) + public ServerSession(IChannel channel, IBuddy self) { this.channel = channel; - this.buddy = buddy; + this.self = self; LifecycleUtil.activate(this); } @@ -40,9 +43,9 @@ public class BuddySession extends Lifecycle implements IBuddySession, IListener return channel; } - public IBuddy getBuddy() + public IBuddy getSelf() { - return buddy; + return self; } public void close() @@ -51,6 +54,15 @@ public class BuddySession extends Lifecycle implements IBuddySession, IListener deactivate(); } + /** + * @see PlatformObject#getAdapter(Class) + */ + @SuppressWarnings("unchecked") + public Object getAdapter(Class adapter) + { + return Platform.getAdapterManager().getAdapter(this, adapter); + } + public void notifyEvent(IEvent event) { if (event.getSource() == channel) @@ -70,13 +82,13 @@ public class BuddySession extends Lifecycle implements IBuddySession, IListener { super.doActivate(); channel.addListener(this); - buddy.getAccount().touch(); + self.getAccount().touch(); } @Override protected void doDeactivate() throws Exception { - buddy.getAccount().touch(); + self.getAccount().touch(); channel.removeListener(this); super.doDeactivate(); } diff --git a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/BuddiesServerProtocol.java b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/BuddiesServerProtocol.java index c43caa7a14..ce8ea530c2 100644 --- a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/BuddiesServerProtocol.java +++ b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/BuddiesServerProtocol.java @@ -12,10 +12,10 @@ package org.eclipse.net4j.buddies.internal.server.protocol; import org.eclipse.net4j.buddies.internal.protocol.BuddyStateIndication; import org.eclipse.net4j.buddies.internal.protocol.ProtocolConstants; -import org.eclipse.net4j.buddies.internal.server.Buddy; +import org.eclipse.net4j.buddies.internal.server.ServerBuddy; +import org.eclipse.net4j.buddies.protocol.ISession; import org.eclipse.net4j.buddies.protocol.IBuddy.State; import org.eclipse.net4j.buddies.server.IBuddyAdmin; -import org.eclipse.net4j.buddies.server.IBuddySession; import org.eclipse.net4j.signal.SignalProtocol; import org.eclipse.net4j.signal.SignalReactor; @@ -51,11 +51,11 @@ public class BuddiesServerProtocol extends SignalProtocol { synchronized (IBuddyAdmin.INSTANCE) { - Map<String, IBuddySession> sessions = IBuddyAdmin.INSTANCE.getSessions(); - IBuddySession session = sessions.get(userID); + Map<String, ISession> sessions = IBuddyAdmin.INSTANCE.getSessions(); + ISession session = sessions.get(userID); if (session != null) { - Buddy buddy = (Buddy)session.getBuddy(); + ServerBuddy buddy = (ServerBuddy)session.getSelf(); buddy.setState(state); } } diff --git a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/LoadAccountIndication.java b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/LoadAccountIndication.java index 992b3528e1..a6f8f76192 100644 --- a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/LoadAccountIndication.java +++ b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/LoadAccountIndication.java @@ -12,7 +12,7 @@ package org.eclipse.net4j.buddies.internal.server.protocol; import org.eclipse.net4j.buddies.internal.protocol.ProtocolConstants; import org.eclipse.net4j.buddies.protocol.ProtocolUtil; -import org.eclipse.net4j.buddies.protocol.IBuddyAccount; +import org.eclipse.net4j.buddies.protocol.IAccount; import org.eclipse.net4j.buddies.server.IBuddyAdmin; import org.eclipse.net4j.signal.IndicationWithResponse; import org.eclipse.net4j.util.io.ExtendedDataInputStream; @@ -25,7 +25,7 @@ import java.io.IOException; */ public class LoadAccountIndication extends IndicationWithResponse { - private IBuddyAccount account; + private IAccount account; public LoadAccountIndication() { diff --git a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/OpenSessionIndication.java b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/OpenSessionIndication.java index 246207a0b6..81b0794d6a 100644 --- a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/OpenSessionIndication.java +++ b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/protocol/OpenSessionIndication.java @@ -13,10 +13,10 @@ package org.eclipse.net4j.buddies.internal.server.protocol; import org.eclipse.net4j.IChannel; import org.eclipse.net4j.buddies.internal.protocol.ProtocolConstants; import org.eclipse.net4j.buddies.internal.server.bundle.OM; +import org.eclipse.net4j.buddies.protocol.ISession; import org.eclipse.net4j.buddies.protocol.ProtocolUtil; -import org.eclipse.net4j.buddies.protocol.IBuddyAccount; +import org.eclipse.net4j.buddies.protocol.IAccount; import org.eclipse.net4j.buddies.server.IBuddyAdmin; -import org.eclipse.net4j.buddies.server.IBuddySession; import org.eclipse.net4j.signal.IndicationWithResponse; import org.eclipse.net4j.util.io.ExtendedDataInputStream; import org.eclipse.net4j.util.io.ExtendedDataOutputStream; @@ -31,7 +31,7 @@ import java.util.Map; */ public class OpenSessionIndication extends IndicationWithResponse { - private IBuddyAccount account; + private IAccount account; private String[] buddies; @@ -52,13 +52,13 @@ public class OpenSessionIndication extends IndicationWithResponse String password = in.readString(); synchronized (IBuddyAdmin.INSTANCE) { - Map<String, IBuddySession> sessions = IBuddyAdmin.INSTANCE.getSessions(); + Map<String, ISession> sessions = IBuddyAdmin.INSTANCE.getSessions(); buddies = sessions.keySet().toArray(new String[sessions.size()]); - IBuddySession session = IBuddyAdmin.INSTANCE.openSession(getProtocol().getChannel(), userID, password); + ISession session = IBuddyAdmin.INSTANCE.openSession(getProtocol().getChannel(), userID, password); if (session != null) { - account = session.getBuddy().getAccount(); + account = session.getSelf().getAccount(); } else { @@ -78,7 +78,7 @@ public class OpenSessionIndication extends IndicationWithResponse for (String buddy : buddies) { out.writeString(buddy); - IBuddySession buddySession = IBuddyAdmin.INSTANCE.getSessions().get(buddy); + ISession buddySession = IBuddyAdmin.INSTANCE.getSessions().get(buddy); if (buddySession != null) { channels.add(buddySession.getChannel()); |