Example usage for org.apache.commons.lang.time DateUtils addSeconds

List of usage examples for org.apache.commons.lang.time DateUtils addSeconds

Introduction

In this page you can find the example usage for org.apache.commons.lang.time DateUtils addSeconds.

Prototype

public static Date addSeconds(Date date, int amount) 

Source Link

Document

Adds a number of seconds to a date returning a new object.

Usage

From source file:ch.astina.hesperid.web.services.scheduler.SchedulerService.java

private void startFailureChecker() {
    try {/*from w  w  w  .ja v  a2  s . co m*/
        JobDetail jobDetail = JobBuilder.newJob(FailureCheckerJobExecutor.class)
                .withIdentity("failureChecker", "failureChecker").build();
        jobDetail.getJobDataMap().put("perthreadManager", perthreadManager);
        jobDetail.getJobDataMap().put("failureCheckerJob", failureCheckerJob);

        // Failure checker is started in one and a half minute that auto resolving can run first.
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("failureChecker-trigger")
                .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(DEFAULT_INTERVAL))
                .startAt(DateUtils.addSeconds(new Date(), 90)).build();

        scheduler.scheduleJob(jobDetail, trigger);
    } catch (Exception e) {
        logger.error("Error while starting failure checker", e);
    }
}

From source file:mitm.common.security.ca.CAImpl.java

private void setNextUpdate(CertificateRequest certificateRequest) {
    int index = certificateRequest.getIteration();

    /*/*from   ww  w  .  jav  a 2 s .  c o m*/
     * Use last delay if we have no more delay's left
     */
    if (index > delayTimes.length - 1) {
        index = delayTimes.length - 1;
    }

    Date nextUpdate = DateUtils.addSeconds(new Date(), delayTimes[index]);

    logger.debug("Next update for " + StringUtils.defaultString(certificateRequest.getEmail()) + " set to "
            + nextUpdate);

    certificateRequest.setNextUpdate(nextUpdate);
}

From source file:ch.ksfx.web.services.chart.ObservationChartGenerator.java

public TimePeriodValues getExponentialMovingAverage(TimeSeries asset, Date startDate, Date endDate,
        Integer emaTimeframeSeconds, Integer emaTimeframesBack, Boolean addCurrentPrice) {
    TimePeriodValues movingAverageBand = new TimePeriodValues(
            "EMA" + emaTimeframesBack + "TIMEFRAMES (" + emaTimeframeSeconds + ") " + asset.getName());

    List<Observation> assetPrices = observationDAO.queryObservationsSparse(asset.getId().intValue(), startDate,
            endDate);// w ww.  j a va2s  . com

    //Get some earlier prices to calc exponential moving average
    List<Observation> movingAveragePrices = observationDAO.queryObservationsSparse(asset.getId().intValue(),
            (startDate.getTime() == 0l) ? startDate
                    : DateUtils.addSeconds(startDate, (emaTimeframesBack * emaTimeframeSeconds * 2) * -1),
            endDate);

    //logger.info("Calculated date which is needed " + DateUtils.addDays(startDate, emaDaysBack * -1));

    assetPrices = simplifyAssetPrices(assetPrices);

    Integer filterSizer = 0;
    List<Observation> relevantMovingAveragePrices = null;
    Double movingAverage = null;

    for (Observation ap : assetPrices) {

        Date referenceDate = DateUtils.addSeconds(ap.getObservationTime(),
                (emaTimeframesBack * emaTimeframeSeconds) * -1);

        if (movingAveragePrices.get(0).getObservationTime().after(referenceDate)) {
            logger.info("Could not calc EMA earliest available date is "
                    + movingAveragePrices.get(0).getObservationTime());
            continue;
        }

        /*
        for (Integer iI = filterSizer; iI < movingAveragePrices.size(); iI++) {
        if (movingAveragePrices.get(iI + 1).getPricingTime().after(referenceDate)) {
            //We went too far, begin index was the last one
            filterSizer = iI;
            break;
        }
        }
        */

        relevantMovingAveragePrices = movingAveragePrices.subList(filterSizer, movingAveragePrices.indexOf(ap));

        logger.info("Calculating EMA");
        movingAverage = MovingAverageCalculator.calcExponentialMovingAverageObservation(emaTimeframeSeconds,
                emaTimeframesBack, relevantMovingAveragePrices, true, addCurrentPrice, null);

        movingAverageBand.add(new SimpleTimePeriod(ap.getObservationTime(), ap.getObservationTime()),
                movingAverage);
    }

    return movingAverageBand;
}

