@Test
  public void testThatFilesAreTheSameAfterMerge() throws Exception {
    DefaultXmlFormatter xmlFormatter = new DefaultXmlFormatter();
    Properties p = new Properties();
    p.setProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_DATE, "true");
    CommentGenerator commentGenerator = new DefaultCommentGenerator();
    commentGenerator.addConfigurationProperties(p);

    Document document =
        new Document(
            XmlConstants.MYBATIS3_MAPPER_PUBLIC_ID, XmlConstants.MYBATIS3_MAPPER_SYSTEM_ID);
    document.setRootElement(getSqlMapElement(commentGenerator));

    GeneratedXmlFile generatedFile1 =
        new GeneratedXmlFile(
            document, "TestMapper.xml", "org.mybatis.test", "src", true, xmlFormatter);
    InputSource is1 = new InputSource(new StringReader(generatedFile1.getFormattedContent()));

    GeneratedXmlFile generatedFile2 =
        new GeneratedXmlFile(
            document, "TestMapper.xml", "org.mybatis.test", "src", true, xmlFormatter);
    InputSource is2 = new InputSource(new StringReader(generatedFile2.getFormattedContent()));

    String mergedSource = XmlFileMergerJaxp.getMergedSource(is1, is2, "TestMapper.xml");

    assertEquals(generatedFile1.getFormattedContent(), mergedSource);
  }
示例#2
0
  @Override
  public List<GeneratedXmlFile> contextGenerateAdditionalXmlFiles() {
    Document document =
        new Document(
            XmlConstants.IBATIS2_SQL_MAP_CONFIG_PUBLIC_ID,
            XmlConstants.IBATIS2_SQL_MAP_CONFIG_SYSTEM_ID);

    XmlElement root = new XmlElement("sqlMapConfig"); // $NON-NLS-1$
    document.setRootElement(root);

    root.addElement(new TextElement("<!--")); // $NON-NLS-1$
    root.addElement(
        new TextElement("  This file is generated by MyBatis Generator.")); // $NON-NLS-1$
    root.addElement(
        new TextElement(
            "  This file is the shell of an SqlMapConfig file - in many cases you will need to add")); //$NON-NLS-1$
    root.addElement(
        new TextElement("    to this file before it is usable by iBATIS.")); // $NON-NLS-1$

    StringBuilder sb = new StringBuilder();
    sb.append("  This file was generated on "); // $NON-NLS-1$
    sb.append(new Date());
    sb.append('.');
    root.addElement(new TextElement(sb.toString()));

    root.addElement(new TextElement("-->")); // $NON-NLS-1$

    XmlElement settings = new XmlElement("settings"); // $NON-NLS-1$
    settings.addAttribute(
        new Attribute("useStatementNamespaces", "true")); // $NON-NLS-1$ //$NON-NLS-2$
    root.addElement(settings);

    XmlElement sqlMap;
    for (String sqlMapFile : sqlMapFiles) {
      sqlMap = new XmlElement("sqlMap"); // $NON-NLS-1$
      sqlMap.addAttribute(new Attribute("resource", sqlMapFile)); // $NON-NLS-1$
      root.addElement(sqlMap);
    }

    GeneratedXmlFile gxf =
        new GeneratedXmlFile(
            document,
            properties.getProperty("fileName", "SqlMapConfig.xml"), // $NON-NLS-1$ //$NON-NLS-2$
            properties.getProperty("targetPackage"), // $NON-NLS-1$
            properties.getProperty("targetProject"), // $NON-NLS-1$
            false,
            context.getXmlFormatter());

    List<GeneratedXmlFile> answer = new ArrayList<GeneratedXmlFile>(1);
    answer.add(gxf);

    return answer;
  }