Fixed EventProcessor and LoginCredentialProcessor
This commit is contained in:
		@@ -6,6 +6,7 @@ import java.util.Set;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.jenkov.nioserver.Server;
 | 
					import com.jenkov.nioserver.Server;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import envoy.server.database.PersistenceManager;
 | 
				
			||||||
import envoy.server.net.ObjectMessageProcessor;
 | 
					import envoy.server.net.ObjectMessageProcessor;
 | 
				
			||||||
import envoy.server.net.ObjectMessageReader;
 | 
					import envoy.server.net.ObjectMessageReader;
 | 
				
			||||||
import envoy.server.processors.EventProcessor;
 | 
					import envoy.server.processors.EventProcessor;
 | 
				
			||||||
@@ -36,8 +37,11 @@ public class Startup {
 | 
				
			|||||||
		processors.add(new LoginCredentialProcessor());
 | 
							processors.add(new LoginCredentialProcessor());
 | 
				
			||||||
		processors.add(new MessageProcessor());
 | 
							processors.add(new MessageProcessor());
 | 
				
			||||||
		processors.add(new EventProcessor());
 | 
							processors.add(new EventProcessor());
 | 
				
			||||||
		// new PersistenceManager();
 | 
					 | 
				
			||||||
		Server server = new Server(8080, () -> new ObjectMessageReader(), new ObjectMessageProcessor(processors));
 | 
							Server server = new Server(8080, () -> new ObjectMessageReader(), new ObjectMessageProcessor(processors));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// TODO: Prevent lazy DB initialization
 | 
				
			||||||
 | 
							PersistenceManager.getPersistenceManager();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		server.start();
 | 
							server.start();
 | 
				
			||||||
		server.getSocketProcessor().registerSocketIdListener(ConnectionManager.getInstance());
 | 
							server.getSocketProcessor().registerSocketIdListener(ConnectionManager.getInstance());
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,9 +20,8 @@ import envoy.server.net.ObjectWriteProxy;
 | 
				
			|||||||
 * @author Leon Hofmeister
 | 
					 * @author Leon Hofmeister
 | 
				
			||||||
 * @since Envoy Server Standalone v0.1-alpha
 | 
					 * @since Envoy Server Standalone v0.1-alpha
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public class EventProcessor implements ObjectProcessor<Event<?>> {
 | 
					@SuppressWarnings("rawtypes")
 | 
				
			||||||
 | 
					public class EventProcessor implements ObjectProcessor<Event> {
 | 
				
			||||||
	private Event<?> event;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Creates an instance of @link{EventProcessor}.
 | 
						 * Creates an instance of @link{EventProcessor}.
 | 
				
			||||||
@@ -31,15 +30,13 @@ public class EventProcessor implements ObjectProcessor<Event<?>> {
 | 
				
			|||||||
	 */
 | 
						 */
 | 
				
			||||||
	public EventProcessor() {}
 | 
						public EventProcessor() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@SuppressWarnings("unchecked")
 | 
					 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public Class<Event<?>> getInputClass() { return (Class<Event<?>>) event.getClass(); }
 | 
						public Class<Event> getInputClass() { return Event.class; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public void process(Event<?> input, long socketId, ObjectWriteProxy writeProxy) throws IOException {
 | 
						public void process(Event input, long socketId, ObjectWriteProxy writeProxy) throws IOException {
 | 
				
			||||||
		event = input;
 | 
							if (input instanceof MessageStatusChangeEvent) try {
 | 
				
			||||||
		if (event instanceof MessageStatusChangeEvent) try {
 | 
								applyMessageStatusChange((MessageStatusChangeEvent) input, writeProxy);
 | 
				
			||||||
			applyMessageStatusChange((MessageStatusChangeEvent) event, writeProxy);
 | 
					 | 
				
			||||||
		} catch (EnvoyException e) {
 | 
							} catch (EnvoyException e) {
 | 
				
			||||||
			e.printStackTrace();
 | 
								e.printStackTrace();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -71,7 +68,5 @@ public class EventProcessor implements ObjectProcessor<Event<?>> {
 | 
				
			|||||||
			e.printStackTrace();
 | 
								e.printStackTrace();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		perMan.updateMessage(msg);
 | 
							perMan.updateMessage(msg);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,13 +49,14 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
 | 
				
			|||||||
		writeProxy.write(socketId, user);
 | 
							writeProxy.write(socketId, user);
 | 
				
			||||||
		System.out.println("Sending contacts...");
 | 
							System.out.println("Sending contacts...");
 | 
				
			||||||
		writeProxy.write(socketId, contacts);
 | 
							writeProxy.write(socketId, contacts);
 | 
				
			||||||
		System.out.println("Sending unread messages and updating them in the database...");
 | 
							System.out.println("Acquiring pending messages for the client...");
 | 
				
			||||||
		List<Message> pendingMessages = PersistenceManager.getPersistenceManager().getUnreadMessages(new envoy.server.data.User(user));
 | 
							List<Message> pendingMessages = PersistenceManager.getPersistenceManager().getUnreadMessages(new envoy.server.data.User(user));
 | 
				
			||||||
		pendingMessages.forEach((msg) -> {
 | 
							for (Message msg : pendingMessages) {
 | 
				
			||||||
 | 
								System.out.println("Sending message " + msg.toString());
 | 
				
			||||||
 | 
								writeProxy.write(socketId, msg);
 | 
				
			||||||
			msg.setReceivedDate(new Date());
 | 
								msg.setReceivedDate(new Date());
 | 
				
			||||||
			msg.setStatus(MessageStatus.RECEIVED);
 | 
								msg.setStatus(MessageStatus.RECEIVED);
 | 
				
			||||||
			PersistenceManager.getPersistenceManager().updateMessage(msg);
 | 
								PersistenceManager.getPersistenceManager().updateMessage(msg);
 | 
				
			||||||
		});
 | 
							}
 | 
				
			||||||
		writeProxy.write(socketId, pendingMessages);
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user