チェンジセット 205

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

CodeGenerationEngine?をキャッシュ。

ファイル:

凡例:

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

    r204 r205  
    2020import java.util.List; 
    2121import java.util.Map; 
     22import java.util.WeakHashMap; 
    2223 
    2324import javassist.ClassPool; 
     
    273274        } 
    274275 
     276        private static Map<String, CodeGenerationEngine> cache4codeGenEngine = new WeakHashMap<String, CodeGenerationEngine>(); 
     277 
    275278        private CodeGenerationEngine createEngine(String wsdlLocationURI,  
    276279                                                                                          File outputLocation, 
    277280                                                                                          String portName, 
    278281                                                                                          String serviceName ) throws CodeGenerationException { 
     282                 
     283                CodeGenerationEngine engine = cache4codeGenEngine.get(wsdlLocationURI); 
     284                 
     285                if(engine == null){ 
     286                        synchronized(cache4codeGenEngine){ 
    279287                                // 引数を作成 
    280288                                String[] args = generateArgs(wsdlLocationURI, outputLocation, portName, serviceName); 
     
    283291                                // CodeGenerationEngineを生成 () 
    284292                                CommandLineOptionParser commandLineOptionParser = new CommandLineOptionParser(args); 
    285                 CodeGenerationEngine engine = new CodeGenerationEngine(commandLineOptionParser); 
     293                                engine = new CodeGenerationEngine(commandLineOptionParser); 
     294                                 
     295                                // キャッシュ 
     296                                cache4codeGenEngine.put(wsdlLocationURI, engine); 
     297                        } 
     298                } 
     299 
    286300                return engine; 
    287301        }