java Source

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  14 Posts :: 24 Stories :: 8 Comments :: 0 Trackbacks
/*
 * LogMessageBean.java
 * Copyright (C) 2009  <JustinLei@gmail.com>
 *
 *        This program is free software; you can redistribute it and/or modify
 *        it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *     (at your option) any later version.
 *
 *       This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *        GNU General Public License for more details.
 *
 
*/
package org.lambdasoft.mdb;

import java.util.Map;

import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.naming.InitialContext;

import org.lambdasoft.components.log.BaseLogSendInterface;
import org.lambdasoft.components.log.OperateType;
import org.lambdasoft.components.log.param.LogParam;
import org.lambdasoft.utils.FileUtil;

/**
 * 日志添加消息
 * 
 * 
@author lei.tang (justinlei@gmail.com)
 * @date 2009-9-17
 * 
@version 1.0
 
*/
@MessageDriven(activationConfig 
= {
        @ActivationConfigProperty(propertyName 
= "destinationType", propertyValue = MessageConstant.DESTINATIONTYPE_QUEUE),
        @ActivationConfigProperty(propertyName 
= "acknowledgeMode", propertyValue = MessageConstant.ACKNOWLEDGEMODE_AUTO),
        @ActivationConfigProperty(propertyName 
= "destination", propertyValue = MessageConstant.DESTINATION_LOG) })
public class LogMessageBean implements MessageListener{
    
public static final String LOG_PREFIX = "LOG.TYPE.BEAN.";
    
private Map<String, String> logConfigure;
    
public void onMessage(Message message) {
        
if(!(message instanceof ObjectMessage))
            
return;
        ObjectMessage objectMessage 
= (ObjectMessage)message;
        
try {
            
if(!(objectMessage.getObject() instanceof LogParam))
                
return;
            LogParam logParam 
= (LogParam)objectMessage.getObject();
            InitialContext context 
= new InitialContext();
            
for (Object level : logParam.getOperateTypes()) {
                OperateType operateType 
= (OperateType)level;
                String ejbName 
= getConfigure().get(LOG_PREFIX + (operateType.toString()));
                Object sendComponent 
= context.lookup(ejbName);
                
if (sendComponent != null
                        
&& (sendComponent instanceof BaseLogSendInterface)) {
                    ((BaseLogSendInterface) sendComponent).log(logParam);
                }
            }
        } 
catch (Exception e) {
            e.printStackTrace();
            
return;
        }
    }
    
    
private Map<String, String> getConfigure() {
        String propertiesName 
= "/org/lambdasoft/components/log/ejb/logConfigure.properties";
        
try {
            logConfigure 
= FileUtil.getPropertiesMap(LogMessageBean.class,propertiesName);
            
return logConfigure;
        } 
catch (Exception e) {
            
return null;
        }
    }
}



/*
 * MessageConstant.java
 * Copyright (C) 2009  <JustinLei@gmail.com>
 *
 *        This program is free software; you can redistribute it and/or modify
 *        it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *     (at your option) any later version.
 *
 *       This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *        GNU General Public License for more details.
 *
 
*/
package org.lambdasoft.mdb;

/**
 * 消息驱动bean定义
 * 
 * 
@author lei.tang (justinlei@gmail.com)
 * @date 2009-9-18
 * 
@version 1.0
 
*/
public class MessageConstant {
    
public static final String DESTINATIONTYPE_QUEUE = "javax.jms.Queue";
    
public static final String ACKNOWLEDGEMODE_AUTO = "Auto-acknowledge";//会话确认模式
    
    
public static final String DESTINATION_CACHE = "queue/AO_CACHE";
    
public static final String DESTINATION_LOG = "queue/AO_LOG";
    
public static final String DESTINATION_MAIL = "queue/AO_MAIL";
    
public static final String DESTINATION_CACHE_REFLASH = "queue/AO_CACHE_REFLASH";
    
    
private MessageConstant() {}
    
}



/*
 * LogMessage.java
 * Copyright (C) 2009  <JustinLei@gmail.com>
 *
 *     This program is free software; you can redistribute it and/or modify
 *     it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */
package org.lambdasoft.mdb;

import java.io.Serializable;

/**
 * 
 * @author lei.tang (justinlei@gmail.com)
 * @date 2009-9-17
 * @version 1.0
 */
public interface LogMessage extends Serializable{
String getType();
String getLevel();
String getLog();
}

posted on 2009-12-18 15:17 JustinLei 阅读(1068) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: