@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); }
@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; }