チェンジセット 339

差分発生行の前後
無視リスト:
コミット日時:
2008/10/09 18:58:18 (14 年前)
コミッタ:
shinomiya
ログメッセージ:

#550 一時Zipファイルの出力ディレクトリを指定できるように修正。

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • trunk/im-jssp/src/main/java/org/intra_mart/jssp/script/api/ArchiverObject.java

    r338 r339  
    1818 
    1919import org.intra_mart.common.platform.log.Logger; 
     20import org.intra_mart.jssp.script.provider.ScriptScopeBuilderManager; 
    2021import org.intra_mart.jssp.util.RuntimeObject; 
     22import org.intra_mart.jssp.util.config.HomeDirectory; 
     23import org.intra_mart.jssp.util.config.JSSPConfigHandler; 
     24import org.intra_mart.jssp.util.config.JSSPConfigHandlerManager; 
    2125import org.mozilla.javascript.Context; 
    2226import org.mozilla.javascript.Function; 
     
    2428import org.mozilla.javascript.ScriptableObject; 
    2529import org.mozilla.javascript.Undefined; 
     30import org.w3c.dom.Element; 
     31import org.w3c.dom.NodeList; 
    2632 
    2733/** 
     
    3238 */ 
    3339public class ArchiverObject extends ScriptableObject { 
     40         
    3441        public static final String CLASS_NAME = "Archiver"; 
     42        public static final String NON_CONVERT_CHARSET = "ISO-8859-1"; 
    3543         
    3644        private static Logger logger = Logger.getLogger(); 
    37         public static final String NON_CONVERT_CHARSET = "ISO-8859-1"; 
     45        private static File _archiverWorkDir; 
     46 
     47        static { 
     48                initializeArchiverWorkDir(null); 
     49        } 
    3850 
    3951        /* (non-Javadoc) 
     
    264276                } 
    265277                else{ 
    266                         zipFile = File.createTempFile(ArchiverObject.class.getSimpleName() + "_zip_", ".zip"); 
    267                         zipFile.deleteOnExit(); 
     278                        zipFile = createTempZipFile(); 
    268279                } 
    269280                 
     
    332343                 
    333344        } 
    334          
    335345         
    336346        /** 
     
    627637                } 
    628638                else{ 
    629                         zipFile = File.createTempFile(ArchiverObject.class.getSimpleName() + "_zip_", ".zip"); 
    630                         zipFile.deleteOnExit(); 
    631                          
     639                        zipFile = createTempZipFile(); 
    632640                        FileOutputStream fos = new FileOutputStream(zipFile); 
    633641                        fos.write(srcString.getBytes(NON_CONVERT_CHARSET)); 
     
    695703                return dest; 
    696704        } 
    697                  
     705 
     706                 
     707        /** 
     708         * @param arg 
     709         */ 
     710        protected static void initializeArchiverWorkDir(File arg) { 
     711                String tagName = "work-dir"; 
     712                 
     713                if(arg != null){ 
     714                        _archiverWorkDir = arg; 
     715                } 
     716                else { 
     717                        String workDir = getConfigValue(tagName); 
     718                        if(workDir != null){ 
     719                                File dir = new File(workDir); 
     720                                 
     721                                if(dir.isAbsolute() == true){ 
     722                                        _archiverWorkDir = dir; 
     723                                } 
     724                                else{ 
     725                                        _archiverWorkDir = new File(HomeDirectory.instance(), dir.getPath()); 
     726                                } 
     727                        } 
     728                } 
     729                 
     730                if(_archiverWorkDir == null){ 
     731                        // デフォルト値 
     732                        _archiverWorkDir = ScriptScopeBuilderManager.getBuilder().getOutputDirectory(); 
     733                } 
     734 
     735                logger.debug("{} -> {}", tagName, _archiverWorkDir); 
     736        } 
     737 
     738        /** 
     739         * @param tagName 
     740         * @return 
     741         */ 
     742        private static String getConfigValue(String tagName) { 
     743                JSSPConfigHandler config = JSSPConfigHandlerManager.getConfigHandler(); 
     744                NodeList list = config.getJavaScriptAPI4ClassConfig(ArchiverObject.class.getName()); 
     745                 
     746                for(int idx = 0; idx < list.getLength(); idx++){ 
     747                        Element elem = (Element) list.item(idx); 
     748                        if(tagName.equals(elem.getTagName())){ 
     749                                return elem.getTextContent(); 
     750                        } 
     751                } 
     752                 
     753                return null; 
     754        } 
     755 
     756        /** 
     757         * @return 
     758         * @throws IOException 
     759         */ 
     760        private static File createTempZipFile() throws IOException { 
     761                if(_archiverWorkDir.exists() == false){ 
     762                        _archiverWorkDir.mkdirs(); 
     763                } 
     764 
     765                File zipFile = File.createTempFile(ArchiverObject.class.getSimpleName() + "_zip_", ".zip", _archiverWorkDir); 
     766                zipFile.deleteOnExit(); 
     767                 
     768                return zipFile; 
     769        } 
     770 
    698771} 
  • trunk/im-jssp/src/test/resources/org/intra_mart/jssp/script/api/ArchiverObjectTest/jssp-config-ArchiverObjectTest.xml

    r338 r339  
    2626                        </api-class> 
    2727                         
    28                         <api-class name="org.intra_mart.jssp.script.api.ArchiverObject"/> 
     28                        <api-class name="org.intra_mart.jssp.script.api.ArchiverObject"> 
     29                                <work-dir>target/work/jssp/_ArchiverObject</work-dir> 
     30                        </api-class> 
    2931                </java-script-api> 
    3032