From source file:it.issue.IssueSearchTest.java

/**
 * SONAR-4563//from w  ww .  j  av  a 2s.  c om
 */
@Test
public void search_by_exact_creation_date() {
    final Issue issue = search(IssueQuery.create()).list().get(0);
    assertThat(issue.creationDate()).isNotNull();

    // search the issue key with the same date
    assertThat(search(IssueQuery.create().issues().issues(issue.key()).createdAt(issue.creationDate())).list())
            .hasSize(1);

    // search issue key with 1 second more and less should return nothing
    assertThat(search(IssueQuery.create().issues().issues(issue.key())
            .createdAt(DateUtils.addSeconds(issue.creationDate(), 1))).size()).isEqualTo(0);
    assertThat(search(IssueQuery.create().issues().issues(issue.key())
            .createdAt(DateUtils.addSeconds(issue.creationDate(), -1))).size()).isEqualTo(0);

    // search with future and past dates that do not match any issues
    assertThat(search(IssueQuery.create().createdAt(toDate("2020-01-01"))).size()).isEqualTo(0);
    assertThat(search(IssueQuery.create().createdAt(toDate("2010-01-01"))).size()).isEqualTo(0);
}

From source file:gov.nasa.ensemble.core.plan.resources.ui.profile.editor.ProfileDataPointsEditor.java

