/**
* personium.io
* Copyright 2014 FUJITSU LIMITED
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.fujitsu.dc.engine.source;
import java.net.URL;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fujitsu.dc.engine.DcEngineException;
import com.fujitsu.dc.engine.utils.DcUtils;
/**
* サービスコレクションの情報を管理する.
*/
public class DebugResourceSourceManager implements ISourceManager {
/** ログオブジェクト. */
private static Logger log = LoggerFactory.getLogger(DebugResourceSourceManager.class);
/**
* コンストラクタ.
*/
public DebugResourceSourceManager() {
}
/**
* サービスコレクションに設定されたサービスサブジェクトの取得.
* @return サービスサブジェクト
* @throws DcEngineException DcEngineException
*/
public String getServiceSubject() throws DcEngineException {
return "engine";
}
/**
* サービス名に対応したスクリプトファイル名の取得.
* @param servicePath サービス名
* @return スクリプトファイル名
* @throws DcEngineException DcEngineException
*/
public String getScriptNameForServicePath(String servicePath) throws DcEngineException {
// デバッグ用リソース動作時はURLで呼び出されたフィル名と実行スクリプト名が同一
return servicePath;
}
/**
* ソースファイルを取得.
* @param sourceName ソースファイル名
* @return ソースファイルの中身
* @throws DcEngineException DcEngineException
*/
public String getSource(String sourceName) throws DcEngineException {
try {
URL path = getClass().getResource("/js-lib/debug/" + sourceName);
return DcUtils.readFile(path.getFile());
} catch (Exception e) {
log.info("CouchClientException msg:" + e.getMessage() + ",svcName:" + sourceName);
log.info("UserScript read error ", e);
throw new DcEngineException("404 Not Found", DcEngineException.STATUSCODE_NOTFOUND, e);
}
}
}