Added database support to forward messages (#30)
* Added server support for forwarding messages * added newline at EOF for any file not having one at its end
This commit is contained in:
		
							
								
								
									
										2
									
								
								src/main/java/envoy/server/Startup.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										2
									
								
								src/main/java/envoy/server/Startup.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -58,4 +58,4 @@ public class Startup { | ||||
| 		PersistenceManager persMan = PersistenceManager.getInstance(); | ||||
| 		if (persMan.getConfigItemById("currentMessageId") == null) persMan.addConfigItem(new ConfigItem("currentMessageId", "0")); | ||||
| 	} | ||||
| } | ||||
| } | ||||
|   | ||||
							
								
								
									
										0
									
								
								src/main/java/envoy/server/data/ConfigItem.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/data/ConfigItem.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										21
									
								
								src/main/java/envoy/server/data/Message.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										21
									
								
								src/main/java/envoy/server/data/Message.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -47,9 +47,10 @@ public class Message { | ||||
| 	@Temporal(TemporalType.TIMESTAMP) | ||||
| 	private Date readDate; | ||||
|  | ||||
| 	private envoy.data.Message.MessageStatus	status; | ||||
| 	private String								text; | ||||
| 	private envoy.data.Message.MessageStatus	status; | ||||
| 	private byte[]								attachment; | ||||
| 	private boolean								forwarded; | ||||
|  | ||||
| 	/** | ||||
| 	 * The constructor for a database object. | ||||
| @@ -60,7 +61,7 @@ public class Message { | ||||
|  | ||||
| 	/** | ||||
| 	 * Constructs a database message from a common message. | ||||
| 	 *  | ||||
| 	 * | ||||
| 	 * @param message the {@link envoy.data.Message} to convert into a database | ||||
| 	 *                {@link Message} | ||||
| 	 * @since Envoy Server Standalone v0.1-alpha | ||||
| @@ -75,12 +76,13 @@ public class Message { | ||||
| 		readDate		= message.getReadDate(); | ||||
| 		sender			= persMan.getUserById(message.getSenderId()); | ||||
| 		recipient		= persMan.getUserById(message.getRecipientId()); | ||||
| 		forwarded		= message.isForwarded(); | ||||
| 		// TODO: attachment = message.getAttachment().toByteArray();DOES NOT WORK YET | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Converts this message into an instance of {@link envoy.data.Message}. | ||||
| 	 *  | ||||
| 	 * | ||||
| 	 * @return a {@link envoy.data.Message} containing the same values as this | ||||
| 	 *         message | ||||
| 	 * @since Envoy Server Standalone v0.1-alpha | ||||
| @@ -90,6 +92,7 @@ public class Message { | ||||
| 		envoy.data.Message message = new MessageBuilder(sender.getId(), recipient.getId(), id).setText(text) | ||||
| 			.setDate(creationDate) | ||||
| 			.setStatus(status) | ||||
| 			.setForwarded(forwarded) | ||||
| 			.build(); | ||||
| 		message.setReceivedDate(receivedDate); | ||||
| 		message.setReadDate(readDate); | ||||
| @@ -210,4 +213,16 @@ public class Message { | ||||
| 	 * @since Envoy Server Standalone v0.1-alpha | ||||
| 	 */ | ||||
| 	public void setAttachment(byte[] attachment) { this.attachment = attachment; } | ||||
|  | ||||
| 	/** | ||||
| 	 * @return whether this message is a forwarded message | ||||
| 	 * @since Envoy Server Standalone v0.1-alpha | ||||
| 	 */ | ||||
| 	public boolean isForwarded() { return forwarded; } | ||||
|  | ||||
| 	/** | ||||
| 	 * @param forwarded this message should be a forwarded message. | ||||
| 	 * @since Envoy Server Standalone v0.1-alpha | ||||
| 	 */ | ||||
| 	public void setForwarded(boolean forwarded) { this.forwarded = forwarded; } | ||||
| } | ||||
|   | ||||
							
								
								
									
										0
									
								
								src/main/java/envoy/server/data/PersistenceManager.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/data/PersistenceManager.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										5
									
								
								src/main/java/envoy/server/data/User.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										5
									
								
								src/main/java/envoy/server/data/User.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -46,15 +46,14 @@ public class User { | ||||
| 	private List<User> contacts; | ||||
|  | ||||
| 	/** | ||||
| 	 * Creates an instance of @link{User}. | ||||
| 	 * Solely used for JPA/ Hibernate | ||||
| 	 * Creates an instance of {@link User}. | ||||
| 	 * | ||||
| 	 * @since Envoy Server Standalone v0.1-alpha | ||||
| 	 */ | ||||
| 	public User() {} | ||||
|  | ||||
| 	/** | ||||
| 	 * Creates an instance of @link{User}. | ||||
| 	 * Creates an instance of {@link User}. | ||||
| 	 * | ||||
| 	 * @param user the {@link envoy.data.User} to convert | ||||
| 	 * @since Envoy Server Standalone v0.1-alpha | ||||
|   | ||||
							
								
								
									
										2
									
								
								src/main/java/envoy/server/data/package-info.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										2
									
								
								src/main/java/envoy/server/data/package-info.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -6,4 +6,4 @@ | ||||
|  * @author Maximilian Käfer | ||||
|  * @since Envoy v0.1-alpha | ||||
|  */ | ||||
| package envoy.server.data; | ||||
| package envoy.server.data; | ||||
|   | ||||
							
								
								
									
										0
									
								
								src/main/java/envoy/server/net/ConnectionManager.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/net/ConnectionManager.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										2
									
								
								src/main/java/envoy/server/net/ObjectMessageProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										2
									
								
								src/main/java/envoy/server/net/ObjectMessageProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -57,4 +57,4 @@ public class ObjectMessageProcessor implements IMessageProcessor { | ||||
| 			e.printStackTrace(); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| } | ||||
|   | ||||
							
								
								
									
										7
									
								
								src/main/java/envoy/server/net/ObjectMessageReader.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										7
									
								
								src/main/java/envoy/server/net/ObjectMessageReader.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -5,10 +5,7 @@ import java.nio.ByteBuffer; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| import com.jenkov.nioserver.IMessageReader; | ||||
| import com.jenkov.nioserver.Message; | ||||
| import com.jenkov.nioserver.MessageBuffer; | ||||
| import com.jenkov.nioserver.Socket; | ||||
| import com.jenkov.nioserver.*; | ||||
|  | ||||
| import envoy.util.SerializationUtils; | ||||
|  | ||||
| @@ -71,4 +68,4 @@ public class ObjectMessageReader implements IMessageReader { | ||||
|  | ||||
| 		} while (nextMessage.length >= length); | ||||
| 	} | ||||
| } | ||||
| } | ||||
|   | ||||
							
								
								
									
										0
									
								
								src/main/java/envoy/server/net/ObjectWriteProxy.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/net/ObjectWriteProxy.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										2
									
								
								src/main/java/envoy/server/net/package-info.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										2
									
								
								src/main/java/envoy/server/net/package-info.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -6,4 +6,4 @@ | ||||
