Search in sources :

Example 6 with IClient

use of com.dtstack.taier.pluginapi.client.IClient in project Taier by DTStack.

the class Launcher method main.

public static void main(String[] args) throws Exception {
    System.setProperty("HADOOP_USER_NAME", "admin");
    // job json path
    String jobJsonPath = USER_DIR + SP + "local-test/src/main/json/dtscript-agent.json";
    // create jobClient
    String content = getJobContent(jobJsonPath);
    Map params = PublicUtil.jsonStrToObject(content, Map.class);
    ParamAction paramAction = PublicUtil.mapToObject(params, ParamAction.class);
    JobClient jobClient = new JobClient(paramAction);
    // create jobIdentifier
    String jobId = "jobId";
    String appId = "appId";
    String taskId = "taskId";
    JobIdentifier jobIdentifier = JobIdentifier.createInstance(jobId, appId, taskId);
    // get pluginInfo
    String pluginInfo = jobClient.getPluginInfo();
    Properties properties = PublicUtil.jsonStrToObject(pluginInfo, Properties.class);
    String md5plugin = MD5Util.getMd5String(pluginInfo);
    properties.setProperty("md5sum", md5plugin);
    // create client
    String pluginParentPath = USER_DIR + SP + "pluginLibs";
    IClient client = ClientFactory.buildPluginClient(pluginInfo, pluginParentPath);
    // client init
    ClassLoaderCallBackMethod.callbackAndReset(new CallBack<String>() {

        @Override
        public String execute() throws Exception {
            client.init(properties);
            return null;
        }
    }, client.getClass().getClassLoader(), true);
    // test target method
    ClassLoaderCallBackMethod.callbackAndReset(new CallBack<Object>() {

        @Override
        public Object execute() throws Exception {
            JobResult jobResult = client.submitJob(jobClient);
            return jobResult;
        }
    }, client.getClass().getClassLoader(), true);
    LOG.info("Launcher Success!");
    System.exit(0);
}
Also used : JobResult(com.dtstack.taier.pluginapi.pojo.JobResult) IClient(com.dtstack.taier.pluginapi.client.IClient) JobIdentifier(com.dtstack.taier.pluginapi.JobIdentifier) Properties(java.util.Properties) JobClient(com.dtstack.taier.pluginapi.JobClient) ParamAction(com.dtstack.taier.pluginapi.pojo.ParamAction) Map(java.util.Map)

Example 7 with IClient

use of com.dtstack.taier.pluginapi.client.IClient in project Taier by DTStack.

the class ClientCache method getDefaultPlugin.

public IClient getDefaultPlugin(String typeName) {
    IClient defaultClient = defaultClientMap.get(typeName);
    try {
        if (defaultClient == null) {
            synchronized (defaultClientMap) {
                defaultClient = defaultClientMap.get(typeName);
                if (defaultClient == null) {
                    JSONObject pluginInfo = new JSONObject();
                    pluginInfo.put(ConfigConstant.TYPE_NAME_KEY, typeName);
                    defaultClient = ClientFactory.buildPluginClient(pluginInfo.toJSONString(), pluginPath);
                    defaultClientMap.putIfAbsent(typeName, defaultClient);
                }
            }
        }
    } catch (Throwable e) {
        LOGGER.error("-------job.pluginInfo is empty, either can't find plugin('In console is the typeName') which typeName:{}", typeName, e);
        throw new IllegalArgumentException("job.pluginInfo is empty, either can't find plugin('In console is the typeName') which typeName:" + typeName, e);
    }
    return defaultClient;
}
Also used : JSONObject(com.alibaba.fastjson.JSONObject) IClient(com.dtstack.taier.pluginapi.client.IClient)

Aggregations

IClient (com.dtstack.taier.pluginapi.client.IClient)7 JSONObject (com.alibaba.fastjson.JSONObject)3 ClientAccessException (com.dtstack.taier.common.exception.ClientAccessException)3 RdosDefineException (com.dtstack.taier.common.exception.RdosDefineException)3 JobIdentifier (com.dtstack.taier.pluginapi.JobIdentifier)2 Properties (java.util.Properties)2 JobClient (com.dtstack.taier.pluginapi.JobClient)1 TaskStatus (com.dtstack.taier.pluginapi.enums.TaskStatus)1 JobResult (com.dtstack.taier.pluginapi.pojo.JobResult)1 ParamAction (com.dtstack.taier.pluginapi.pojo.ParamAction)1 Map (java.util.Map)1