Java Code Examples for javax.ejb.Asynchronous

The following are top voted examples for showing how to use javax.ejb.Asynchronous. These examples are extracted from open source projects. You can vote up the examples you like and your votes will be used in our system to generate more good examples.
Example 1
Project: eplmp   File: ImporterBean.java   View source code 7 votes vote down vote up
@Override
@Asynchronous
@FileImport
public Future<ImportResult> importIntoPathData(String workspaceId, File file, String originalFileName, String revisionNote, boolean autoFreezeAfterUpdate, boolean permissiveUpdate) {
    PathDataImporter selectedImporter = selectPathDataImporter(file);
    Locale userLocale = getUserLocale(workspaceId);
    Properties properties = PropertiesLoader.loadLocalizedProperties(userLocale, I18N_CONF, ImporterBean.class);

    PathDataImporterResult pathDataImporterResult;

    if (selectedImporter != null) {
        pathDataImporterResult = selectedImporter.importFile(getUserLocale(workspaceId), workspaceId, file, autoFreezeAfterUpdate, permissiveUpdate);
    } else {
        List<String> errors = getNoImporterAvailableError(properties);
        pathDataImporterResult = new PathDataImporterResult(file, new ArrayList<>(), errors, null, null, null);
    }

    ImportResult result = doPathDataImport(properties, workspaceId, revisionNote, autoFreezeAfterUpdate, permissiveUpdate, pathDataImporterResult);

    return new AsyncResult<>(result);
}
 
Example 2
Project: darceo   File: PluginExecutor.java   View source code 7 votes vote down vote up
/**
 * Executes the plugin with the given name. Internal use only.
 * 
 * @param pluginName
 *            plugin name
 * @return execution status
 */
@Asynchronous
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public Future<Void> execute(String pluginName) {

    PluginExecutor proxy = ctx.getBusinessObject(PluginExecutor.class);

    boolean finished = false;
    while (!ctx.wasCancelCalled() && !finished) {
        finished = !proxy.executeOnce(pluginName);
        if (finished) {
            proxy.finishCycle(pluginName);
        }

    }

    return new AsyncResult<Void>(null);
}
 
Example 3
Project: asw   File: AsynchronousHelloImpl.java   View source code 6 votes vote down vote up
/** Un'operazione asincrona (che puo' essere interrotta). */
@Asynchronous
public Future<String> hello(String name) throws HelloException, InterruptedException {
	String result = null;
	logger.info("AsynchronousHello.hello(" + name + ") called");

	if (name==null) {
		throw new HelloException("Invalid parameters for hello()");
	}

	/* diciamo che questa operazione perde un po' di tempo e
	 * poi restituisce proprio il saluto desiderato */
	for (int i=0; i<name.length()*10; i++) {
		sleep(40);
		if (ctx.wasCancelCalled()) {
			logger.info("AsynchronousHello.hello(" + name + ") was cancelled");
			/* credo che la cosa giusta da fare qui sia sollevare un'eccezione */
			throw new InterruptedException("Operation AsynchronousHello.hello(" + name + ") was cancelled");
		}
	}
	result = "Hello, " + name.toUpperCase() + "!";
	logger.info("AsynchronousHello.hello(" + name + ") ==> " + result);
	return new AsyncResult<String>(result);
}
 
Example 4
Project: JavaEE   File: OrderProcessorBean.java   View source code 6 votes vote down vote up
/**
 * Places an order
 */
@Asynchronous
@Remove
@Override
public void placeOrder() {
    Order order = new Order();
    order.setBidder(bidder);
    order.setItem(item);
    order.setShipping(shipping);
    order.setBilling(billing);
    try {
        bill(order);
        notifyBillingSuccess(order);
        order.setStatus(OrderStatus.COMPLETE);
    } catch (BillingException be) {
        notifyBillingFailure(be, order);
        order.setStatus(OrderStatus.BILLING_FAILED);
    } finally {
        saveOrder(order);
    }
}
 
