当前位置: 首页>>代码示例>>Java>>正文


Java ChangeLogParserFactory类代码示例

本文整理汇总了Java中liquibase.parser.ChangeLogParserFactory的典型用法代码示例。如果您正苦于以下问题:Java ChangeLogParserFactory类的具体用法?Java ChangeLogParserFactory怎么用?Java ChangeLogParserFactory使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ChangeLogParserFactory类属于liquibase.parser包,在下文中一共展示了ChangeLogParserFactory类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: update

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
public void update(String contexts) throws LiquibaseException {
    contexts = StringUtils.trimToNull(contexts);
    LockService lockService = LockService.getInstance(database);
    lockService.waitForLock();

    changeLogParameters.setContexts(StringUtils.splitAndTrim(contexts, ","));

    try {
        DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile, changeLogParameters, resourceAccessor);

        checkDatabaseChangeLogTable(true, changeLog, contexts);

        changeLog.validate(database, contexts);
        ChangeLogIterator changeLogIterator = getStandardChangelogIterator(contexts, changeLog);

        changeLogIterator.run(new UpdateVisitor(database), database);
    } finally {
        try {
            lockService.releaseLock();
        } catch (LockException e) {
            log.severe("Could not release lock", e);
        }
    }
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:25,代码来源:Liquibase.java

示例2: rollback

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
public void rollback(String tagToRollBackTo, String contexts) throws LiquibaseException {
    contexts = StringUtils.trimToNull(contexts);
    changeLogParameters.setContexts(StringUtils.splitAndTrim(contexts, ","));

    LockService lockService = LockService.getInstance(database);
    lockService.waitForLock();

    try {

        DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile, changeLogParameters, resourceAccessor);
        checkDatabaseChangeLogTable(false, changeLog, contexts);

        changeLog.validate(database, contexts);

        List<RanChangeSet> ranChangeSetList = database.getRanChangeSetList();
        ChangeLogIterator logIterator = new ChangeLogIterator(ranChangeSetList, changeLog,
                new AfterTagChangeSetFilter(tagToRollBackTo, ranChangeSetList),
                new AlreadyRanChangeSetFilter(ranChangeSetList),
                new ContextChangeSetFilter(contexts),
                new DbmsChangeSetFilter(database));

        logIterator.run(new RollbackVisitor(database), database);
    } finally {
        lockService.releaseLock();
    }
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:27,代码来源:Liquibase.java

示例3: changeLogSync

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
public void changeLogSync(String contexts) throws LiquibaseException {
    contexts = StringUtils.trimToNull(contexts);
    changeLogParameters.setContexts(StringUtils.splitAndTrim(contexts, ","));

    LockService lockService = LockService.getInstance(database);
    lockService.waitForLock();

    try {
        DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile, changeLogParameters, resourceAccessor);
        checkDatabaseChangeLogTable(true, changeLog, contexts);
        changeLog.validate(database, contexts);

        ChangeLogIterator logIterator = new ChangeLogIterator(changeLog,
                new NotRanChangeSetFilter(database.getRanChangeSetList()),
                new ContextChangeSetFilter(contexts),
                new DbmsChangeSetFilter(database));

        logIterator.run(new ChangeLogSyncVisitor(database), database);
    } finally {
        lockService.releaseLock();
    }
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:23,代码来源:Liquibase.java

示例4: markNextChangeSetRan

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
public void markNextChangeSetRan(String contexts) throws LiquibaseException {
    contexts = StringUtils.trimToNull(contexts);
    changeLogParameters.setContexts(StringUtils.splitAndTrim(contexts, ","));

    LockService lockService = LockService.getInstance(database);
    lockService.waitForLock();

    try {
        DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile, changeLogParameters, resourceAccessor);
        checkDatabaseChangeLogTable(false, changeLog, contexts);
        changeLog.validate(database, contexts);

        ChangeLogIterator logIterator = new ChangeLogIterator(changeLog,
                new NotRanChangeSetFilter(database.getRanChangeSetList()),
                new ContextChangeSetFilter(contexts),
                new DbmsChangeSetFilter(database),
                new CountChangeSetFilter(1));

        logIterator.run(new ChangeLogSyncVisitor(database), database);
    } finally {
        lockService.releaseLock();
    }
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:24,代码来源:Liquibase.java

示例5: parseAndGenerate

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
@Test
public void parseAndGenerate() throws Exception {
	if (connection == null) {
		return;
	}

	Database database = liquiBase.getDatabase();
	ResourceAccessor resourceAccessor = new ClassLoaderResourceAccessor();

	ChangeLogParameters changeLogParameters = new ChangeLogParameters();

	DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile,
			changeLogParameters, resourceAccessor);

       liquiBase.checkLiquibaseTables(false, changeLog, new Contexts(), new LabelExpression());
	changeLog.validate(database);

	List<ChangeSet> changeSets = changeLog.getChangeSets();
	Change change = changeSets.get(0).getChanges().get(0);
	Sql[] sql = SqlGeneratorFactory.getInstance().generateSql(change.generateStatements(database)[0], database);

	String expected = "DROP SYNONYM new_synonym";
	assertEquals(expected, sql[0].toSql());
}
 