@SuppressWarnings("unchecked")
private TreeTableViewer createTreeTableViewer(final Composite parent, FormToolkit toolkit,
        final Profile profile) {
    boolean isProfileEditable = isProfileEditable(profile);
    //create tree viewer
    List<AbstractTreeTableColumn> columns = new ProfileDataPointColumnProvider(profile, isProfileEditable)
            .getColumns();/*  w w  w  . j a v a  2 s . c  o  m*/
    TreeTableColumnConfiguration config = new TreeTableColumnConfiguration(columns.get(0), columns,
            columns.get(0));
    TreeTableComposite ttc = new TreeTableComposite(parent, config, false);
    ttc.setLayout(new TreeTableColumnLayout(false));
    final TreeTableViewer viewer = new TreeTableViewer(ttc, config, null);

    //set providers
    viewer.setContentProvider(new ProfileEditorContentProvider());
    viewer.setLabelProvider(new TreeTableLabelProvider() {
        @Override
        public boolean needsUpdate(Object feature) {
            return false;
        }

        @Override
        public Font getFont(Object element) {
            return null;
        }

        @Override
        public Color getBackground(Object element) {
            return null;
        }
    });

    //if there's any changes in the profile data points... refresh viewer!
    final TransactionalEditingDomain domain = gov.nasa.ensemble.emf.transaction.TransactionUtils
            .getDomain(profile);
    final ResourceSetListenerImpl viewerRefreshListener = new ResourceSetListenerImpl() {
        @Override
        public void resourceSetChanged(ResourceSetChangeEvent event) {
            for (Notification notification : event.getNotifications()) {
                if (notification.getNotifier() == profile
                        && notification.getFeature() == JSciencePackage.Literals.PROFILE__DATA_POINTS) {
                    WidgetUtils.runInDisplayThread(viewer.getTree(), new Runnable() {
                        @Override
                        public void run() {
                            viewer.refresh();
                            parent.getParent().getParent().layout();
                        }
                    });
                }
            }
        }
    };
    if (domain != null) {
        domain.addResourceSetListener(viewerRefreshListener);
    }

    if (isProfileEditable) {
        Composite buttonsComposite = toolkit.createComposite(parent);
        buttonsComposite.setLayout(new GridLayout(2, false));
        buttonsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 2, 1));

        //insert new DataPoint
        final Button insertButton = toolkit.createButton(buttonsComposite, INSERT_BUTTON_TEXT, SWT.PUSH);
        insertButton.setToolTipText(INSERT_TOOLTIP_MESSAGE);
        final SelectionAdapter insertButtonSelectionListener = new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent event) {
                EList<DataPoint> dataPoints = profile.getDataPoints();
                DataPoint newDataPoint;
                if (dataPoints.isEmpty()) {
                    EPlan ePlan = EPlanUtils.getPlanFromResourceSet(profile);
                    Date date = (ePlan != null ? ePlan.getMember(TemporalMember.class).getStartTime()
                            : new Date());
                    newDataPoint = JScienceFactory.eINSTANCE.createEDataPoint(date, null);
                } else {
                    Date date;
                    ISelection selection = viewer.getSelection();
                    if (selection == null || selection.isEmpty()) {
                        date = dataPoints.get(dataPoints.size() - 1).getDate();
                    } else if (selection instanceof StructuredSelection) {
                        Object[] array = ((StructuredSelection) selection).toArray();
                        date = ((DataPoint) array[array.length - 1]).getDate();
                    } else {
                        date = new Date(); //if everything fails... just set to now
                    }
                    newDataPoint = JScienceFactory.eINSTANCE.createEDataPoint(DateUtils.addSeconds(date, 1),
                            null);
                }
                if (!dataPoints.contains(newDataPoint)) {
                    try {
                        AddProfileDataPointOperation op = new AddProfileDataPointOperation(profile,
                                newDataPoint);
                        op.addContext(viewer.getModel().getUndoContext());
                        IOperationHistory history = OperationHistoryFactory.getOperationHistory();
                        history.execute(op, null, null);
                        viewer.setSelection(new StructuredSelection(newDataPoint));
                    } catch (Exception e) {
                        LogUtil.error(e);
                    }
                } else {
                    showOperationError();
                    viewer.setSelection(new StructuredSelection(newDataPoint));
                }

            }
        };
        insertButton.addSelectionListener(insertButtonSelectionListener);

        //remove Data Point
        final Button removeButton = toolkit.createButton(buttonsComposite, REMOVE_BUTTON_TEXT, SWT.PUSH);
        removeButton.setToolTipText(REMOVE_TOOLTIP_MESSAGE);
        removeButton.setEnabled(!viewer.getSelection().isEmpty());
        final SelectionAdapter removeButtonSelectionListener = new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent event) {
                ISelection selection = viewer.getSelection();
                if (!selection.isEmpty()) {
                    if (selection instanceof StructuredSelection) {
                        StructuredSelection ss = (StructuredSelection) selection;
                        int selectionSize = ss.size();
                        DataPoint[] dps = new DataPoint[selectionSize];
                        Iterator<DataPoint> iterator = ss.iterator();
                        int i = 0;
                        while (iterator.hasNext()) {
                            dps[i++] = iterator.next();
                        }
                        RemoveProfileDataPointsOperation op = new RemoveProfileDataPointsOperation(profile,
                                dps);
                        op.addContext(EMFUtils.getUndoContext(profile));
                        IOperationHistory history = OperationHistoryFactory.getOperationHistory();
                        try {
                            history.execute(op, null, null);
                            viewer.setSelection(StructuredSelection.EMPTY);
                        } catch (Exception e) {
                            LogUtil.error(e);
                        }
                    }
                }
            }
        };
        removeButton.addSelectionListener(removeButtonSelectionListener);
        final ISelectionChangedListener removeButtonEnablementListener = new ISelectionChangedListener() {
            @Override
            public void selectionChanged(SelectionChangedEvent event) {
                removeButton.setEnabled(!viewer.getSelection().isEmpty());
            }
        };
        viewer.addSelectionChangedListener(removeButtonEnablementListener);

        //set dispose listener for editable profiles
        viewer.getControl().addDisposeListener(new DisposeListener() {
            @Override
            public void widgetDisposed(DisposeEvent e) {
                if (domain != null) {
                    domain.removeResourceSetListener(viewerRefreshListener);
                }
                insertButton.removeSelectionListener(insertButtonSelectionListener);
                removeButton.removeSelectionListener(removeButtonSelectionListener);
                viewer.removeSelectionChangedListener(removeButtonEnablementListener);
                dispose(viewer);
            }
        });
    } else {
        //set dispose listener for non-editable profiles
        viewer.getControl().addDisposeListener(new DisposeListener() {
            @Override
            public void widgetDisposed(DisposeEvent e) {
                if (domain != null) {
                    domain.removeResourceSetListener(viewerRefreshListener);
                }
                dispose(viewer);
            }
        });
    }
    return viewer;
}

