First working version
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
package com.thalesgroup.nl.chat.impl;
|
||||
|
||||
import com.thalesgroup.nl.chat.api.Chat;
|
||||
import org.osgi.service.component.annotations.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Component(
|
||||
property = {
|
||||
"osgi.command.scope=chat",
|
||||
"osgi.command.function=send"
|
||||
},
|
||||
immediate = true,
|
||||
service = Object.class
|
||||
)
|
||||
public class ChatServer {
|
||||
public static final String NAME = "Bas";
|
||||
private Map<String, Chat> chatters = new HashMap<>();
|
||||
@Activate
|
||||
public ChatServer() {
|
||||
|
||||
}
|
||||
|
||||
@Reference(policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE)
|
||||
public void addChatter(Chat chat, Map props){
|
||||
String name = (String) props.get("participant.name");
|
||||
System.out.printf("Adding %s%n", name);
|
||||
chatters.put(name, chat);
|
||||
chat.sendMessage(NAME, String.format("Hoi %s!", name));
|
||||
}
|
||||
|
||||
public void removeChatter(Chat chat){
|
||||
chatters.remove(chat);
|
||||
}
|
||||
|
||||
public void send(String name, String message){
|
||||
Chat chat = chatters.get(name);
|
||||
if(chat == null){
|
||||
System.out.printf("Error: %s not found%n", name);
|
||||
} else {
|
||||
chat.sendMessage(NAME, message);
|
||||
}
|
||||
}
|
||||
|
||||
@Deactivate
|
||||
public void deactivate(){
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user