开发者ID:liquibase,项目名称:liquibase-oracle,代码行数:25,代码来源:DropSynonymTest.java

示例6: parseAndGenerate

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
@Test
public void parseAndGenerate() throws Exception {
	if (connection == null) {
		return;
	}

	Database database = liquiBase.getDatabase();
	ResourceAccessor resourceAccessor = new ClassLoaderResourceAccessor();

	ChangeLogParameters changeLogParameters = new ChangeLogParameters();

	DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile,
			changeLogParameters, resourceAccessor);

       liquiBase.checkLiquibaseTables(false, changeLog, new Contexts(), new LabelExpression());
	changeLog.validate(database);

	List<ChangeSet> changeSets = changeLog.getChangeSets();
	Change change = changeSets.get(0).getChanges().get(0);
	Sql[] sql = SqlGeneratorFactory.getInstance().generateSql(change.generateStatements(database)[0], database);

	String expected = "CREATE SYNONYM new_synonym FOR object";
	assertEquals(expected, sql[0].toSql());
}
 
开发者ID:liquibase,项目名称:liquibase-oracle,代码行数:25,代码来源:CreateSynonymTest.java

示例7: parseAndGenerate

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
@Test
public void parseAndGenerate() throws Exception {
	Database database = liquiBase.getDatabase();
	ResourceAccessor resourceAccessor = new ClassLoaderResourceAccessor();

	ChangeLogParameters changeLogParameters = new ChangeLogParameters();

	DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser( changeLogFile, resourceAccessor ).parse( changeLogFile, changeLogParameters, resourceAccessor );
	liquiBase.checkLiquibaseTables( true, changeLog, new Contexts() );
	changeLog.validate( database );

	List<ChangeSet> changeSets = changeLog.getChangeSets();

	List<String> expectedQuery = new ArrayList<String>();

	expectedQuery.add( String.format( "CREATE OR REPLACE VIEW %s.myview1 AS select 1 as One from dual", database.getLiquibaseSchemaName() ) );
	expectedQuery.add( String.format( "CREATE OR REPLACE VIEW %s.myview2 AS select * from mytable", database.getLiquibaseSchemaName() ) );
	expectedQuery.add( String.format( "CREATE OR REPLACE VIEW %s.myview2 AS select * from mytable where rownum = 1", database.getLiquibaseSchemaName() ) );
	expectedQuery.add( String.format( "CREATE OR REPLACE VIEW %s.myview4 AS select 1 as One from dual", database.getLiquibaseSchemaName() ) );
	expectedQuery.add( String.format( "CREATE OR REPLACE VIEW %s.myview3 AS select * from mytable", database.getLiquibaseSchemaName() ) );
	expectedQuery.add( String.format( "CREATE OR REPLACE VIEW %s.myview3 AS select * from mytable where one like '%%'", database.getLiquibaseSchemaName() ) );
	expectedQuery.add( String.format( "Drop materialized view myview2" ) );

	int i = 0;
	for ( ChangeSet changeSet : changeSets ) {
		for ( Change change : changeSet.getChanges() ) {
			Sql[] sql = SqlGeneratorFactory.getInstance().generateSql( change.generateStatements( database )[0], database );
			
			if ( change instanceof CreateFlexibleViewChange ) {
				for ( Sql s : sql ) {
					System.out.println( "--------------------------------------------------------------------------------------------------------" );
					System.out.println( "ACTUAL: " + s.toSql() );
					System.out.println( "EXPECT: " + expectedQuery.get( i ) );
					assertEquals( expectedQuery.get( i ), s.toSql() );
					i++;
				}
			}
		}
	}
}
 
开发者ID:mrswadge,项目名称:liquibase-flexibleview,代码行数:41,代码来源:CreateFlexibleViewTest.java