Example 5
Project: eplmp   File: NotifierBean.java   View source code 6 votes vote down vote up
@Asynchronous
@Override
public void sendPasswordRecovery(Account account, String recoveryUUID) {

    LOGGER.info("Sending recovery message \n\tfor the user which login is " + account.getLogin());

    Object[] args = {
            getRecoveryUrl(recoveryUUID),
            account.getLogin()
    };

    try {
        sendMessage(account, "Recovery_title", "Recovery_text", args);
    } catch (MessagingException pMEx) {
        logMessagingException(pMEx);
    }
}
 
Example 6
Project: eplmp   File: NotifierBean.java   View source code 6 votes vote down vote up
@Asynchronous
@Override
public void sendWorkspaceDeletionNotification(Account admin, String workspaceId) {

    LOGGER.info("Sending workspace deletion notification message \n\tfor the user which login is " + admin.getLogin());

    Object[] args = {
            workspaceId
    };

    try {
        User adminUser = new User(new Workspace(workspaceId), admin);
        sendMessage(adminUser, "WorkspaceDeletion_title", "WorkspaceDeletion_text", args);
    } catch (MessagingException pMEx) {
        logMessagingException(pMEx);
    }
}
 
Example 7
Project: eplmp   File: NotifierBean.java   View source code 6 votes vote down vote up
@Asynchronous
@Override
public void sendWorkspaceDeletionErrorNotification(Account admin, String workspaceId) {

    LOGGER.info("Sending workspace deletion error notification message \n\tfor the user which login is " + admin.getLogin());

    Object[] args = {
            workspaceId
    };
    try {
        User adminUser = new User(new Workspace(workspaceId), admin);
        sendMessage(adminUser, "WorkspaceDeletion_title", "WorkspaceDeletionError_text", args);
    } catch (MessagingException pMEx) {
        logMessagingException(pMEx);
    }
}
 
Example 8
Project: eplmp   File: NotifierBean.java   View source code 6 votes vote down vote up
@Asynchronous
@Override
public void sendWorkspaceIndexationSuccess(Account account, String workspaceId, String extraMessage) {

    Object[] args = {
            workspaceId,
            extraMessage
    };

    try {
        User adminUser = new User(new Workspace(workspaceId), account);
        sendMessage(adminUser, "Indexer_success_title", "Indexer_success_text", args);
    } catch (MessagingException pMEx) {
        logMessagingException(pMEx);
    }
}
 
Example 9
Project: eplmp   File: NotifierBean.java   View source code 6 votes vote down vote up
@Asynchronous
@Override
public void sendWorkspaceIndexationFailure(Account account, String workspaceId, String extraMessage) {

    Object[] args = {
            workspaceId,
            extraMessage
    };

    try {
        User adminUser = new User(new Workspace(workspaceId), account);
        sendMessage(adminUser, "Indexer_failure_title", "Indexer_failure_text", args);
    } catch (MessagingException pMEx) {
        logMessagingException(pMEx);
    }
}
 
Example 10
Project: eplmp   File: IndexerManagerBean.java   View source code 6 votes vote down vote up
@Override
@Asynchronous
@RolesAllowed({UserGroupMapping.ADMIN_ROLE_ID, UserGroupMapping.REGULAR_USER_ROLE_ID})
public void indexWorkspaceData(String workspaceId) throws AccountNotFoundException {
    Account account = accountManager.getMyAccount();

    try {
        // Clear workspace if exists, or recreate
        doDeleteWorkspaceIndex(workspaceId);
        Bulk.Builder bb = new Bulk.Builder().defaultIndex(workspaceId);
        bulkWorkspaceRequestBuilder(bb, workspaceId);

        BulkResult result = esClient.execute(bb.build());

        if (result.isSucceeded()) {
            mailer.sendBulkIndexationSuccess(account);
        } else {
            String failureMessage = result.getErrorMessage();
            LOGGER.log(Level.SEVERE, "Failures while bulk indexing workspace [" + workspaceId + "]: \n" + failureMessage);
            mailer.sendBulkIndexationFailure(account, failureMessage);
        }
    } catch (IOException e) {
        LOGGER.log(Level.WARNING, "Cannot index the whole workspace: The Elasticsearch server does not seem to respond");
        mailer.sendBulkIndexationFailure(account, getString("IndexerNotAvailableForRequest", new Locale(account.getLanguage())));
    }
}
 