From source file:ch.ksfx.web.services.chart.ObservationChartGenerator.java

public List<TimePeriodValues> getBollingerBands(TimeSeries asset, Date startDate, Date endDate,
        Integer movingAverageSeconds, Integer bollingerK) {
    List<TimePeriodValues> bollingerBands = new ArrayList<TimePeriodValues>();

    List<Observation> assetPrices = observationDAO.queryObservationsSparse(asset.getId().intValue(), startDate,
            endDate);/*from w w  w  . j a v a  2s  .  co  m*/

    //Get some earlier prices to calc simple moving average
    List<Observation> movingAveragePrices = observationDAO.queryObservationsSparse(asset.getId().intValue(),
            (startDate.getTime() == 0l) ? startDate
                    : DateUtils.addSeconds(startDate, movingAverageSeconds * -1),
            endDate);

    assetPrices = simplifyAssetPrices(assetPrices);

    TimePeriodValues middleBand = new TimePeriodValues(
            "SMA" + (movingAverageSeconds / 60 / 60 / 24) + "DAYS " + asset.getName());

    TimePeriodValues topBand = new TimePeriodValues("TimeBollinger Top K" + bollingerK + " " + asset.getName());
    TimePeriodValues bottomBand = new TimePeriodValues(
            "TimeBollinger Bottom K" + bollingerK + " " + asset.getName());

    List<Observation> relevantMovingAveragePrices = null;
    Double movingAverage = null;
    Double standardDeviation = null;

    Integer filterSizer = 0;

    for (Observation ap : assetPrices) {

        Date referenceDate = DateUtils.addSeconds(ap.getObservationTime(), movingAverageSeconds * -1);

        if (movingAveragePrices.get(0).getObservationTime().after(referenceDate)) {
            continue;
        }

        for (Integer iI = filterSizer; iI < movingAveragePrices.size(); iI++) {
            if (movingAveragePrices.get(iI + 1).getObservationTime().after(referenceDate)) {
                //We went to far, begin index was the last one
                filterSizer = iI;
                break;
            }
        }

        relevantMovingAveragePrices = movingAveragePrices.subList(filterSizer, movingAveragePrices.indexOf(ap));

        movingAverage = MovingAverageCalculator.calculateMovingAverageObservation(relevantMovingAveragePrices,
                true);

        middleBand.add(new SimpleTimePeriod(ap.getObservationTime(), ap.getObservationTime()), movingAverage);

        if (relevantMovingAveragePrices.size() > 1) {
            standardDeviation = BollingerCalculator
                    .calcStandardDeviationObservation(relevantMovingAveragePrices, true);

            topBand.add(new SimpleTimePeriod(ap.getObservationTime(), ap.getObservationTime()),
                    movingAverage + (standardDeviation * bollingerK));
            bottomBand.add(new SimpleTimePeriod(ap.getObservationTime(), ap.getObservationTime()),
                    movingAverage - (standardDeviation * bollingerK));
        }
    }

    bollingerBands.add(middleBand);

    bollingerBands.add(topBand);
    bollingerBands.add(bottomBand);

    return bollingerBands;
}

