001 /* 002 * Copyright (c) 2009 The openGion Project. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 013 * either express or implied. See the License for the specific language 014 * governing permissions and limitations under the License. 015 */ 016 package org.opengion.plugin.daemon; 017 018 import org.opengion.hayabusa.common.HybsSystem; 019 import org.opengion.hayabusa.report.GE50Access; 020 import org.opengion.fukurou.util.LogWriter; 021 import org.opengion.fukurou.util.StringUtil; 022 import org.opengion.fukurou.util.HybsTimerTask; 023 024 import org.opengion.fukurou.mail.MailReceiveListener ; 025 import org.opengion.fukurou.mail.MailRX ; 026 027 import java.util.Date; 028 029 /** 030 * ã€ãƒ¡ãƒ¼ãƒ«ãƒ??モン】メールサーãƒã?を監視ã—ã¦ã€EXCELファイルã®DB登録処ç??ãƒ??モンã§ã™ã? 031 * æŒ?®šã?æ¡ä»¶ã§ãƒ¡ãƒ¼ãƒ«ã‚µãƒ¼ãƒã?を監視ã—ã€æ·»ä»˜ã?EXCELファイルをå–りå?ã—ã¾ã™ã? 032 * 添付ファイルã¯ã€EXCELå–り込ã¿ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースã«å‰?‚Šã€è¦æ±‚番å·.xls ã«ãƒªãƒã?ãƒ?—㦠033 * æ‰?®šã?ãƒ?‚£ãƒ¬ã‚¯ãƒˆãƒª(EXCEL_IN_FILE_URLã§å®šç¾©)ã«ã‚»ãƒ¼ãƒ–ã—ã€å¸³ç¥¨è¦æ±‚テーブルã«ç™»éŒ²ã—ã¾ã™ã?(GE50) 034 * ãれ以é™ã?処ç??ã€EXCEL帳票ãƒ??モン以下ã?共通å?ç?§å‡¦ç?•れã¾ã™ã? 035 * EXCELå–り込ã¿å‡¦ç??ã€ã“ã®ãƒ¡ãƒ¼ãƒ«è‡ªå‹•å–り込ã¿ã¨ã€ãƒ•ァイルアãƒ??ãƒãƒ¼ãƒ‰ã?æ–¹å¼ã‚’ 036 * サãƒã?トã—ã¦ã?¾ã™ã? 037 * 038 * @og.rev 3.8.0.0 (2005/06/07) æ–°è¦è¿½åŠ? 039 * @og.rev 4.3.4.4 (2009/01/01) プラグインåŒ? 040 * @og.group ãƒ??モン 041 * 042 * @version 4.0 043 * @author Kazuhiko Hasegawa 044 * @since JDK5.0, 045 */ 046 public class Daemon_MailReceive extends HybsTimerTask { 047 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */ 048 private static final String VERSION = "5.3.0.0 (2010/12/01)" ; 049 050 private int loopCnt = 0; 051 private static final int LOOP_COUNTER = 24; // カウンタã‚?4回ã«è¨å®? 052 053 private MailRX mailRX = null; 054 055 /** 056 * ã“ã?タイマã?タスクã«ã‚ˆã£ã¦åˆæœŸåŒ–ã•れるアクションã§ã™ã? 057 * パラメータを使用ã—ãŸåˆæœŸåŒ–を行ã„ã¾ã™ã? 058 * 059 */ 060 @Override 061 public void initDaemon() { 062 063 String host = StringUtil.nval( getValue( "HOST" ) , HybsSystem.sys( "COMMON_MAIL_SERVER" ) ); 064 String user = StringUtil.nval( getValue( "USER" ) , HybsSystem.sys( "MAIL_DAEMON_DEFAULT_USER" ) ); 065 String passwd = StringUtil.nval( getValue( "PASSWD" ) , HybsSystem.sys( "MAIL_DAEMON_DEFAULT_PASS" ) ); 066 067 mailRX = new MailRX(); 068 mailRX.setHost( host ); 069 mailRX.setUser( user ); 070 mailRX.setPasswd( passwd ); 071 mailRX.setDelete( true ); 072 073 // ç¾æ®µéšŽã§ã¯ã€Subjectã«ã‚ˆã‚‹ãƒ¡ãƒ¼ãƒ«å–得振åˆ??行ã„ã¾ã›ã‚“ã€? 074 // æ¡ä»¶ã«åˆã‚ãªã?‚¨ãƒ©ãƒ¼ãƒ¡ãƒ¼ãƒ«ã‚’å–りå?ã™æ©Ÿä¼šãŒãªããªã‚‹ãŸã‚ã§ã™ã? 075 // String subject = getValue( "SUBJECT" ); 076 // if( subject != null && subject.length() > 0 ) { 077 // HybsEntry entry = new HybsEntry( "Subject",subject ); 078 // mailRX.addMatchTerm( entry ); 079 // } 080 081 String receiveListener = getValue( "RECEIVE_LISTENER" ); 082 MailReceiveListener listener = (MailReceiveListener)HybsSystem.newInstance( receiveListener ); 083 mailRX.setMailReceiveListener( listener ); 084 } 085 086 /** 087 * タイマã?タスクã®ãƒ??モン処ç??é–‹å§‹ã?イントã§ã™ã? 088 * 089 * @og.rev 5.3.0.0 (2010/12/01) エラーãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ã‚’ä¿®æ£ 090 * 091 */ 092 @Override 093 protected void startDaemon() { 094 if( loopCnt % LOOP_COUNTER == 0 ) { 095 loopCnt = 1; 096 System.out.println(); 097 System.out.print( toString() + " " + new Date() + " " ); 098 } 099 else { 100 System.out.print( "." ); 101 loopCnt++ ; 102 } 103 104 try { 105 mailRX.start(); 106 } 107 // catch( Throwable ex ) { 108 // GE50Access GE50 = new GE50Access( "CYYYYY","M_Daemon","MailReceive" ); 109 // 110 // GE50.setSystemId( "ERR" ); 111 // GE50.makeYkno(); 112 // 113 // GE50.insertGE50( GE50Access.FG_ERR1 ); 114 // 115 // String errMsg = StringUtil.stringStackTrace( ex ); 116 // GE50.insertErrorGE56( errMsg ); 117 // 118 // LogWriter.log( errMsg ); 119 // } 120 // 5.3.0.0 (2010/12/01) エラーãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ã‚’ä¿®æ£ 121 catch( Throwable ex ) { 122 String errMsg = StringUtil.stringStackTrace( ex ) ; 123 System.out.println( errMsg ); 124 LogWriter.log( errMsg ); 125 126 GE50Access ge50 = new GE50Access( "CYYYYY","M_Daemon","MailReceive" ); 127 128 ge50.setSystemId( "ERR" ); 129 ge50.makeYkno(); 130 131 ge50.insertErrorGE56( errMsg ); 132 ge50.insertGE50( GE50Access.FG_ERR1 ); 133 134 } 135 } 136 }