Example 11
Project: otus-domain-api   File: EmailNotifierServiceBean.java   View source code 6 votes vote down vote up
@Override
@Asynchronous
public void sendEmail(StudioEmail email) throws EmailNotificationException {
	GMailer mailer = GMailer.createTLSMailer();

	mailer.setFrom(email.getFrom());
	mailer.addRecipients(email.getRecipients());
	mailer.setSubject(email.getSubject());
	mailer.setContentType(email.getContentType());
	mailer.setContent(mergeTemplate(email.getContentDataMap(), email.getTemplatePath()));

	try {
		mailer.send();
	} catch (Exception e) {
		throw new EmailNotificationException();
	}
}
 
Example 12
Project: hawkular-apm   File: AlertsPublisher.java   View source code 6 votes vote down vote up
@Asynchronous
public void publish(final Event event) {
    if (BASE_URL == null || BASE_URL.isEmpty()) {
        logger.hawkularServerNotConfigured();
        return;
    }

    if (USERNAME == null || USERNAME.isEmpty()) {
        logger.hawkularServerUsernameNotConfigured();
        return;
    }

    if (PASSWORD == null || PASSWORD.isEmpty()) {
        logger.hawkularServerPasswordNotConfigured();
        return;
    }

    HystrixFeign.builder()
            .requestInterceptor(new BasicAuthRequestInterceptor(USERNAME, PASSWORD))
            .encoder(new JacksonEncoder())
            .decoder(new JacksonDecoder())
            .retryer(new Retryer.Default())
            .target(AlertsService.class, TARGET)
            .addEvent(event);
}
 
Example 13
Project: omakase   File: PipelineExecutor.java   View source code 6 votes vote down vote up
/**
 * Executes a pipeline, executing each stage in turn until the pipeline completes, fails or halts while waiting for an asynchronous process to complete.
 * <p>
 * Only pipelines that are in their initial state can be executed, if the pipeline is not in it's initial state it is marked as failed.
 * </p>
 *
 * @param pipeline
 *         the pipeline
 */
@Asynchronous
public void executePipeline(@Observes(during = TransactionPhase.AFTER_SUCCESS) Pipeline pipeline) {
    Throwables.voidInstance(() -> OmakaseSecurity.doAsSystem(() -> {
        if (!pipeline.isFirstPipelineStage() && !PipelineStageStatus.QUEUED.equals(pipeline.getStatusOfCurrentStage())) {
            LOGGER.error("Pipeline " + pipeline.getId() + " is not in it's initial state");
            updatePipeline(PipelineStageResult.builder(pipeline.getId(), PipelineStageStatus.FAILED).addMessages(ImmutableSet.of("The pipeline is not in it's initial state")).build());
        }

        // the first stage is executed outside of recursion as, the recursion relies on the the previous stage
        // being complete before executing the next one which is not the case for the first stage.
        PipelineContext pipelineContext = createPipelineContext(pipeline);
        PipelineStageResult pipelineStageResult = pipelineStageExecutor.execute(pipelineContext, pipeline.getCurrentPipelineStage());

        executePipelineFailureStage(pipelineStageResult);

        Pipeline updatedPipeline = updatePipeline(pipelineStageResult);
        // execute subsequent stages until the pipeline is halted or completed.
        executePipelineStages(updatedPipeline);
        return true;
    }));

}
 
Example 14
Project: darceo   File: FileFormatProcessorBean.java   View source code 6 votes vote down vote up
@Override
@Asynchronous
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public Future<Void> processAll() {
    logger.info("Format processing started");

    FileFormatProcessor proxy = ctx.getBusinessObject(FileFormatProcessor.class);

    int count = 0;
    boolean finished = false;

    while (!ctx.wasCancelCalled() && !finished) {
        boolean processed = proxy.processOne();
        if (processed) {
            count++;
        }
        finished = !processed;
    }

    logger.info("Format processing stopped: checked {} format(s)", count);

    return new AsyncResult<Void>(null);
}
 
