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