From source file:mitm.common.security.ca.hibernate.CertificateRequestStoreImplTest.java

@Test
public void testGetNextRequest() throws Exception {
    AutoTransactDelegator delegator = AutoTransactDelegator.createProxy();

    Date now = new Date();

    Date newer = DateUtils.addDays(now, 1);

    delegator.addRequest(newer, null, "2@example.com", 0, null, null, "dummy", null, null, null, null);

    delegator.addRequest(now, null, "1@example.com", 0, null, null, "dummy", null, null, null, null);

    CertificateRequest request = delegator.getNextRequest();

    assertNotNull(request);//from  ww  w. ja  v a 2 s.  c om
    assertEquals("1@example.com", request.getEmail());

    request = delegator.getNextRequest();

    assertNotNull(request);
    assertEquals("1@example.com", request.getEmail());

    delegator.updateRequest(request.getID(), new byte[] { 1, 2, 3 }, new Date(), "message",
            DateUtils.addSeconds(new Date(), 5));

    request = delegator.getNextRequest();

    assertNotNull(request);
    assertEquals("2@example.com", request.getEmail());

    request = delegator.getNextRequest();

    assertNotNull(request);
    assertEquals("2@example.com", request.getEmail());

    delegator.updateRequest(request.getID(), new byte[] { 1, 2, 3 }, new Date(), "message",
            DateUtils.addSeconds(new Date(), 6));

    request = delegator.getNextRequest();

    assertNull(request);
}

From source file:com.twitter.elephanttwin.util.DateUtil.java

/**
 * Add seconds to a calendar/*from ww  w  .  ja v a 2s  .  com*/
 * @param cal the calendar
 * @param numSeconds the seconds to subtract
 * @return the new calendar
 */
public static Calendar addSeconds(Calendar cal, int numSeconds) {
    Date newDate = DateUtils.addSeconds(cal.getTime(), numSeconds);
    Calendar newCal = Calendar.getInstance(UTC_TIMEZONE);
    newCal.setTime(newDate);
    return newCal;
}

From source file:com.haulmont.cuba.core.app.Emailer.java

protected List<SendingMessage> loadEmailsToSend() {
    Date sendTimeoutTime = DateUtils.addSeconds(timeSource.currentTimestamp(), -config.getSendingTimeoutSec());

    List<SendingMessage> emailsToSend = new ArrayList<>();

    try (Transaction tx = persistence.createTransaction()) {
        EntityManager em = persistence.getEntityManager();
        TypedQuery<SendingMessage> query = em.createQuery("select sm from sys$SendingMessage sm"
                + " where sm.status = :statusQueue or (sm.status = :statusSending and sm.updateTs < :time)"
                + " order by sm.createTs", SendingMessage.class);
        query.setParameter("statusQueue", SendingStatus.QUEUE.getId());
        query.setParameter("time", sendTimeoutTime);
        query.setParameter("statusSending", SendingStatus.SENDING.getId());

        View view = metadata.getViewRepository().getView(SendingMessage.class, "sendingMessage.loadFromQueue");
        view.setLoadPartialEntities(true); // because SendingAttachment.content has FetchType.LAZY
        query.setView(view);/*from w w  w. j a  v  a  2  s. c o  m*/

        query.setMaxResults(config.getMessageQueueCapacity());

        List<SendingMessage> resList = query.getResultList();

        for (SendingMessage msg : resList) {
            if (shouldMarkNotSent(msg)) {
                msg.setStatus(SendingStatus.NOTSENT);
            } else {
                msg.setStatus(SendingStatus.SENDING);
                emailsToSend.add(msg);
            }
        }
        tx.commit();
    }

    for (SendingMessage message : emailsToSend) {
        loadBodyAndAttachments(message);
    }
    return emailsToSend;
}

