java Source

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            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;

          /**
           * 消息驅(qū)動(dòng)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";//會(huì)話確認(rèn)模式
              
              
          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 閱讀(1076) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 安国市| 金门县| 五大连池市| 翁源县| 永福县| 桦南县| 杂多县| 高州市| 疏勒县| 大悟县| 巴林左旗| 雅江县| 宁城县| 新兴县| 华亭县| 务川| 保亭| 阳原县| 喀喇| 富平县| 手机| 武川县| 保亭| 普兰县| 汉中市| 南岸区| 焦作市| 三门县| 社会| 西平县| 霍林郭勒市| 布尔津县| 潞西市| 绵竹市| 铁岭市| 黄梅县| 和田市| 繁昌县| 阳江市| 海晏县| 农安县|