Package org.springframework.transaction.interceptor

Examples of org.springframework.transaction.interceptor.RuleBasedTransactionAttribute


    Method classMethod = ITestBean.class.getMethod("getAge", (Class[]) null);
   
    AnnotationTransactionAttributeSource atas = new AnnotationTransactionAttributeSource();
    TransactionAttribute actual = atas.getTransactionAttribute(classMethod, TestBean1.class);
   
    RuleBasedTransactionAttribute rbta = new RuleBasedTransactionAttribute();
    rbta.getRollbackRules().add(new RollbackRuleAttribute(Exception.class));
    assertEquals(rbta.getRollbackRules(), ((RuleBasedTransactionAttribute) actual).getRollbackRules());
  }
View Full Code Here


    Method interfaceMethod = ITestBean2.class.getMethod("getAge", (Class[]) null);

    AnnotationTransactionAttributeSource atas = new AnnotationTransactionAttributeSource();
    TransactionAttribute actual = atas.getTransactionAttribute(interfaceMethod, TestBean2.class);
   
    RuleBasedTransactionAttribute rbta = new RuleBasedTransactionAttribute();
      assertEquals(rbta.getRollbackRules(), ((RuleBasedTransactionAttribute) actual).getRollbackRules());
  }
View Full Code Here

    assertEquals(TransactionAttribute.PROPAGATION_REQUIRES_NEW, actual.getPropagationBehavior());
    assertEquals(TransactionAttribute.ISOLATION_REPEATABLE_READ, actual.getIsolationLevel());
    assertEquals(5, actual.getTimeout());
    assertTrue(actual.isReadOnly());

    RuleBasedTransactionAttribute rbta = new RuleBasedTransactionAttribute();
    rbta.getRollbackRules().add(new RollbackRuleAttribute(Exception.class));
    rbta.getRollbackRules().add(new NoRollbackRuleAttribute(IOException.class));
    assertEquals(rbta.getRollbackRules(), ((RuleBasedTransactionAttribute) actual).getRollbackRules());

    TransactionAttribute actual2 = atas.getTransactionAttribute(interfaceMethod2, TestBean3.class);
    assertEquals(TransactionAttribute.PROPAGATION_REQUIRED, actual2.getPropagationBehavior());
  }
View Full Code Here

    Method method = TestBean3.class.getMethod("getAge", (Class[]) null);
   
    AnnotationTransactionAttributeSource atas = new AnnotationTransactionAttributeSource();
    TransactionAttribute actual = atas.getTransactionAttribute(method, TestBean3.class);

    RuleBasedTransactionAttribute rbta = new RuleBasedTransactionAttribute();
    rbta.getRollbackRules().add(new RollbackRuleAttribute("java.lang.Exception"));
    rbta.getRollbackRules().add(new NoRollbackRuleAttribute(IOException.class));

    assertEquals(rbta.getRollbackRules(), ((RuleBasedTransactionAttribute) actual).getRollbackRules());
    assertTrue(actual.rollbackOn(new Exception()));
    assertFalse(actual.rollbackOn(new IOException()));
   
    actual = atas.getTransactionAttribute(method, method.getDeclaringClass());

    rbta = new RuleBasedTransactionAttribute();
    rbta.getRollbackRules().add(new RollbackRuleAttribute("java.lang.Exception"));
    rbta.getRollbackRules().add(new NoRollbackRuleAttribute(IOException.class));
   
    assertEquals(rbta.getRollbackRules(), ((RuleBasedTransactionAttribute) actual).getRollbackRules());
    assertTrue(actual.rollbackOn(new Exception()));
    assertFalse(actual.rollbackOn(new IOException()));
  }
View Full Code Here

    Method method = TestBean4.class.getMethod("getAge", (Class[]) null);

    AnnotationTransactionAttributeSource atas = new AnnotationTransactionAttributeSource();
    TransactionAttribute actual = atas.getTransactionAttribute(method, TestBean4.class);
   
    RuleBasedTransactionAttribute rbta = new RuleBasedTransactionAttribute();
    rbta.getRollbackRules().add(new RollbackRuleAttribute(Exception.class));
    rbta.getRollbackRules().add(new NoRollbackRuleAttribute(IOException.class));
    assertEquals(rbta.getRollbackRules(), ((RuleBasedTransactionAttribute) actual).getRollbackRules());
  }
View Full Code Here

public class SpringTransactionAnnotationParser implements TransactionAnnotationParser, Serializable {

  public TransactionAttribute parseTransactionAnnotation(AnnotatedElement ae) {
    Transactional ann = ae.getAnnotation(Transactional.class);
    if (ann != null) {
      RuleBasedTransactionAttribute rbta = new RuleBasedTransactionAttribute();
      rbta.setPropagationBehavior(ann.propagation().value());
      rbta.setIsolationLevel(ann.isolation().value());
      rbta.setTimeout(ann.timeout());
      rbta.setReadOnly(ann.readOnly());
      ArrayList<RollbackRuleAttribute> rollBackRules = new ArrayList<RollbackRuleAttribute>();
      Class[] rbf = ann.rollbackFor();
      for (int i = 0; i < rbf.length; ++i) {
        RollbackRuleAttribute rule = new RollbackRuleAttribute(rbf[i]);
        rollBackRules.add(rule);
      }
      String[] rbfc = ann.rollbackForClassName();
      for (int i = 0; i < rbfc.length; ++i) {
        RollbackRuleAttribute rule = new RollbackRuleAttribute(rbfc[i]);
        rollBackRules.add(rule);
      }
      Class[] nrbf = ann.noRollbackFor();
      for (int i = 0; i < nrbf.length; ++i) {
        NoRollbackRuleAttribute rule = new NoRollbackRuleAttribute(nrbf[i]);
        rollBackRules.add(rule);
      }
      String[] nrbfc = ann.noRollbackForClassName();
      for (int i = 0; i < nrbfc.length; ++i) {
        NoRollbackRuleAttribute rule = new NoRollbackRuleAttribute(nrbfc[i]);
        rollBackRules.add(rule);
      }
      rbta.getRollbackRules().addAll(rollBackRules);
      return rbta;
    }
    else {
      return null;
    }
View Full Code Here

      return null;
    }
  }

  public TransactionAttribute parseTransactionAnnotation(Transactional ann) {
    RuleBasedTransactionAttribute rbta = new RuleBasedTransactionAttribute();
    rbta.setPropagationBehavior(ann.propagation().value());
    rbta.setIsolationLevel(ann.isolation().value());
    rbta.setTimeout(ann.timeout());
    rbta.setReadOnly(ann.readOnly());
    rbta.setQualifier(ann.value());
    ArrayList<RollbackRuleAttribute> rollBackRules = new ArrayList<RollbackRuleAttribute>();
    Class[] rbf = ann.rollbackFor();
    for (Class rbRule : rbf) {
      RollbackRuleAttribute rule = new RollbackRuleAttribute(rbRule);
      rollBackRules.add(rule);
    }
    String[] rbfc = ann.rollbackForClassName();
    for (String rbRule : rbfc) {
      RollbackRuleAttribute rule = new RollbackRuleAttribute(rbRule);
      rollBackRules.add(rule);
    }
    Class[] nrbf = ann.noRollbackFor();
    for (Class rbRule : nrbf) {
      NoRollbackRuleAttribute rule = new NoRollbackRuleAttribute(rbRule);
      rollBackRules.add(rule);
    }
    String[] nrbfc = ann.noRollbackForClassName();
    for (String rbRule : nrbfc) {
      NoRollbackRuleAttribute rule = new NoRollbackRuleAttribute(rbRule);
      rollBackRules.add(rule);
    }
    rbta.getRollbackRules().addAll(rollBackRules);
    return rbta;
  }
View Full Code Here

      String name = methodEle.getAttribute("name");
      TypedStringValue nameHolder = new TypedStringValue(name);
      nameHolder.setSource(parserContext.extractSource(methodEle));

      RuleBasedTransactionAttribute attribute = new RuleBasedTransactionAttribute();
      String propagation = methodEle.getAttribute(PROPAGATION);
      String isolation = methodEle.getAttribute(ISOLATION);
      String timeout = methodEle.getAttribute(TIMEOUT);
      String readOnly = methodEle.getAttribute(READ_ONLY);
      if (StringUtils.hasText(propagation)) {
        attribute.setPropagationBehaviorName(RuleBasedTransactionAttribute.PREFIX_PROPAGATION + propagation);
      }
      if (StringUtils.hasText(isolation)) {
        attribute.setIsolationLevelName(RuleBasedTransactionAttribute.PREFIX_ISOLATION + isolation);
      }
      if (StringUtils.hasText(timeout)) {
        try {
          attribute.setTimeout(Integer.parseInt(timeout));
        }
        catch (NumberFormatException ex) {
          parserContext.getReaderContext().error("Timeout must be an integer value: [" + timeout + "]", methodEle);
        }
      }
      if (StringUtils.hasText(readOnly)) {
        attribute.setReadOnly(Boolean.valueOf(methodEle.getAttribute(READ_ONLY)).booleanValue());
      }

      List rollbackRules = new LinkedList();
      if (methodEle.hasAttribute(ROLLBACK_FOR)) {
        String rollbackForValue = methodEle.getAttribute(ROLLBACK_FOR);
        addRollbackRuleAttributesTo(rollbackRules,rollbackForValue);
      }
      if (methodEle.hasAttribute(NO_ROLLBACK_FOR)) {
        String noRollbackForValue = methodEle.getAttribute(NO_ROLLBACK_FOR);
        addNoRollbackRuleAttributesTo(rollbackRules,noRollbackForValue);
      }
      attribute.setRollbackRules(rollbackRules);

      transactionAttributeMap.put(nameHolder, attribute);
    }

    RootBeanDefinition attributeSourceDefinition = new RootBeanDefinition(NameMatchTransactionAttributeSource.class);
