Added support for new message schema
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
			
		||||
package envoy.client;
 | 
			
		||||
 | 
			
		||||
import java.time.Instant;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
 | 
			
		||||
import javax.ws.rs.client.Client;
 | 
			
		||||
import javax.ws.rs.client.ClientBuilder;
 | 
			
		||||
@@ -14,6 +15,7 @@ import javax.xml.datatype.DatatypeConfigurationException;
 | 
			
		||||
import javax.xml.datatype.DatatypeFactory;
 | 
			
		||||
 | 
			
		||||
import envoy.schema.Message;
 | 
			
		||||
import envoy.schema.Messages;
 | 
			
		||||
import envoy.schema.ObjectFactory;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -25,7 +27,8 @@ import envoy.schema.ObjectFactory;
 | 
			
		||||
 | 
			
		||||
public class EnvoyClient {
 | 
			
		||||
 | 
			
		||||
	private DatatypeFactory datatypeFactory;
 | 
			
		||||
	private ObjectFactory	objectFactory	= new ObjectFactory();
 | 
			
		||||
	private DatatypeFactory	datatypeFactory;
 | 
			
		||||
 | 
			
		||||
	public EnvoyClient() {
 | 
			
		||||
		try {
 | 
			
		||||
@@ -46,13 +49,16 @@ public class EnvoyClient {
 | 
			
		||||
	 */
 | 
			
		||||
	public void sendMessage(Message message) {
 | 
			
		||||
		new Thread(() -> {
 | 
			
		||||
			// Wrap single message into messages list
 | 
			
		||||
			Messages messages = wrapMessage(message);
 | 
			
		||||
 | 
			
		||||
			// Print message XML to console
 | 
			
		||||
			JAXBContext jc;
 | 
			
		||||
			try {
 | 
			
		||||
				jc = JAXBContext.newInstance("envoy.schema");
 | 
			
		||||
				Marshaller m = jc.createMarshaller();
 | 
			
		||||
				m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
 | 
			
		||||
				m.marshal(message, System.out);
 | 
			
		||||
				m.marshal(messages, System.out);
 | 
			
		||||
			} catch (JAXBException e) {
 | 
			
		||||
				e.printStackTrace();
 | 
			
		||||
			}
 | 
			
		||||
@@ -60,7 +66,7 @@ public class EnvoyClient {
 | 
			
		||||
			// Send message
 | 
			
		||||
			Client		client		= ClientBuilder.newClient();
 | 
			
		||||
			WebTarget	target		= client.target("http://kske.feste-ip.net:43315/envoy-server/rest/message/send");
 | 
			
		||||
			Response	response	= target.request().post(Entity.entity(message, "application/xml"));
 | 
			
		||||
			Response	response	= target.request().post(Entity.entity(messages, "application/xml"));
 | 
			
		||||
			System.out.println("Response code: " + response.getStatus());
 | 
			
		||||
			response.close();
 | 
			
		||||
			client.close();
 | 
			
		||||
@@ -76,21 +82,26 @@ public class EnvoyClient {
 | 
			
		||||
	 * @return Prepared {@link Message} object
 | 
			
		||||
	 */
 | 
			
		||||
	public Message createMessage(String senderID, String recipientID, String textContent) {
 | 
			
		||||
		ObjectFactory		factory		= new ObjectFactory();
 | 
			
		||||
		Message.MetaData	metaData	= factory.createMessageMetaData();
 | 
			
		||||
		Message.MetaData metaData = objectFactory.createMessageMetaData();
 | 
			
		||||
		metaData.setSender(senderID);
 | 
			
		||||
		metaData.setRecipient(recipientID);
 | 
			
		||||
		metaData.setState(false);
 | 
			
		||||
		metaData.setDate(datatypeFactory.newXMLGregorianCalendar(Instant.now().toString()));
 | 
			
		||||
 | 
			
		||||
		Message.Content content = factory.createMessageContent();
 | 
			
		||||
		Message.Content content = objectFactory.createMessageContent();
 | 
			
		||||
		content.setType("text");
 | 
			
		||||
		content.setText(textContent);
 | 
			
		||||
 | 
			
		||||
		Message message = factory.createMessage();
 | 
			
		||||
		Message message = objectFactory.createMessage();
 | 
			
		||||
		message.setMetaData(metaData);
 | 
			
		||||
		message.getContent().add(content);
 | 
			
		||||
 | 
			
		||||
		return message;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public Messages wrapMessage(Message... messages) {
 | 
			
		||||
		Messages wrapper = objectFactory.createMessages();
 | 
			
		||||
		wrapper.getMessage().addAll(Arrays.asList(messages));
 | 
			
		||||
		return wrapper;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user