package cz.abclinuxu.datoveschranky; import cz.abclinuxu.datoveschranky.common.entities.Attachment; import cz.abclinuxu.datoveschranky.common.entities.DataBox; import cz.abclinuxu.datoveschranky.common.entities.DataBoxState; import cz.abclinuxu.datoveschranky.common.entities.DataBoxWithDetails; import cz.abclinuxu.datoveschranky.common.entities.DeliveryEvent; import cz.abclinuxu.datoveschranky.common.entities.DeliveryInfo; import cz.abclinuxu.datoveschranky.common.entities.Message; import cz.abclinuxu.datoveschranky.common.entities.MessageEnvelope; import cz.abclinuxu.datoveschranky.common.entities.TimeStamp; import cz.abclinuxu.datoveschranky.common.entities.content.ByteContent; import cz.abclinuxu.datoveschranky.common.entities.content.Content; import cz.abclinuxu.datoveschranky.common.impl.ByteArrayAttachmentStorer; import cz.abclinuxu.datoveschranky.common.impl.Config; import cz.abclinuxu.datoveschranky.common.interfaces.DataBoxDownloadService; import cz.abclinuxu.datoveschranky.common.interfaces.DataBoxMessagesService; import cz.abclinuxu.datoveschranky.common.interfaces.DataBoxUploadService; import cz.abclinuxu.datoveschranky.impl.DataBoxManager; import cz.abclinuxu.datoveschranky.impl.MessageValidator; import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; /** * * @author Vaclav Rosecky <xrosecky 'at' gmail 'dot' com> */ public class Main { public static void main(String[] args) throws Exception { String loginName = "5e7mvf"; String password = "Ab123456a"; Config config = new Config(Config.TEST_URL); DataBoxManager services = DataBoxManager.login(config, loginName, password); List<DataBoxWithDetails> found = services.getDataBoxSearchService().findOVMsByName("min"); for (DataBox entity : found) { DataBoxState dbs = services.getDataBoxSearchService().checkDataBox(entity); System.out.println(entity + " " + dbs); } DataBoxMessagesService messagesService = services.getDataBoxMessagesService(); DataBoxDownloadService downloadService = services.getDataBoxDownloadService(); DataBoxUploadService uploadService = services.getDataBoxUploadService(); MessageEnvelope env = new MessageEnvelope(); env.setRecipient(new DataBox("vqbab52")); env.setAnnotation("predmet zpravy"); List<Attachment> attachments = new ArrayList<Attachment>(); Attachment attach1 = new Attachment(); attach1.setDescription("StandardText.txt"); attach1.setMetaType("main"); attach1.setMimeType("text/plain"); attach1.setContents(new ByteContent(new byte[]{1, 2})); attachments.add(attach1); Message message = new Message(env, null, null, attachments); uploadService.sendMessage(message); System.out.println("The messageID is "+message.getEnvelope().getMessageID()); GregorianCalendar begin = new GregorianCalendar(); begin.roll(Calendar.DAY_OF_YEAR, -28); GregorianCalendar end = new GregorianCalendar(); end.roll(Calendar.DAY_OF_YEAR, 1); // List<MessageEnvelope> messages = messagesService.getListOfReceivedMessages(begin, end, null, 0, 5); List<MessageEnvelope> messages = messagesService.getListOfSentMessages(begin.getTime(), end.getTime(), null, 0, 5); MessageValidator helper = new MessageValidator(config); for (MessageEnvelope envelope : messages) { ByteArrayOutputStream out = new ByteArrayOutputStream(); downloadService.downloadSignedMessage(envelope, out); Content content = new ByteContent(out.toByteArray()); Message mess = helper.validateAndCreateMessage(content, new ByteArrayAttachmentStorer()); out.close(); TimeStamp stamp = mess.getTimeStamp(); System.err.println("Message id:" + envelope.getMessageID()); System.err.println(" time:" + stamp.getGeneratedTime()); System.err.println(" hash:" + stamp.getHash()); System.err.println(" signed by:" + stamp.getCertificate().getIssuerDN().getName()); System.err.println(" cert id:" + stamp.getCertificate().getSerialNumber()); System.err.println(" status:"+mess.getEnvelope().getState().toString()); } } public static void dumpDeliveryInfo(DeliveryInfo delivery) { System.out.println("Accepted: " + delivery.getAccepted().getTime()); System.out.println("Delivered: " + delivery.getDelivered().getTime()); System.out.println("List of events:"); for (DeliveryEvent event : delivery.getEvents()) { System.out.println(event.getTime().getTime() + ":" + event.getDescription()); } } }