Search in sources :

Example 1 with Asynchronous

use of javax.ejb.Asynchronous in project ART-TIME by Artezio.

the class MailingEngine method send.

@Asynchronous
public void send(String senderId, String recipientId, Mail mail) throws MessagingException {
    InternetAddress[] addressesTo = InternetAddress.parse(recipientId, false);
    if (addressesTo.length > 0) {
        MimeMessage mimeMessage = new MimeMessage(session);
        mimeMessage.setSubject(mail.getSubject(), "UTF-8");
        mimeMessage.setText(mail.getText(), "UTF-8", "html");
        mimeMessage.setSentDate(new Date());
        mimeMessage.setRecipients(javax.mail.Message.RecipientType.TO, addressesTo);
        mimeMessage.setFrom(new InternetAddress(senderId));
        Transport.send(mimeMessage);
    }
}
Also used : InternetAddress(javax.mail.internet.InternetAddress) MimeMessage(javax.mail.internet.MimeMessage) Date(java.util.Date) Asynchronous(javax.ejb.Asynchronous)

Example 2 with Asynchronous

use of javax.ejb.Asynchronous in project quickstart by wildfly.

the class AsynchronousAccessBean method longerRunning.

@Asynchronous
@Override
public Future<String> longerRunning(long sleepTime) {
    LOGGER.info("Will wait for " + sleepTime + "ms");
    try {
        Thread.sleep(sleepTime);
    } catch (InterruptedException e) {
    }
    LOGGER.info("returning the result");
    return new AsyncResult<>("returning at " + new Date() + ", duration was " + sleepTime + "ms");
}
Also used : AsyncResult(javax.ejb.AsyncResult) Date(java.util.Date) Asynchronous(javax.ejb.Asynchronous)

Example 3 with Asynchronous

use of javax.ejb.Asynchronous in project dataverse by IQSS.

the class IndexAsync method indexRoles.

@Asynchronous
public void indexRoles(Collection<DvObject> dvObjects) {
    for (DvObject dvObject : dvObjects) {
        IndexResponse indexResponse = solrIndexService.indexPermissionsOnSelfAndChildren(dvObject);
        logger.fine("output from permission indexing operations (dvobject " + dvObject.getId() + ": " + indexResponse);
    }
}
Also used : DvObject(edu.harvard.iq.dataverse.DvObject) Asynchronous(javax.ejb.Asynchronous)

Example 4 with Asynchronous

use of javax.ejb.Asynchronous in project dataverse by IQSS.

the class BatchServiceBean method processFilePath.

@Asynchronous
public void processFilePath(String fileDir, String parentIdtf, DataverseRequest dataverseRequest, Dataverse owner, ImportUtil.ImportType importType, Boolean createDV) {
    logger.info("BEGIN IMPORT");
    PrintWriter validationLog = null;
    PrintWriter cleanupLog = null;
    try {
        JsonArrayBuilder status = Json.createArrayBuilder();
        Date timestamp = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
        validationLog = new PrintWriter(new FileWriter("../logs/validationLog" + formatter.format(timestamp) + ".txt"));
        cleanupLog = new PrintWriter(new FileWriter("../logs/cleanupLog" + formatter.format(timestamp) + ".txt"));
        File dir = new File(fileDir);
        if (dir.isDirectory()) {
            for (File file : dir.listFiles()) {
                if (!file.isHidden()) {
                    if (file.isDirectory()) {
                        try {
                            status.add(handleDirectory(dataverseRequest, file, importType, validationLog, cleanupLog, createDV));
                        } catch (ImportException e) {
                            logger.log(Level.SEVERE, "Exception in handleDirectory() for " + file.getName(), e);
                        }
                    } else {
                        try {
                            status.add(importService.handleFile(dataverseRequest, owner, file, importType, validationLog, cleanupLog));
                        } catch (ImportException e) {
                            logger.log(Level.SEVERE, "Exception in handleFile() for " + file.getName(), e);
                        }
                    }
                }
            }
        } else {
            status.add(importService.handleFile(dataverseRequest, owner, dir, importType, validationLog, cleanupLog));
        }
    } catch (Exception e) {
        logger.log(Level.SEVERE, "Exception in processFilePath()", e);
    } finally {
        validationLog.close();
        cleanupLog.close();
    }
    logger.info("END IMPORT");
}
Also used : ImportException(edu.harvard.iq.dataverse.api.imports.ImportException) FileWriter(java.io.FileWriter) JsonArrayBuilder(javax.json.JsonArrayBuilder) SimpleDateFormat(java.text.SimpleDateFormat) File(java.io.File) Date(java.util.Date) ImportException(edu.harvard.iq.dataverse.api.imports.ImportException) IOException(java.io.IOException) PrintWriter(java.io.PrintWriter) Asynchronous(javax.ejb.Asynchronous)