From source file:com.dp2345.service.impl.OrderServiceImpl.java

public Order create(Cart cart, Receiver receiver, PaymentMethod paymentMethod, ShippingMethod shippingMethod,
        CouponCode couponCode, boolean isInvoice, String invoiceTitle, boolean useBalance, String memo,
        Admin operator) {//from  ww  w .j  av a 2 s  .  c  o m
    Assert.notNull(cart);
    Assert.notNull(cart.getMember());
    Assert.notEmpty(cart.getCartItems());
    Assert.notNull(receiver);
    Assert.notNull(paymentMethod);
    Assert.notNull(shippingMethod);

    Order order = build(cart, receiver, paymentMethod, shippingMethod, couponCode, isInvoice, invoiceTitle,
            useBalance, memo);

    order.setSn(snDao.generate(Sn.Type.order));
    if (paymentMethod.getMethod() == PaymentMethod.Method.online) {
        order.setLockExpire(DateUtils.addSeconds(new Date(), 20));
        order.setOperator(operator);
    }

    if (order.getCouponCode() != null) {
        couponCode.setIsUsed(true);
        couponCode.setUsedDate(new Date());
        couponCodeDao.merge(couponCode);
    }

    for (Promotion promotion : cart.getPromotions()) {
        for (Coupon coupon : promotion.getCoupons()) {
            order.getCoupons().add(coupon);
        }
    }

    Setting setting = SettingUtils.get();
    if (setting.getStockAllocationTime() == StockAllocationTime.order
            || (setting.getStockAllocationTime() == StockAllocationTime.payment
                    && (order.getPaymentStatus() == PaymentStatus.partialPayment
                            || order.getPaymentStatus() == PaymentStatus.paid))) {
        order.setIsAllocatedStock(true);
    } else {
        order.setIsAllocatedStock(false);
    }

    orderDao.persist(order);

    OrderLog orderLog = new OrderLog();
    orderLog.setType(Type.create);
    orderLog.setOperator(operator != null ? operator.getUsername() : null);
    orderLog.setOrder(order);
    orderLogDao.persist(orderLog);

    Member member = cart.getMember();
    if (order.getAmountPaid().compareTo(new BigDecimal(0)) > 0) {
        memberDao.lock(member, LockModeType.PESSIMISTIC_WRITE);
        member.setBalance(member.getBalance().subtract(order.getAmountPaid()));
        memberDao.merge(member);

        Deposit deposit = new Deposit();
        deposit.setType(operator != null ? Deposit.Type.adminPayment : Deposit.Type.memberPayment);
        deposit.setCredit(new BigDecimal(0));
        deposit.setDebit(order.getAmountPaid());
        deposit.setBalance(member.getBalance());
        deposit.setOperator(operator != null ? operator.getUsername() : null);
        deposit.setMember(member);
        deposit.setOrder(order);
        depositDao.persist(deposit);
    }

    if (setting.getStockAllocationTime() == StockAllocationTime.order
            || (setting.getStockAllocationTime() == StockAllocationTime.payment
                    && (order.getPaymentStatus() == PaymentStatus.partialPayment
                            || order.getPaymentStatus() == PaymentStatus.paid))) {
        for (OrderItem orderItem : order.getOrderItems()) {
            if (orderItem != null) {
                Product product = orderItem.getProduct();
                productDao.lock(product, LockModeType.PESSIMISTIC_WRITE);
                if (product != null && product.getStock() != null) {
                    product.setAllocatedStock(product.getAllocatedStock()
                            + (orderItem.getQuantity() - orderItem.getShippedQuantity()));
                    productDao.merge(product);
                    orderDao.flush();
                    staticService.build(product);
                }
            }
        }
    }

    cartDao.remove(cart);
    return order;
}