databasefilemgr.java
来自「一个java工作流引擎」· Java 代码 · 共 69 行
JAVA
69 行
package org.jbpm.persistence.filemgr;
import org.apache.commons.logging.*;
import org.jbpm.*;
import org.jbpm.model.definition.impl.*;
import org.jbpm.persistence.*;
public class DatabaseFileMgr implements FileMgr {
protected PersistenceSessionFactory persistenceSessionFactory = null;
public DatabaseFileMgr( JbpmConfiguration jbpmConfiguration ) {
persistenceSessionFactory = (PersistenceSessionFactory) jbpmConfiguration.instantiate( "jbpm.persistence.session.factory", PersistenceSessionFactory.class );
}
public void storeBytes(Long definitionId, String fileName, byte[] bytes) {
FileImpl file = new FileImpl( definitionId, fileName, bytes );
PersistenceSessionTx sessionTx = null;
try {
log.info( "storing file '" + fileName + "' for definition '" + definitionId + "'..." );
// get a persistence session with a transaction
sessionTx = persistenceSessionFactory.createPersistenceSessionTx();
// save all changes made in the process instance
sessionTx.save( file );
// commit the transaction
sessionTx.commitAndClose();
sessionTx = null;
if ( log.isDebugEnabled() ) log.debug( "stored file '" + fileName + "' successfully" );
} finally {
if ( sessionTx != null ) {
sessionTx.rollbackAndClose();
}
}
}
public byte[] retrieveBytes(Long definitionId, String fileName) {
byte[] bytes = null;
PersistenceSession session = null;
try {
if ( log.isDebugEnabled() ) log.info( "retrieving file '" + fileName + "' for definition '" + definitionId + "' from database..." );
// get a persistence session with a transaction
session = persistenceSessionFactory.createPersistenceSession();
// save all changes made in the process instance
FileImpl file = session.findFile( definitionId, fileName );
if ( file != null ) {
bytes = file.getBytes();
}
if ( log.isDebugEnabled() ) log.debug( "retrieved file '" + fileName + "' successfully" );
} finally {
if ( session != null ) {
session.close();
}
}
return bytes;
}
private static Log log = LogFactory.getLog(DatabaseFileMgr.class);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?