Example 15
Project: editor-backend   File: AsciidoctorEndpoint.java   View source code 6 votes vote down vote up
@POST
@Path("/convert/{backend}")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.TEXT_PLAIN)
@Asynchronous
public void convert(@PathParam("backend") String backend, 
		String asciidocContent, @Suspended AsyncResponse response) {
	Converter converter;
	switch (backend) {
		case "pdf":
			converter = Converter.pdf;
			break;
		case "dzslides":
			converter = Converter.dzslides;
			break;
		default:
			converter = Converter.html5;
	}

	OutputMessage out = new OutputMessage(converter);
	out.setContent(processor.convertToDocument(asciidocContent, converter));
	response.resume(out);
}
 
Example 16
Project: editor-backend   File: ProcessorEventConsumer.java   View source code 6 votes vote down vote up
@Asynchronous
@Lock(LockType.READ)
public void consumeEvent(@Observes ProcessorEvent processorEvent) throws InterruptedException {
    final String filename = getRandomFilename(processorEvent.filename);
    logger.info("Receiving event : " + asciidoctorBackendsDir + templateDZSlides + filename + processorEvent.converter.getFilenameExtension());

    try {
        File templateDir = null;
        if (processorEvent.converter.name().equals(Converter.dzslides.name())) {
            templateDir = new File(asciidoctorBackendsDir + templateDZSlides);
        }

        asciidoctor.convertToBinaryDocument(processorEvent.asciidoc, processorEvent.converter, templateDir, "all",
                filename);
    } catch (Exception e) {
        logger.log(Level.SEVERE, "Processing error for filename : " + filename, e);
    }
}
 