View Full Code Here

      return null;
    }
  }

  public TransactionAttribute parseTransactionAnnotation(Transactional ann) {
    RuleBasedTransactionAttribute rbta = new RuleBasedTransactionAttribute();
    rbta.setPropagationBehavior(ann.propagation().value());
    rbta.setIsolationLevel(ann.isolation().value());
    rbta.setTimeout(ann.timeout());
    rbta.setReadOnly(ann.readOnly());
    ArrayList<RollbackRuleAttribute> rollBackRules = new ArrayList<RollbackRuleAttribute>();
    Class[] rbf = ann.rollbackFor();
    for (int i = 0; i < rbf.length; ++i) {
      RollbackRuleAttribute rule = new RollbackRuleAttribute(rbf[i]);
      rollBackRules.add(rule);
    }
    String[] rbfc = ann.rollbackForClassName();
    for (int i = 0; i < rbfc.length; ++i) {
      RollbackRuleAttribute rule = new RollbackRuleAttribute(rbfc[i]);
      rollBackRules.add(rule);
    }
    Class[] nrbf = ann.noRollbackFor();
    for (int i = 0; i < nrbf.length; ++i) {
      NoRollbackRuleAttribute rule = new NoRollbackRuleAttribute(nrbf[i]);
      rollBackRules.add(rule);
    }
    String[] nrbfc = ann.noRollbackForClassName();
    for (int i = 0; i < nrbfc.length; ++i) {
      NoRollbackRuleAttribute rule = new NoRollbackRuleAttribute(nrbfc[i]);
      rollBackRules.add(rule);
    }
    rbta.getRollbackRules().addAll(rollBackRules);
    return rbta;
  }
View Full Code Here

    // See if there is a transaction annotation.
    for (Object att : atts) {
      if (att instanceof Transactional) {
        Transactional ruleBasedTx = (Transactional) att;

        RuleBasedTransactionAttribute rbta = new RuleBasedTransactionAttribute();
        rbta.setPropagationBehavior(ruleBasedTx.propagation().value());
        rbta.setIsolationLevel(ruleBasedTx.isolation().value());
        rbta.setTimeout(ruleBasedTx.timeout());
        rbta.setReadOnly(ruleBasedTx.readOnly());

        ArrayList<RollbackRuleAttribute> rollBackRules = new ArrayList<RollbackRuleAttribute>();

        Class[] rbf = ruleBasedTx.rollbackFor();
        for (int i = 0; i < rbf.length; ++i) {
          RollbackRuleAttribute rule = new RollbackRuleAttribute(rbf[i]);
          rollBackRules.add(rule);
        }

        String[] rbfc = ruleBasedTx.rollbackForClassName();
        for (int i = 0; i < rbfc.length; ++i) {
          RollbackRuleAttribute rule = new RollbackRuleAttribute(rbfc[i]);
          rollBackRules.add(rule);
        }

        Class[] nrbf = ruleBasedTx.noRollbackFor();
        for (int i = 0; i < nrbf.length; ++i) {
          NoRollbackRuleAttribute rule = new NoRollbackRuleAttribute(nrbf[i]);
          rollBackRules.add(rule);
        }

        String[] nrbfc = ruleBasedTx.noRollbackForClassName();
        for (int i = 0; i < nrbfc.length; ++i) {
          NoRollbackRuleAttribute rule = new NoRollbackRuleAttribute(nrbfc[i]);
          rollBackRules.add(rule);
        }

        rbta.getRollbackRules().addAll(rollBackRules);

        return rbta;
      }
    }
View Full Code Here

TOP

Related Classes of org.springframework.transaction.interceptor.RuleBasedTransactionAttribute

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.