Example 5 with Asynchronous

use of javax.ejb.Asynchronous in project dataverse by IQSS.

the class WorkflowServiceBean method rollback.

@Asynchronous
private void rollback(Workflow wf, WorkflowContext ctxt, Failure failure, int lastCompletedStepIdx) {
    ctxt = refresh(ctxt);
    final List<WorkflowStepData> steps = wf.getSteps();
    for (int stepIdx = lastCompletedStepIdx; stepIdx >= 0; --stepIdx) {
        WorkflowStepData wsd = steps.get(stepIdx);
        WorkflowStep step = createStep(wsd);
        try {
            logger.log(Level.INFO, "Workflow {0} step {1}: Rollback", new Object[] { ctxt.getInvocationId(), stepIdx });
            rollbackStep(step, ctxt, failure);
        } catch (Exception e) {
            logger.log(Level.WARNING, "Workflow " + ctxt.getInvocationId() + " step " + stepIdx + ": Rollback error: " + e.getMessage(), e);
        }
    }
    logger.log(Level.INFO, "Removing workflow lock");
    try {
        engine.submit(new RemoveLockCommand(ctxt.getRequest(), ctxt.getDataset(), DatasetLock.Reason.Workflow));
        // Corner case - delete locks generated within this same transaction.
        Query deleteQuery = em.createQuery("DELETE from DatasetLock l WHERE l.dataset.id=:id AND l.reason=:reason");
        deleteQuery.setParameter("id", ctxt.getDataset().getId());
        deleteQuery.setParameter("reason", DatasetLock.Reason.Workflow);
        deleteQuery.executeUpdate();
    } catch (CommandException ex) {
        logger.log(Level.SEVERE, "Error restoring dataset locks state after rollback: " + ex.getMessage(), ex);
    }
}
Also used : Query(javax.persistence.Query) WorkflowStepData(edu.harvard.iq.dataverse.workflow.step.WorkflowStepData) WorkflowStep(edu.harvard.iq.dataverse.workflow.step.WorkflowStep) RemoveLockCommand(edu.harvard.iq.dataverse.engine.command.impl.RemoveLockCommand) CommandException(edu.harvard.iq.dataverse.engine.command.exception.CommandException) CommandException(edu.harvard.iq.dataverse.engine.command.exception.CommandException) Asynchronous(javax.ejb.Asynchronous)

Aggregations

Asynchronous (javax.ejb.Asynchronous)9 Date (java.util.Date)5 CommandException (edu.harvard.iq.dataverse.engine.command.exception.CommandException)2 PrintWriter (java.io.PrintWriter)2 SimpleDateFormat (java.text.SimpleDateFormat)2 InternetAddress (javax.mail.internet.InternetAddress)2 MimeMessage (javax.mail.internet.MimeMessage)2 DataFile (edu.harvard.iq.dataverse.DataFile)1 DvObject (edu.harvard.iq.dataverse.DvObject)1 ImportException (edu.harvard.iq.dataverse.api.imports.ImportException)1 RemoveLockCommand (edu.harvard.iq.dataverse.engine.command.impl.RemoveLockCommand)1 WorkflowStep (edu.harvard.iq.dataverse.workflow.step.WorkflowStep)1 WorkflowStepData (edu.harvard.iq.dataverse.workflow.step.WorkflowStepData)1 MailAttachment (fi.otavanopisto.muikku.mail.MailAttachment)1 MailType (fi.otavanopisto.muikku.mail.MailType)1 UserEntity (fi.otavanopisto.muikku.model.users.UserEntity)1 CommunicatorMessage (fi.otavanopisto.muikku.plugins.communicator.model.CommunicatorMessage)1 User (fi.otavanopisto.muikku.schooldata.entity.User)1 File (java.io.File)1 FileWriter (java.io.FileWriter)1