Package org.apache.ivory.expression

Examples of org.apache.ivory.expression.ExpressionHelper


                Date feedStart = feedValidity.getStart();
                Date feedEnd = feedValidity.getEnd();

                String instStartEL = input.getStart();
                String instEndEL = input.getEnd();
                ExpressionHelper evaluator = ExpressionHelper.get();

                Validity processValidity = ProcessHelper.getCluster(process, clusterName).getValidity();
                ExpressionHelper.setReferenceDate(processValidity.getStart());
                Date instStart = evaluator.evaluate(instStartEL, Date.class);
                if (instStart.before(feedStart))
                    throw new ValidationException("Start instance  " + instStartEL + " of feed " + feed.getName()
                            + " is before the start of feed " + feedValidity.getStart() + " for cluster " + clusterName);

                Date instEnd = evaluator.evaluate(instEndEL, Date.class);
                if (instEnd.after(feedEnd))
                    throw new ValidationException("End instance  " + instEndEL + " of feed " + feed.getName()
                            + " is before the start of feed " + feedValidity.getStart() + " for cluster " + clusterName);

                if (instEnd.before(instStart))
View Full Code Here


        }
    }

    public static void validateFeedRetentionPeriod(String startInstance, Feed feed, String clusterName) throws IvoryException {
        String feedRetention = FeedHelper.getCluster(feed, clusterName).getRetention().getLimit().toString();
        ExpressionHelper evaluator = ExpressionHelper.get();

        Date now = new Date();
        ExpressionHelper.setReferenceDate(now);
        Date instStart = evaluator.evaluate(startInstance, Date.class);
        long feedDuration = evaluator.evaluate(feedRetention, Long.class);
        Date feedStart = new Date(now.getTime() - feedDuration);

        if (instStart.before(feedStart)) {
            throw new ValidationException("StartInstance :" + startInstance + " of process is out of range for Feed: "
                    + feed.getName() + "  in cluster: " + clusterName + "'s retention limit :" + feedRetention);
View Full Code Here

                org.apache.ivory.entity.v0.feed.Validity feedValidity = FeedHelper.getCluster(feed, clusterName).getValidity();
                Date feedStart = feedValidity.getStart();
                Date feedEnd = feedValidity.getEnd();

                String instEL = output.getInstance();
                ExpressionHelper evaluator = ExpressionHelper.get();
                Validity processValidity = ProcessHelper.getCluster(process, clusterName).getValidity();
                ExpressionHelper.setReferenceDate(processValidity.getStart());
                Date inst = evaluator.evaluate(instEL, Date.class);
                if (inst.before(feedStart))
                    throw new ValidationException("Instance  " + instEL + " of feed " + feed.getName()
                            + " is before the start of feed " + feedValidity.getStart() + " for cluster" + clusterName);

                if (inst.after(feedEnd))
View Full Code Here

  public static Date getCutOffTime(Entity entity, String nominalTime)
      throws IvoryException {

    ConfigurationStore store = ConfigurationStore.get();
    ExpressionHelper evaluator = ExpressionHelper.get();
    Date instanceStart = EntityUtil.parseDateUTC(nominalTime);
    ExpressionHelper.setReferenceDate(instanceStart);
    Date endTime = new Date();
    Date feedCutOff = new Date(0);
    if (entity.getEntityType() == EntityType.FEED) {
      if (((Feed) entity).getLateArrival() == null) {
        LOG.debug("Feed's " + entity.getName()
            + " late arrival cut-off is not configured, returning");
        return feedCutOff;
      }
      String lateCutOff = ((Feed) entity).getLateArrival().getCutOff()
          .toString();
      endTime = EntityUtil.parseDateUTC(nominalTime);
      long feedCutOffPeriod = evaluator.evaluate(lateCutOff, Long.class);
      endTime = addTime(endTime, (int) feedCutOffPeriod);
      return endTime;
    } else if (entity.getEntityType() == EntityType.PROCESS) {
      Process process = (Process) entity;
      for (LateInput lp : process.getLateProcess().getLateInputs()) {
        Feed feed = null;
        String endInstanceTime = "";
        for (Input input : process.getInputs().getInputs()) {
          if (input.getName().equals(lp.getInput())) {
            endInstanceTime = input.getEnd();
            feed = store.get(EntityType.FEED, input.getFeed());
            break;
          }
        }
        if (feed.getLateArrival() == null) {
          LOG.debug("Feed's " + feed.getName()
              + " late arrival cut-off is not configured, ignoring this feed");
          continue;
        }
        String lateCutOff = feed.getLateArrival().getCutOff()
            .toString();
        endTime = evaluator.evaluate(endInstanceTime, Date.class);
        long feedCutOffPeriod = evaluator.evaluate(lateCutOff,
            Long.class);
        endTime = addTime(endTime, (int) feedCutOffPeriod);

        if (endTime.after(feedCutOff))
          feedCutOff = endTime;
View Full Code Here

            throw new IvoryException(e);
        }
    }

    private void validateFeedCutOffPeriod(Feed feed, Cluster cluster) throws IvoryException {
        ExpressionHelper evaluator = ExpressionHelper.get();

        String feedRetention = cluster.getRetention().getLimit().toString();
        long retentionPeriod = evaluator.evaluate(feedRetention, Long.class);

        if(feed.getLateArrival()==null){
          LOG.debug("Feed's late arrival cut-off not set");
          return;
        }
        String feedCutoff = feed.getLateArrival().getCutOff().toString();
        long feedCutOffPeriod = evaluator.evaluate(feedCutoff, Long.class);

        if (retentionPeriod < feedCutOffPeriod) {
            throw new ValidationException("Feed's retention limit: " + feedRetention + " of referenced cluster " + cluster.getName()
                    + " should be more than feed's late arrival cut-off period: " + feedCutoff + " for feed: " + feed.getName());
        }
View Full Code Here

    }

    public static String evaluateClusterExp(org.apache.ivory.entity.v0.cluster.Cluster clusterEntity, String exp)
            throws IvoryException {
        Properties properties = loadClusterProperties(clusterEntity);
        ExpressionHelper expHelp = ExpressionHelper.get();
        expHelp.setPropertiesForVariable(properties);
        return expHelp.evaluateFullExpression(exp, String.class);
    }
View Full Code Here

  }

  @Override
  public long getDelay(Frequency delay, Date nominalTime, Date cutOffTime)
      throws IvoryException {
    ExpressionHelper evaluator = ExpressionHelper.get();
    Date now = new Date();
    Date lateTime = nominalTime;
    long delayMilliSeconds = evaluator.evaluate(delay.toString(),
        Long.class);
    int factor = 1;
    // TODO we can get rid of this using formula
    while (lateTime.compareTo(now)<=0) {
      lateTime = addTime(lateTime, (int) (factor * delayMilliSeconds));
 
View Full Code Here

public abstract class AbstractRerunPolicy {

  public long getDurationInMilliSec(Frequency frequency)
      throws IvoryException {
    ExpressionHelper helper = ExpressionHelper.get();
    return helper.evaluate(frequency.toString(), Long.class);

  }
View Full Code Here

TOP

Related Classes of org.apache.ivory.expression.ExpressionHelper

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.