/**
*
*/
package com.tnc.lucene.util;
import org.apache.log4j.Logger;
import org.compass.core.Compass;
import org.compass.core.CompassSession;
import org.compass.core.CompassTransaction;
import org.compass.core.CompassTransaction.TransactionIsolation;
import org.compass.core.config.CompassConfiguration;
/**
* @author zhangleming_2007-9-30
*
*/
public class CompassUtils {
final static Logger logger=Logger.getLogger(CompassUtils.class);
private static CompassConfiguration config = null;
private static Compass compass = null;
private static final ThreadLocal<CompassSession> threadSession = new ThreadLocal<CompassSession>();
private static final ThreadLocal<CompassTransaction> threadTransaction = new ThreadLocal<CompassTransaction>();
/**
* zhangleming_2007-9-30
*/
public CompassUtils() {
}
static{
config = new CompassConfiguration()
.configure("/com/tnc/compass/tindex/tnc.cfg.xml");
compass = config.buildCompass();
}
public static Compass getCompass() {
return compass;
}
public static void setCompass(Compass compass) {
CompassUtils.compass = compass;
}
/**
* 重建compass
* @param config
*/
public static void rebuildCompass( CompassConfiguration config){
synchronized(compass){
compass=config.buildCompass();
CompassUtils.config=config;
}
}
/**
* 打开Session
* @return
*/
public static CompassSession openSession(){
CompassSession s=(CompassSession)threadSession.get();
if(s==null){
logger.debug("Open new CompassSession for thread");
s=getCompass().openSession();
threadSession.set(s);
}
return s;
}
/**
* 关闭CompassSesion
*
*/
public static void closeSession(){
CompassSession s=(CompassSession)threadSession.get();
threadSession.set(null);
if(s!=null){
logger.debug("Colse CompassSession of the thread");
s.close();
}
}
/**
* 事务启动
*
*/
public static void beginTransaction(){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction==null){
logger.debug("Open new CompassTransaction for thread");
transaction=CompassUtils.openSession().beginTransaction();
threadTransaction.set(transaction);
}
}
public static void beginTransaction(TransactionIsolation ti){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction==null){
logger.debug("Open new CompassTransaction for thread");
transaction=CompassUtils.openSession().beginTransaction(ti);
threadTransaction.set(transaction);
}
}
/**
* 事务提交
*
*/
public static void commitTransaction(){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction!=null&&!transaction.wasCommitted()&&!transaction.wasRolledBack()){
logger.debug("CompassTransaction is committing in the thread");
transaction.commit();
}
threadTransaction.set(null);
}
/**
* 回滚事务
*
*/
public static void rollbackTransaction(){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction!=null&&!transaction.wasCommitted()&&!transaction.wasRolledBack()){
logger.debug("try to rollback CompassTransaction in the Thread");
transaction.rollback();
}
threadTransaction.set(null);
}
}
*
*/
package com.tnc.lucene.util;
import org.apache.log4j.Logger;
import org.compass.core.Compass;
import org.compass.core.CompassSession;
import org.compass.core.CompassTransaction;
import org.compass.core.CompassTransaction.TransactionIsolation;
import org.compass.core.config.CompassConfiguration;
/**
* @author zhangleming_2007-9-30
*
*/
public class CompassUtils {
final static Logger logger=Logger.getLogger(CompassUtils.class);
private static CompassConfiguration config = null;
private static Compass compass = null;
private static final ThreadLocal<CompassSession> threadSession = new ThreadLocal<CompassSession>();
private static final ThreadLocal<CompassTransaction> threadTransaction = new ThreadLocal<CompassTransaction>();
/**
* zhangleming_2007-9-30
*/
public CompassUtils() {
}
static{
config = new CompassConfiguration()
.configure("/com/tnc/compass/tindex/tnc.cfg.xml");
compass = config.buildCompass();
}
public static Compass getCompass() {
return compass;
}
public static void setCompass(Compass compass) {
CompassUtils.compass = compass;
}
/**
* 重建compass
* @param config
*/
public static void rebuildCompass( CompassConfiguration config){
synchronized(compass){
compass=config.buildCompass();
CompassUtils.config=config;
}
}
/**
* 打开Session
* @return
*/
public static CompassSession openSession(){
CompassSession s=(CompassSession)threadSession.get();
if(s==null){
logger.debug("Open new CompassSession for thread");
s=getCompass().openSession();
threadSession.set(s);
}
return s;
}
/**
* 关闭CompassSesion
*
*/
public static void closeSession(){
CompassSession s=(CompassSession)threadSession.get();
threadSession.set(null);
if(s!=null){
logger.debug("Colse CompassSession of the thread");
s.close();
}
}
/**
* 事务启动
*
*/
public static void beginTransaction(){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction==null){
logger.debug("Open new CompassTransaction for thread");
transaction=CompassUtils.openSession().beginTransaction();
threadTransaction.set(transaction);
}
}
public static void beginTransaction(TransactionIsolation ti){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction==null){
logger.debug("Open new CompassTransaction for thread");
transaction=CompassUtils.openSession().beginTransaction(ti);
threadTransaction.set(transaction);
}
}
/**
* 事务提交
*
*/
public static void commitTransaction(){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction!=null&&!transaction.wasCommitted()&&!transaction.wasRolledBack()){
logger.debug("CompassTransaction is committing in the thread");
transaction.commit();
}
threadTransaction.set(null);
}
/**
* 回滚事务
*
*/
public static void rollbackTransaction(){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction!=null&&!transaction.wasCommitted()&&!transaction.wasRolledBack()){
logger.debug("try to rollback CompassTransaction in the Thread");
transaction.rollback();
}
threadTransaction.set(null);
}
}

被折叠的 条评论
为什么被折叠?



