Skip to content

Commit

Permalink
ACtiveMQ Control Panel
Browse files Browse the repository at this point in the history
  • Loading branch information
nicol committed Sep 17, 2023
1 parent 81df0c5 commit 498a1f5
Show file tree
Hide file tree
Showing 10 changed files with 154 additions and 42 deletions.
12 changes: 12 additions & 0 deletions src/main/java/org/magic/api/beans/abstracts/AbstractMessage.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,25 @@ public enum MSG_TYPE { CONNECT, CHANGESTATUS, DISCONNECT, TALK, SYSTEM, SEARCH,
private static final long serialVersionUID = 1L;
private String id;
private MSG_TYPE typeMessage;
private String message;



protected AbstractMessage() {
setTypeMessage(MSG_TYPE.TALK);
setId(CryptoUtils.generateMD5(UUID.randomUUID().toString()+new Date()+typeMessage));
setStart(Instant.now());
}



public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}

public Player getAuthor() {
return author;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public class SearchMessage extends AbstractMessage {

public SearchMessage(MTGProduct item) {
this.item=item;
setMessage("search "+ item);
}

public MTGProduct getItem() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public class StatutMessage extends AbstractMessage {
public StatutMessage(STATUS statut) {
setTypeMessage(MSG_TYPE.CHANGESTATUS);
this.statut=statut;
setMessage("change status to "+ statut);
}

public void setStatut(STATUS statut) {
Expand Down
14 changes: 3 additions & 11 deletions src/main/java/org/magic/api/beans/messages/TalkMessage.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,26 @@
import java.awt.Color;

import org.magic.api.beans.abstracts.AbstractMessage;
import org.magic.game.model.Player;

public class TalkMessage extends AbstractMessage{

private static final long serialVersionUID = 1L;

private String message;

private Color color;

public String toChatString() {
return getAuthor().getName() + " : " + message;
return getAuthor().getName() + " : " + getMessage();
}

public TalkMessage(String message, Color color) {
this.message = message;
setMessage(message);
this.color = color;

}




public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}

public Color getColor() {
return color;
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/org/magic/game/model/Player.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import javax.swing.AbstractAction;

import org.apache.commons.lang.math.RandomUtils;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.magic.api.beans.MagicCard;
import org.magic.api.beans.MagicDeck;
import org.magic.services.tools.ImageTools;
Expand Down Expand Up @@ -516,7 +517,7 @@ public void moveCard(ZoneEnum from, ZoneEnum to, MagicCard mc) {

@Override
public int hashCode() {
return (getId()+getName()).hashCode();
return new HashCodeBuilder().append(getId()).append(getName()).hashCode();
}

@Override
Expand All @@ -526,7 +527,7 @@ public boolean equals(Object obj) {
return false;

Player p2 = (Player) obj;
return getId() == p2.getId();
return getId().equals(p2.getId());
}

public void playToken(MagicCard tok) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package org.magic.gui.components.tech;

import java.awt.BorderLayout;

import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import org.magic.game.model.Player;
import org.magic.gui.abstracts.MTGUIComponent;
import org.magic.gui.models.conf.ActiveMQMessageTableModel;
import org.magic.gui.renderer.PlayerRenderer;
import org.magic.servers.impl.ActiveMQServer;
import org.magic.services.MTGConstants;
import org.magic.services.TechnicalServiceManager;
import org.magic.services.tools.UITools;

public class ActiveMQServerPanel extends MTGUIComponent {

private static final long serialVersionUID = 1L;
private JTable table;
private JList<Player> listPlayers;
private ActiveMQMessageTableModel model;
private DefaultListModel<Player> listModel;

public ActiveMQServerPanel() {
setLayout(new BorderLayout(0, 0));
model = new ActiveMQMessageTableModel();
listModel = new DefaultListModel<>();
listPlayers = new JList<>(listModel);
table = UITools.createNewTable(model);
UITools.initTableFilter(table);
listPlayers.setCellRenderer(new PlayerRenderer());

add(new JScrollPane(table),BorderLayout.CENTER);
add(new JScrollPane(listPlayers),BorderLayout.WEST);

model.bind(TechnicalServiceManager.inst().getJsonMessages());


}

public ActiveMQMessageTableModel getModel() {
return model;
}

public JTable getTable() {
return table;
}



@Override
public String getTitle() {
return "ActiveMQ";
}

@Override
public ImageIcon getIcon() {
return MTGConstants.ICON_TAB_SERVER;
}

public void init(ActiveMQServer serv) {
listModel.removeAllElements();
listModel.addAll(serv.getPlug().getOnlines());

model.fireTableDataChanged();
}


}

Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.magic.gui.models.conf.QueriesTableModel;
import org.magic.gui.models.conf.TaskTableModel;
import org.magic.gui.models.conf.ThreadsTableModel;
import org.magic.servers.impl.ActiveMQServer;
import org.magic.servers.impl.DiscordBotServer;
import org.magic.servers.impl.JSONHttpServer;
import org.magic.servers.impl.QwartzServer;
Expand Down Expand Up @@ -55,7 +56,7 @@ public class TechnicalMonitorPanel extends MTGUIComponent {
private JsonInfoTableModel modelJsonServerInfo;
private DiscordInfoTableModel discordModel;
private GedBrowserPanel gedPanel;

private ActiveMQServerPanel activemqPanel;

public TechnicalMonitorPanel() {
setLayout(new BorderLayout(0, 0));
Expand All @@ -70,7 +71,9 @@ public TechnicalMonitorPanel() {
discordModel = new DiscordInfoTableModel();
modelFileAccess= new FileAccessTableModel();
gedPanel = new GedBrowserPanel();

activemqPanel = new ActiveMQServerPanel();


modelScript = new GenericTableModel<>()
{
private static final long serialVersionUID = 1L;
Expand Down Expand Up @@ -150,7 +153,7 @@ public String getColumnName(int column) {
tableJsonInfo.setDefaultRenderer(Long.class, durationRenderer);
tableDiscordInfo.setDefaultRenderer(Long.class, durationRenderer);
tableFileAccessIInfo.setDefaultRenderer(Long.class, durationRenderer);

activemqPanel.getTable().setDefaultRenderer(Long.class, durationRenderer);



Expand All @@ -167,7 +170,8 @@ public String getColumnName(int column) {
getContextTabbedPane().addTab("Files Access",MTGConstants.ICON_TAB_IMPORT,new JScrollPane(tableFileAccessIInfo));
UITools.addTab(getContextTabbedPane(), new LoggerViewPanel());
UITools.addTab(getContextTabbedPane(), gedPanel);

UITools.addTab(getContextTabbedPane(), activemqPanel);




Expand Down Expand Up @@ -211,15 +215,23 @@ public String getColumnName(int column) {
try {
modelCacheJson.init( ((JSONHttpServer)MTG.getPlugin("Json Http Server", MTGServer.class)).getCache().entries() );
modelCacheJson.fireTableDataChanged();


}
catch(Exception ex)
{
logger.error("error loading . Maybe Qwartz server is stopped",ex);
}
}


if(MTG.getPlugin("ActiveMQ", MTGServer.class).isAlive()) {
try {
activemqPanel.init( ((ActiveMQServer)MTG.getPlugin("ActiveMQ", MTGServer.class)));

}
catch(Exception ex)
{
logger.error("error loading . Maybe Qwartz server is stopped",ex);
}
}



Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.magic.gui.models.conf;

import java.time.Instant;

import org.magic.api.beans.messages.TalkMessage;
import org.magic.gui.abstracts.GenericTableModel;

public class ActiveMQMessageTableModel extends GenericTableModel<TalkMessage> {

private static final long serialVersionUID = 1L;

public ActiveMQMessageTableModel() {
setColumns("id","start","end","duration","author.id","author.name","message","typeMessage");
setWritable(false);
}


@Override
public Class<?> getColumnClass(int columnIndex) {
if(columnIndex==1 || columnIndex==2)
return Instant.class;

if(columnIndex==3)
return Long.class;


return super.getColumnClass(columnIndex);
}


}
28 changes: 6 additions & 22 deletions src/main/java/org/magic/servers/impl/ActiveMQServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import java.io.IOException;
import java.time.Instant;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
Expand Down Expand Up @@ -165,12 +166,11 @@ public String getVersion() {
public String getName() {
return "ActiveMQ";
}
}

class MTGActiveMQServerPlugin implements ActiveMQServerPlugin{

public class MTGActiveMQServerPlugin implements ActiveMQServerPlugin{
JsonExport serializer = new JsonExport();
Set<Player> onlines = new LinkedHashSet<>();
Set<Queue> queues = new LinkedHashSet<>();
Set<Player> onlines = new HashSet<>();
protected Logger logger = MTGLogger.getLogger(this.getClass());
private MTGNetworkClient client;

Expand All @@ -187,11 +187,6 @@ public Set<Player> getOnlines() {
return onlines;
}

public Set<Queue> getQueues() {
return queues;
}


@Override
public void afterCreateSession(ServerSession session) throws ActiveMQException {
logger.info("new connection from user : {} with id {}", session.getUsername(), session.getRemotingConnection().getClientID());
Expand Down Expand Up @@ -240,18 +235,7 @@ public void afterSend(ServerSession session, Transaction tx, Message message, bo
e.printStackTrace();
}
}

@Override
public void afterCreateQueue(Queue queue) throws ActiveMQException {
logger.debug("Queue created {}",queue);
queues.add(queue);
}

@Override
public void afterDestroyQueue(Queue queue, SimpleString address, SecurityAuth session,boolean checkConsumerCount, boolean removeConsumers, boolean autoDeleteAddress) throws ActiveMQException {
logger.debug("Queue deleted {}",queue);
queues.remove(queue);
}


}

}
4 changes: 4 additions & 0 deletions src/main/java/org/magic/services/TechnicalServiceManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,10 @@ public List<TaskInfo> getTasksInfos() {
return tasksInfos;
}

public List<TalkMessage> getJsonMessages() {
return jsonMessages;
}

public void store(JsonQueryInfo info)
{
info.setLocation(translator.getLocationFor(info.getIp()));
Expand Down

0 comments on commit 498a1f5

Please sign in to comment.