示例8: handleIncludedChangeLog

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
protected boolean handleIncludedChangeLog(String fileName,
		boolean isRelativePath, String relativeBaseFileName)
		throws LiquibaseException {
	if (!(fileName.endsWith(".xml") || fileName.endsWith(".sql"))) {
		log.debug(relativeBaseFileName + "/" + fileName
				+ " is not a recognized file type");
		return false;
	}

       if (fileName.equalsIgnoreCase(".svn") || fileName.equalsIgnoreCase("cvs")) {
           return false;
       }

	if (isRelativePath) {
		// workaround for FilenameUtils.normalize() returning null for relative paths like ../conf/liquibase.xml
		String tempFile = FilenameUtils.concat(FilenameUtils.getFullPath(relativeBaseFileName), fileName);
		if(tempFile != null && new File(tempFile).exists() == true) {
			fileName = tempFile;
		} else {
			fileName = FilenameUtils.getFullPath(relativeBaseFileName) + fileName;
		}
	}
	DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(fileName, resourceAccessor).parse(fileName, changeLogParameters,
					resourceAccessor);
	PreconditionContainer preconditions = changeLog.getPreconditions();
	if (preconditions != null) {
		if (null == databaseChangeLog.getPreconditions()) {
			databaseChangeLog.setPreconditions(new PreconditionContainer());
		}
		databaseChangeLog.getPreconditions().addNestedPrecondition(
				preconditions);
	}
	for (ChangeSet changeSet : changeLog.getChangeSets()) {
		handleChangeSet(changeSet);
	}

	return true;
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:39,代码来源:XMLChangeLogSAXHandler.java

示例9: listUnrunChangeSets

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
public List<ChangeSet> listUnrunChangeSets(String contexts) throws LiquibaseException {
    contexts = StringUtils.trimToNull(contexts);
    changeLogParameters.setContexts(StringUtils.splitAndTrim(contexts, ","));

    DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile, changeLogParameters, resourceAccessor);

    changeLog.validate(database, contexts);

    ChangeLogIterator logIterator = getStandardChangelogIterator(contexts, changeLog);

    ListVisitor visitor = new ListVisitor();
    logIterator.run(visitor, database);
    return visitor.getSeenChangeSets();
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:15,代码来源:Liquibase.java

示例10: calculateCheckSum

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
public CheckSum calculateCheckSum(final String filename, final String id, final String author) throws LiquibaseException {
    log.info(String.format("Calculating checksum for changeset %s::%s::%s", filename, id, author));
    final ChangeLogParameters changeLogParameters = this.getChangeLogParameters();
    final ResourceAccessor resourceAccessor = this.getFileOpener();
    final DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(this.changeLogFile, resourceAccessor).parse(this.changeLogFile, changeLogParameters, resourceAccessor);

    // TODO: validate?

    final ChangeSet changeSet = changeLog.getChangeSet(filename, author, id);
    if (changeSet == null) {
      throw new LiquibaseException(new IllegalArgumentException("No such changeSet: " + filename + "::" + id + "::" + author));
    }

    return changeSet.generateCheckSum();
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:16,代码来源:Liquibase.java

示例11: parseAndGenerate

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
@Test
public void parseAndGenerate() throws Exception {
    if (connection == null) {
        return;
    }

    Database database = liquiBase.getDatabase();
    ResourceAccessor resourceAccessor = new ClassLoaderResourceAccessor();

    ChangeLogParameters changeLogParameters = new ChangeLogParameters();


    DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile,
            changeLogParameters, resourceAccessor);

    changeLog.validate(database);


    List<ChangeSet> changeSets = changeLog.getChangeSets();

    List<String> expectedQuery = new ArrayList<String>();

    expectedQuery.add("CREATE TABLE LBUSER.person (id NUMBER(10), name VARCHAR2(50))");
    expectedQuery.add("INSERT INTO LBUSER.person (id, name) VALUES ('1', 'James')");
    expectedQuery.add("ALTER TABLE LBUSER.person RENAME TO Tperson");
    expectedQuery.add("CREATE OR REPLACE VIEW LBUSER.person AS SELECT * FROM Tperson");

    int i = 0;

    for (ChangeSet changeSet : changeSets) {
        for (Change change : changeSet.getChanges()) {
            Sql[] sql = SqlGeneratorFactory.getInstance().generateSql(change.generateStatements(database)[0], database);

            assertEquals(expectedQuery.get(i), sql[0].toSql());
        }
        i++;
    }
}
 
开发者ID:liquibase,项目名称:liquibase-oracle,代码行数:39,代码来源:EncapsulateTableWithViewTest.java

示例12: parseAndGenerate

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
@Test
public void parseAndGenerate() throws Exception {
    if (connection == null) {
        return;
    }

    Database database = liquiBase.getDatabase();
    ResourceAccessor resourceAccessor = new ClassLoaderResourceAccessor();

    ChangeLogParameters changeLogParameters = new ChangeLogParameters();


    DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile,
            changeLogParameters, resourceAccessor);

    changeLog.validate(database);


    List<ChangeSet> changeSets = changeLog.getChangeSets();

    List<String> expectedQuery = new ArrayList<String>();

    expectedQuery.add("ALTER TRIGGER zuiolTrigger RENAME TO RenamedZuiolTrigger");

    int i = 0;

    for (ChangeSet changeSet : changeSets) {
        for (Change change : changeSet.getChanges()) {
            Sql[] sql = SqlGeneratorFactory.getInstance().generateSql(change.generateStatements(database)[0], database);
            if (i == 4) {
                assertEquals(expectedQuery.get(0), sql[0].toSql());
            }
        }
        i++;
    }
}
 