Example 17
Project: training   File: ParalellizerWorker.java   View source code 6 votes vote down vote up
@Asynchronous // SOLUTION
	//public Integer executeWorkItem(String workItem) { // INITIAL
	public Future<Integer> executeWorkItem(String workItem) { // SOLUTION
		int result = workItem.length();
		System.out.println("Worker " + workerId + ": Start processing item '" + workItem + "'");
		
		System.out.println("Worker " + workerId + ": " + Thread.currentThread().getName());
		try {
			Thread.sleep(100);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("Worker " + workerId + ": Item '" + workItem + "' done.");
		
		return new AsyncResult<Integer>(result); // SOLUTION
//		return result; // INITIAL
	}
 
Example 18
Project: facshop   File: DeliveryHandler.java   View source code 6 votes vote down vote up
@Override
@Asynchronous
public void onNewOrder(@Observes @Paid OrderEvent event) {

    logger.log(Level.FINEST, "{0} Event being processed by DeliveryHandler", Thread.currentThread().getName());

    try {
        logger.log(Level.INFO, "Order #{0} has been paid in the amount of {1}. Order is now ready for delivery!", new Object[]{event.getOrderID(), event.getAmount()});

        orderBean.setOrderStatus(event.getOrderID(), String.valueOf(OrderBean.Status.READY_TO_SHIP.getStatus()));
        CustomerOrder order = orderBean.getOrderById(event.getOrderID());
        if (order != null) {
            orderPublisher.sendMessage(order);

        } else {
            throw new Exception("The order does not exist");
        }
    } catch (Exception jex) {
        logger.log(Level.SEVERE, null, jex);
    }
}
 
Example 19
Project: facshop   File: PaymentHandler.java   View source code 6 votes vote down vote up
@Override
@Asynchronous
public void onNewOrder(@Observes @New OrderEvent event) {

    logger.log(Level.FINEST, "{0} Event being processed by PaymentHandler",
            Thread.currentThread().getName());

    if (processPayment(event)) {
        orderBean.setOrderStatus(event.getOrderID(),
                String.valueOf(OrderBean.Status.PENDING_PAYMENT.getStatus()));
        logger.info("Payment Approved");
        eventManager.fire(event);
    } else {
        orderBean.setOrderStatus(event.getOrderID(),
                String.valueOf(OrderBean.Status.CANCELLED_PAYMENT.getStatus()));
        logger.info("Payment Denied");
    }
}
 
Example 20
Project: hopsworks   File: EmailBean.java   View source code 6 votes vote down vote up
@Asynchronous
public void sendEmail(String to, Message.RecipientType recipientType,
    String subject, String body) throws
    MessagingException, SendFailedException {

  MimeMessage message = new MimeMessage(mailSession);
  message.setFrom(new InternetAddress(mailSession.getProperty("mail.from")));
  InternetAddress[] address = {new InternetAddress(to)};
  message.setRecipients(recipientType, address);
  message.setSubject(subject);
  message.setContent(body, "text/html");

  // set the timestamp
  message.setSentDate(new Date());

  message.setText(body);
  try {
    Transport.send(message);
  } catch (MessagingException ex) {
    LOG.log(Level.SEVERE, ex.getMessage(), ex);
  }
}
 
Example 21
Project: hopsworks   File: YarnExecutionFinalizer.java   View source code 6 votes vote down vote up
@Asynchronous
public void finalize(Execution exec, JobState jobState) {
  long executionStop = System.currentTimeMillis();
  exec = executionFacade.updateExecutionStop(exec, executionStop);
  updateJobHistoryApp(exec.getExecutionDuration(), exec);
  try {
    // TODO(Antonis) In the future this call should be async as well
    // Network traffic in a transaction is not good
    removeAllNecessary(exec);
  } catch (IOException ex) {
    LOG.log(Level.WARNING,
        "Exception while cleaning after job:{0}, with appId:{1}, some cleanning is probably needed {2}", new Object[]{
          exec.getJob().getName(), exec.getAppId(), ex.getMessage()});
  }
  if (exec.getJob().getJobType().equals(JobType.FLINK)) {
    cleanCerts(exec);
  }
  updateState(jobState, exec);
}
 
Example 22
Project: actionbazaar   File: OrderProcessorBean.java   View source code 6 votes vote down vote up
/**
 * Places an order
 */
@Asynchronous
@Remove
@Override
public void placeOrder() {
    Order order = new Order();
    order.setBidder(bidder);
    order.setItem(item);
    order.setShipping(shipping);
    order.setBilling(billing);
    try {
        bill(order);
        notifyBillingSuccess(order);
        order.setStatus(OrderStatus.COMPLETE);
    } catch (BillingException be) {
        notifyBillingFailure(be, order);
        order.setStatus(OrderStatus.BILLING_FAILED);
    } finally {
        saveOrder(order);
    }
}
 
Example 23
Project: actionbazaar   File: OrderProcessorBean.java   View source code 6 votes vote down vote up
/**
 * Places an order
 */
@Asynchronous
@Remove
@Override
public void placeOrder() {
    Order order = new Order();
    order.setBidder(bidder);
    order.setItem(item);
    order.setShipping(shipping);
    order.setBilling(billing);
    try {
        bill(order);
        notifyBillingSuccess(order);
        order.setStatus(OrderStatus.COMPLETE);
    } catch (BillingException be) {
        notifyBillingFailure(be, order);
        order.setStatus(OrderStatus.BILLING_FAILED);
    } finally {
        saveOrder(order);
    }
}
 
Example 24
Project: wicket-quickstart-cdi-async   File: WorkflowBean.java   View source code 6 votes vote down vote up
/**
 * Does actually not work
 */
@Override
@Asynchronous
public void startAsynchronous(final IWorkflowListener listener)
{
	try
	{
		CdiContextAwareRunnable runnable = new CdiContextAwareRunnable(this.newWorkflowRunnable(listener));
		// runnable.addContext(RequestScoped.class);
		runnable.addContext(SessionScoped.class);
		// runnable.addContext(ApplicationScoped.class);
		runnable.addContext(ConversationScoped.class);

		runnable.run();
	}
	catch (WorkflowException e)
	{
		LOG.error(e.getMessage(), e);
	}
}
 
Example 25
Project: web-budget   File: Postman.java   View source code 6 votes vote down vote up
/**
 * Escuta por eventos de envio de e-mail
 * 
 * @param mailMessage a mensagem a ser enviada
 * @throws Exception caso haja problemas, dispara exception
 */
@Asynchronous
public void send(@Observes MailMessage mailMessage) throws Exception {
   
    final MimeMessage message = new MimeMessage(this.mailSession);

    // header da mensagem
    message.setFrom(mailMessage.getFrom());
    message.setSubject(mailMessage.getTitle());
    message.setRecipients(Message.RecipientType.TO, mailMessage.getAddressees());
    message.setRecipients(Message.RecipientType.CC, mailMessage.getCcs());
    
    // a mensagem
    message.setText(mailMessage.getContent(), "UTF-8", "html");
    message.setSentDate(new Date());

    // envia
    Transport.send(message);
}
 
Example 26
Project: appformer   File: IncrementalBuilderExecutorManager.java   View source code 6 votes vote down vote up
@Asynchronous
public void execute(final AsyncIncrementalBuilder incrementalBuilder) {
    if (useExecService.get()) {
        getExecutorService().execute(new DescriptiveRunnable() {
            @Override
            public void run() {
                incrementalBuilder.execute(projectService,
                                           buildService,
                                           incrementalBuildResultsEvent,
                                           buildResultsEvent);
            }

            @Override
            public String getDescription() {
                return incrementalBuilder.getDescription();
            }
        });
    } else {
        incrementalBuilder.execute(projectService,
                                   buildService,
                                   incrementalBuildResultsEvent,
                                   buildResultsEvent);
    }
}
 
Example 27
Project: Hotel-Reservation-Tool   File: ReservationBackendHandler.java   View source code 6 votes vote down vote up
@Asynchronous
public void handleNewReservations(@Observes NewReservationEvent newReservation) {
    int duration = rand.nextInt(6) + 5;
    LOGGER.log(INFO, "Incoming new reservation...{0}", newReservation);

    try {
        LOGGER.log(INFO, "delaying {0} secs before accepting", duration);
        sleep(duration * 1000L);

        bookingService.confirmReservation(newReservation.getReservationNumber());

        LOGGER.log(INFO, "Sending Email to guest about confirmation for {0}",
                newReservation.getReservationNumber());
    } catch (InterruptedException ex) {
        LOGGER.log(SEVERE, "Cannot sleep", ex);
        currentThread().interrupt();
    }
}
 
Example 28
Project: send-mail-server   File: SendMailBean.java   View source code 6 votes vote down vote up
@Asynchronous
public void send(@Observes Email email) {
	try {
		MimeMessage msg = new MimeMessage(session);
		msg.setHeader("Content-Type", "text/html;charset=UTF-8");
		msg.setSubject(email.getSubject(), defaultEncoding);
		msg.setContent(email.getBody(), MediaType.TEXT_HTML);

		Address[] internetAdress;
		if (email.getAddress() != null) {
			internetAdress = new Address[email.getAddress().size()];
			for (int i = 0; i < email.getAddress().size(); i++) {
				internetAdress[i] = new InternetAddress(email.getAddress()
						.get(i));
			}
			msg.setRecipients(RecipientType.TO, internetAdress);
		}
		
		Transport.send(msg);
	} catch (MessagingException e) {
		System.out.println(e);
	}
}
 
Example 29
Project: oracle-samples   File: DeliveryHandler.java   View source code 6 votes vote down vote up
@Override
@Asynchronous
public void onNewOrder(@Observes @Paid OrderEvent event) {
    
    logger.log(Level.FINEST, "{0} Event being processed by DeliveryHandler", Thread.currentThread().getName());
   
    try {           
        logger.log(Level.INFO, "Order #{0} has been paid in the amount of {1}. Order is now ready for delivery!", new Object[]{event.getOrderID(), event.getAmount()});
                                
        orderBean.setOrderStatus(event.getOrderID(), String.valueOf(OrderBean.Status.READY_TO_SHIP.getStatus()));
        CustomerOrder order = orderBean.getOrderById(event.getOrderID());
        if (order != null) {
            orderPublisher.sendMessage(order);
           
        } else {
            throw new Exception("The order does not exist");
        }
    } catch (Exception jex) {
        logger.log(Level.SEVERE, null, jex);
    }
}
 
Example 30
Project: oracle-samples   File: PaymentHandler.java   View source code 6 votes vote down vote up
@Override
@Asynchronous
public void onNewOrder(@Observes @New OrderEvent event) {

    logger.log(Level.FINEST, "{0} Event being processed by PaymentHandler",
            Thread.currentThread().getName());

    if (processPayment(event)) {
        orderBean.setOrderStatus(event.getOrderID(),
                String.valueOf(OrderBean.Status.PENDING_PAYMENT.getStatus()));
        logger.info("Payment Approved");
        eventManager.fire(event);
    } else {
        orderBean.setOrderStatus(event.getOrderID(),
                String.valueOf(OrderBean.Status.CANCELLED_PAYMENT.getStatus()));
        logger.info("Payment Denied");
    }
}
 
Example 31
Project: web-budget   File: Postman.java   View source code 6 votes vote down vote up
/**
 * Escuta por eventos de envio de e-mail
 * 
 * @param mailMessage a mensagem a ser enviada
 * @throws Exception caso haja problemas, dispara exception
 */
@Asynchronous
public void send(@Observes MailMessage mailMessage) throws Exception {
   
    final MimeMessage message = new MimeMessage(this.mailSession);

    // header da mensagem
    message.setFrom(mailMessage.getFrom());
    message.setSubject(mailMessage.getTitle());
    message.setRecipients(Message.RecipientType.TO, mailMessage.getAddressees());
    message.setRecipients(Message.RecipientType.CC, mailMessage.getCcs());
    
    // a mensagem
    message.setText(mailMessage.getContent(), "UTF-8", "html");
    message.setSentDate(new Date());

    // envia
    Transport.send(message);
}
 
Example 32
Project: aerogear-unifiedpush-server   File: HealthServiceImpl.java   View source code 6 votes vote down vote up
@Asynchronous
@Override
public Future<HealthDetails> dbStatus() {
    HealthDetails details = new HealthDetails();
    details.setDescription("Database connection");
    details.start();
    try {
        healthDao.dbCheck();
        details.setTestStatus(Status.OK);
        details.setResult("connected");
    } catch (Exception e) {
        details.setTestStatus(Status.CRIT);
        details.setResult(e.getMessage());
    }
    details.stop();
    return new AsyncResult<>(details);
}
 
Example 33
Project: aerogear-unifiedpush-server   File: HealthNetworkServiceImpl.java   View source code 6 votes vote down vote up
@Asynchronous
@Override
public Future<List<HealthDetails>> networkStatus() {
    final List<HealthDetails> results = new ArrayList<>(PUSH_NETWORKS.size());

    PUSH_NETWORKS.forEach(pushNetwork -> {
        HealthDetails details = new HealthDetails();
        details.start();
        details.setDescription(pushNetwork.getName());
        if (Ping.isReachable(pushNetwork.getHost(), pushNetwork.getPort())) {
            details.setTestStatus(Status.OK);
            details.setResult("online");
        } else {
            details.setResult(String.format("Network not reachable '%s'", pushNetwork.getName()));
            details.setTestStatus(Status.WARN);
        }

        results.add(details);
        details.stop();
    });

    return new AsyncResult<>(results);
}
 
Example 34
Project: tomee   File: AnnotationDeployer.java   View source code 6 votes vote down vote up
private void processAsynchronous(final EnterpriseBean bean, final AnnotationFinder annotationFinder) {
    if (!(bean instanceof SessionBean)) {
        return;
    }

    final SessionBean sessionBean = (SessionBean) bean;

    for (final Annotated<Method> method : annotationFinder.findMetaAnnotatedMethods(Asynchronous.class)) {
        sessionBean.getAsyncMethod().add(new AsyncMethod(method.get()));
    }

    //Spec 4.5.1 @Asynchronous could be used at the class level of a bean-class ( or superclass ).
    //Seems that it should not be used on the any interface view

    for (final Annotated<Class<?>> clazz : annotationFinder.findMetaAnnotatedClasses(Asynchronous.class)) {
        if (!clazz.get().isInterface()) {
            sessionBean.getAsynchronousClasses().add(clazz.get().getName());
        }
    }
}
 
Example 35
Project: eap-6.1-quickstarts   File: LongRunningService.java   View source code 6 votes vote down vote up
/**
* The use of {@link Asynchronous} causes this EJB method to be executed
* asynchronously, by a different thread from a dedicated, container managed
* thread pool.
* 
* @param asyncContext
*          the context for a suspended Servlet request that this EJB will
*          complete later.
*/
@Asynchronous
public void readData(AsyncContext asyncContext) {
    try {
        // This is just to simulate a long running operation for demonstration purposes.
        Thread.sleep(5000);
   
        PrintWriter writer = asyncContext.getResponse().getWriter();
        writer.println(new SimpleDateFormat("HH:mm:ss").format(new Date()));
        writer.close();
        
        asyncContext.complete();
    } catch (Exception e) {
        logger.log(Level.SEVERE, e.getMessage(), e);
    }
}
 
Example 36
Project: jboss-as-quickstart   File: LongRunningService.java   View source code 6 votes vote down vote up
/**
 * The use of {@link Asynchronous} causes this EJB method to be executed asynchronously, by a different thread from a
 * dedicated, container managed thread pool.
 * 
 * @param asyncContext the context for a suspended Servlet request that this EJB will complete later.
 */
@Asynchronous
public void readData(AsyncContext asyncContext) {
    try {
        // This is just to simulate a long running operation for demonstration purposes.
        Thread.sleep(5000);

        PrintWriter writer = asyncContext.getResponse().getWriter();
        writer.println(new SimpleDateFormat("HH:mm:ss").format(new Date()));
        writer.close();

        asyncContext.complete();
    } catch (Exception e) {
        logger.log(Level.SEVERE, e.getMessage(), e);
    }
}
 
Example 37
Project: JEECQRS-JCommonDomain-Integration   File: CommandLoggerService.java   View source code 6 votes vote down vote up
@Override
@Asynchronous
public void log(Command<?> command, Map<String, String> metadata) {
    Validate.notNull(command, "command must not be null");
    Validate.notNull(metadata, "metadata must not be null");
    String commandId = command.id().toString();
    WritableEventStream stream = streamFor(command);
    CommandLogEnvelope<Command<?>> envelope = new CommandLogEnvelope<Command<?>>(command,
            new HashMap<>(metadata));
    log.log(Level.FINE, "Logging command: {0}", envelope);
    stream.append(envelope);
    try {
        stream.commit(commandId);
    } catch (DuplicateCommitException | ConcurrencyException e) {
        throw new RuntimeException(e);
    }
}
 
Example 38
Project: Mastering-Java-EE-Development-with-WildFly   File: BusyOperator.java   View source code 5 votes vote down vote up
@Asynchronous
public Future<Object> stayBusy(CountDownLatch ready) {
	ready.countDown();

	try {
		count = new CountDownLatch(1);
		count.await();
	} catch (InterruptedException e) {
		interrupted();
	}

	return null;
}
 
Example 39
Project: oscm   File: AuditLogServiceBeanIT.java   View source code 5 votes vote down vote up
public void log_isAsynchronous() throws Exception {
    // given
    Method method = AuditLogServiceBean.class.getMethod("log");

    // when
    boolean isAsynchronous = method.isAnnotationPresent(Asynchronous.class);

    // then
    assertTrue(isAsynchronous);
}
 
Example 40
Project: oscm   File: TaskQueueServiceBean.java   View source code 5 votes vote down vote up
@Override
@Asynchronous
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void sendAllMessages(List<TaskMessage> messages) {
    validateMessages(messages);
    double msgSize = Math.ceil(messages.size()/1000.0);
    int counter = 0;
    while(counter < msgSize) {
        int fromIndex = counter * 1000;
        int toIndex = Math.min(fromIndex + 1000, messages.size());
        sendObjectMessage(messages.subList(fromIndex, toIndex));
        counter++;
    }
}