|  * @author Maximilian Käfer | ||||
|  * @since Envoy v0.1-alpha | ||||
|  */ | ||||
| package envoy.server.net; | ||||
| package envoy.server.net; | ||||
|   | ||||
							
								
								
									
										4
									
								
								src/main/java/envoy/server/package-info.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										4
									
								
								src/main/java/envoy/server/package-info.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -1,9 +1,9 @@ | ||||
| /** | ||||
|  * This package contains the class that manages application startup. | ||||
|  *  | ||||
|  * | ||||
|  * @author Kai S. K. Engelbart | ||||
|  * @author Leon Hofmeister | ||||
|  * @author Maximilian Käfer | ||||
|  * @since Envoy Server Standalone v0.1-alpha | ||||
|  */ | ||||
| package envoy.server; | ||||
| package envoy.server; | ||||
|   | ||||
							
								
								
									
										0
									
								
								src/main/java/envoy/server/processors/ContactOperationProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/processors/ContactOperationProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								src/main/java/envoy/server/processors/ContactsRequestEventProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/processors/ContactsRequestEventProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								src/main/java/envoy/server/processors/IdGeneratorRequestProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/processors/IdGeneratorRequestProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								src/main/java/envoy/server/processors/LoginCredentialProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/processors/LoginCredentialProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								src/main/java/envoy/server/processors/MessageProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/processors/MessageProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								src/main/java/envoy/server/processors/MessageStatusChangeProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/processors/MessageStatusChangeProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										2
									
								
								src/main/java/envoy/server/processors/ObjectProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										2
									
								
								src/main/java/envoy/server/processors/ObjectProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -32,4 +32,4 @@ public interface ObjectProcessor<T> { | ||||
| 	 * @since Envoy Server Standalone v0.1-alpha | ||||
| 	 */ | ||||
| 	void process(T input, long socketId, ObjectWriteProxy writeProxy) throws IOException; | ||||
| } | ||||
| } | ||||
|   | ||||
							
								
								
									
										0
									
								
								src/main/java/envoy/server/processors/UserStatusChangeProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/envoy/server/processors/UserStatusChangeProcessor.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										2
									
								
								src/main/java/envoy/server/processors/package-info.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										2
									
								
								src/main/java/envoy/server/processors/package-info.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -7,4 +7,4 @@ | ||||
|  * @author Maximilian Käfer | ||||
|  * @since Envoy v0.1-alpha | ||||
|  */ | ||||
| package envoy.server.processors; | ||||
| package envoy.server.processors; | ||||
|   | ||||
							
								
								
									
										0
									
								
								src/main/java/module-info.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/java/module-info.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								src/main/resources/META-INF/persistence.xml
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								src/main/resources/META-INF/persistence.xml
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
		Reference in New Issue
	
	Block a user
	 delvh
					delvh