开发者ID:liquibase,项目名称:liquibase-oracle,代码行数:37,代码来源:RenameTriggerTest.java

示例13: parseAndGenerate

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
@Test
public void parseAndGenerate() throws Exception {
    if (connection == null) {
        return;
    }

    Database database = liquiBase.getDatabase();
    ResourceAccessor resourceAccessor = new ClassLoaderResourceAccessor();

    ChangeLogParameters changeLogParameters = new ChangeLogParameters();


    DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile,
            changeLogParameters, resourceAccessor);

    changeLog.validate(database);


    List<ChangeSet> changeSets = changeLog.getChangeSets();

    List<String> expectedQuery = new ArrayList<String>();

    expectedQuery.add("ALTER TABLE LBUSER.test DISABLE CONSTRAINT tom_check");

    int i = 0;

    for (ChangeSet changeSet : changeSets) {
        for (Change change : changeSet.getChanges()) {
            Sql[] sql = SqlGeneratorFactory.getInstance().generateSql(change.generateStatements(database)[0], database);
            if (i == 2) {
                assertEquals(expectedQuery.get(0), sql[0].toSql());
            }
        }
        i++;
    }
}
 
开发者ID:liquibase,项目名称:liquibase-oracle,代码行数:37,代码来源:DisableConstraintChangeTest.java

示例14: parseAndGenerate

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
@Test
public void parseAndGenerate() throws Exception {
    if (connection == null) {
        return;
    }

    Database database = liquiBase.getDatabase();
    ResourceAccessor resourceAccessor = new ClassLoaderResourceAccessor();

    ChangeLogParameters changeLogParameters = new ChangeLogParameters();


    DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile,
            changeLogParameters, resourceAccessor);

    changeLog.validate(database);


    List<ChangeSet> changeSets = changeLog.getChangeSets();
    List<String> expectedQuery = new ArrayList<String>();

    expectedQuery
            .add("CREATE TRIGGER zuiolTrigger before INSERT ON TriggerTest FOR EACH ROW DECLARE v_username varchar2(10); BEGIN SELECT pierwsza INTO v_username FROM TriggerTest; :new.created_by := v_username; END;");

    int i = 0;

    for (ChangeSet changeSet : changeSets) {
        for (Change change : changeSet.getChanges()) {
            Sql[] sql = SqlGeneratorFactory.getInstance().generateSql(change.generateStatements(database)[0], database);
            if (i == 2) {
                assertEquals(expectedQuery.get(0), sql[0].toSql());
            }
        }
        i++;
    }
}
 
开发者ID:liquibase,项目名称:liquibase-oracle,代码行数:37,代码来源:CreateTriggerTest.java

示例15: parseAndGenerate

import liquibase.parser.ChangeLogParserFactory; //导入依赖的package包/类
@Test
public void parseAndGenerate() throws Exception {
	if (connection == null) {
		return;
	}

	Database database = liquiBase.getDatabase();
	ResourceAccessor resourceAccessor = new ClassLoaderResourceAccessor();

	ChangeLogParameters changeLogParameters = new ChangeLogParameters();

	DatabaseChangeLog changeLog = ChangeLogParserFactory.getInstance().getParser(changeLogFile, resourceAccessor).parse(changeLogFile, changeLogParameters, resourceAccessor);

	changeLog.validate(database);

	List<ChangeSet> changeSets = changeLog.getChangeSets();

	List<String> expectedQuery = new ArrayList<String>();

	expectedQuery.add("CREATE TABLE LBUSER.AddDeferredPrimaryKeyTest (id NUMBER(10), name VARCHAR2(50))");
	expectedQuery.add("ALTER TABLE LBUSER.AddDeferredPrimaryKeyTest ADD CONSTRAINT PK_AddDeferredPrimaryKeyTest PRIMARY KEY (id) DEFERRABLE INITIALLY DEFERRED");

	int i = 0;

	for (ChangeSet changeSet : changeSets) {
		for (Change change : changeSet.getChanges()) {
			Sql[] sql = SqlGeneratorFactory.getInstance().generateSql(change.generateStatements(database)[0], database);
			assertEquals(expectedQuery.get(i), sql[0].toSql());
		}
		i++;
	}
}
 
开发者ID:liquibase,项目名称:liquibase-oracle,代码行数:33,代码来源:AddDeferredPrimaryKeyChangeTest.java


注:本文中的liquibase.parser.ChangeLogParserFactory类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。