Search in sources :

Example 1 with ReliableDispatchedNotificationProducer

use of org.nhindirect.gateway.smtp.ReliableDispatchedNotificationProducer in project nhin-d by DirectProject.

the class TimelyAndReliableLocalDelivery method init.

/**
	 * {@inheritDoc}
	 */
public void init() throws MessagingException {
    super.init();
    try {
        final String sDispatchedDelay = GatewayConfiguration.getConfigurationParam(DISPATCHED_MDN_DELAY, this, "0");
        try {
            dispatchedMDNDelay = Integer.valueOf(sDispatchedDelay).intValue();
        } catch (NumberFormatException e) {
            // in case of parsing exceptions
            dispatchedMDNDelay = 0;
        }
        // create an instance of the local delivery if we can
        localDeliveryMailet = createLocalDeliveryClass();
        final Method initMethod = Mailet.class.getDeclaredMethod("init", MailetConfig.class);
        serviceMethod = Mailet.class.getDeclaredMethod("service", Mail.class);
        // set private objects if they exist
        final Class<?> localDeliveryMailetClass = localDeliveryMailet.getClass();
        Field field = getDeclaredFieldQuietly(localDeliveryMailetClass, "rrt");
        if (field != null) {
            field.setAccessible(true);
            field.set(localDeliveryMailet, rrt);
        }
        field = getDeclaredFieldQuietly(localDeliveryMailetClass, "usersRepository");
        if (field != null) {
            field.setAccessible(true);
            field.set(localDeliveryMailet, usersRepository);
        }
        field = getDeclaredFieldQuietly(localDeliveryMailetClass, "mailboxManager");
        if (field != null) {
            field.setAccessible(true);
            field.set(localDeliveryMailet, mailboxManager);
        }
        field = getDeclaredFieldQuietly(localDeliveryMailetClass, "domainList");
        if (field != null) {
            field.setAccessible(true);
            field.set(localDeliveryMailet, domainList);
        }
        field = getDeclaredFieldQuietly(localDeliveryMailetClass, "fileSystem");
        if (field != null) {
            field.setAccessible(true);
            field.set(localDeliveryMailet, fileSystem);
        }
        initMethod.invoke(localDeliveryMailet, this.getMailetConfig());
    } catch (Exception e) {
        throw new MessagingException("Failed to initialize TimelyAndReliableLocalDelivery.", e);
    }
    notificationProducer = new ReliableDispatchedNotificationProducer(new NotificationSettings(true, "Local Direct Delivery Agent", "Your message was successfully dispatched."));
}
Also used : Field(java.lang.reflect.Field) Mail(org.apache.mailet.Mail) MessagingException(javax.mail.MessagingException) NotificationSettings(org.nhindirect.gateway.smtp.NotificationSettings) Method(java.lang.reflect.Method) Mailet(org.apache.mailet.Mailet) MessagingException(javax.mail.MessagingException) ReliableDispatchedNotificationProducer(org.nhindirect.gateway.smtp.ReliableDispatchedNotificationProducer)

Example 2 with ReliableDispatchedNotificationProducer

use of org.nhindirect.gateway.smtp.ReliableDispatchedNotificationProducer in project nhin-d by DirectProject.

the class DirectXdMailet method init.

/*
     * (non-Javadoc)
     * 
     * @see org.apache.mailet.base.GenericMailet#init()
     */
@Override
public void init() throws MessagingException {
    LOGGER.info("Initializing DirectXdMailet");
    super.init();
    // Get the endpoint URL
    endpointUrl = getInitParameter("EndpointURL");
    if (StringUtils.isBlank(endpointUrl)) {
        LOGGER.error("DirectXdMailet endpoint URL cannot be empty or null.");
        throw new MessagingException("DirectXdMailet endpoint URL cannot be empty or null.");
    }
    // Get the config-service URL
    try {
        configServiceUrl = getInitParameter("ConfigURL");
    } catch (Exception e) {
    // eat it
    }
    notificationProducer = new ReliableDispatchedNotificationProducer(new NotificationSettings(true, "Direct XD Delivery Agent", "Your message was successfully dispatched."));
}
Also used : MessagingException(javax.mail.MessagingException) NotificationSettings(org.nhindirect.gateway.smtp.NotificationSettings) MessagingException(javax.mail.MessagingException) AddressException(javax.mail.internet.AddressException) ReliableDispatchedNotificationProducer(org.nhindirect.gateway.smtp.ReliableDispatchedNotificationProducer)

Aggregations

MessagingException (javax.mail.MessagingException)2 NotificationSettings (org.nhindirect.gateway.smtp.NotificationSettings)2 ReliableDispatchedNotificationProducer (org.nhindirect.gateway.smtp.ReliableDispatchedNotificationProducer)2 Field (java.lang.reflect.Field)1 Method (java.lang.reflect.Method)1 AddressException (javax.mail.internet.AddressException)1 Mail (org.apache.mailet.Mail)1 Mailet (org.apache.mailet.Mailet)1