Search in sources :

Example 11 with Context

use of com.alibaba.citrus.turbine.Context in project tis by qlangtech.

the class TestPluginItems method validateRootFormSave.

private void validateRootFormSave() {
    IPluginContext pluginContext = EasyMock.createMock("pluginContext", IPluginContext.class);
    EasyMock.expect(pluginContext.isDataSourceAware()).andReturn(false);
    EasyMock.expect(pluginContext.isCollectionAware()).andReturn(false).anyTimes();
    EasyMock.expect(pluginContext.getRequestHeader(DataxReader.HEAD_KEY_REFERER)).andReturn("/x/" + dataXName + "/config").anyTimes();
    Context context = EasyMock.createMock("context", Context.class);
    // targetDescriptorName_MySQL,subFormFieldName_selectedTabs
    UploadPluginMeta pluginMeta = UploadPluginMeta.parse("dataxReader:require,dataxName_" + dataXName);
    PluginItems pluginItems = new PluginItems(pluginContext, pluginMeta);
    IControlMsgHandler fieldErrorHandler = EasyMock.createMock("fieldErrorHandler", IControlMsgHandler.class);
    JSONArray jsonArray = IOUtils.loadResourceFromClasspath(TestPluginItems.class, "datax_reader_mysql_post.json", true, (input) -> {
        return JSON.parseArray(org.apache.commons.io.IOUtils.toString(input, TisUTF8.get()));
    });
    JSONArray itemsArray = jsonArray.getJSONArray(0);
    Optional<IPropertyType.SubFormFilter> subFormFilter = pluginMeta.getSubFormFilter();
    assertFalse("subFormFilter.isPresent():false", subFormFilter.isPresent());
    List<AttrValMap> items = AttrValMap.describableAttrValMapList(fieldErrorHandler, itemsArray, subFormFilter);
    pluginItems.items = items;
    EasyMock.replay(pluginContext, context, fieldErrorHandler);
    pluginItems.save(context);
    EasyMock.verify(pluginContext, context, fieldErrorHandler);
}
Also used : Context(com.alibaba.citrus.turbine.Context) JSONArray(com.alibaba.fastjson.JSONArray) IControlMsgHandler(com.qlangtech.tis.runtime.module.misc.IControlMsgHandler)

Example 12 with Context

use of com.alibaba.citrus.turbine.Context in project tis by qlangtech.

the class CollectionAction method doQuery.

/**
 * 利用solr的disMax QP进行查询
 *
 * @param context
 * @throws Exception
 */
public void doQuery(Context context) throws Exception {
    // this.parseJsonPost();
    JSONObject post = getIndexWithPost();
    // if (StringUtils.isEmpty(post.getString(KEY_INDEX_NAME))) {
    // throw new IllegalArgumentException("indexName can not be null");
    // }
    // this.indexName = TISCollectionUtils.NAME_PREFIX + post.getString(KEY_INDEX_NAME);
    JSONArray searchFields = post.getJSONArray(KEY_QUERY_SEARCH_FIELDS);
    Objects.requireNonNull(searchFields, "param " + KEY_QUERY_SEARCH_FIELDS + " can not be null ");
    if (searchFields.size() < 1) {
        throw new IllegalArgumentException(KEY_QUERY_SEARCH_FIELDS + " relevant field can not be empty");
    }
    final List<SubCriteria> andQueryCriteria = Lists.newArrayList();
    searchFields.forEach((f) -> {
        SubCriteria subCriteria = new SubCriteria();
        JSONObject o = (JSONObject) f;
        Option opt = null;
        String word = null;
        for (String key : o.keySet()) {
            word = o.getString(key);
            if (StringUtils.isEmpty(word)) {
                throw new IllegalArgumentException("query field:" + key + ",relevant:" + word + ",val can not be null");
            }
            opt = new Option(key, word);
            subCriteria.addOr(opt);
        }
        andQueryCriteria.add(subCriteria);
    });
    JSONArray storedFields = post.getJSONArray(KEY_QUERY_FIELDS);
    if (storedFields == null) {
        throw new IllegalArgumentException("param 'fields' can not be null");
    }
    storedFields.stream().map((r) -> (String) r).collect(Collectors.toList());
    // final String fields = post.getString(KEY_QUERY_FIELDS);
    // if (StringUtils.isEmpty(fields)) {
    // throw new IllegalArgumentException("param 'fields' can not be null");
    // }
    final Integer limit = post.getInteger(KEY_QUERY_LIMIT);
    if (limit == null) {
        throw new IllegalArgumentException("param limit can not be null");
    }
    // final String queryFields = post.getString(KEY_QUERY_QUERY_FIELDS);
    // if (StringUtils.isEmpty(queryFields)) {
    // throw new IllegalArgumentException("'queryFields' can not be null");
    // }
    final String orderBy = post.getString(KEY_QUERY_ORDER_BY);
    Integer rowsOffset = post.getInteger(KEY_QUERY_ROWS_OFFSET);
    AppDomainInfo app = getAppDomain();
    final QueryResutStrategy queryResutStrategy = QueryIndexServlet.createQueryResutStrategy(app, this.getRequest(), getResponse(), getDaoContext());
    final List<ServerJoinGroup> serverlist = queryResutStrategy.queryProcess();
    for (ServerJoinGroup server : serverlist) {
        // 组装url
        final String url = server.getIpAddress();
        QueryCloudSolrClient solrClient = new QueryCloudSolrClient(url);
        SolrQuery query = new SolrQuery();
        query.set(CommonParams.FL, storedFields.stream().map((r) -> (String) r).collect(Collectors.joining(",")));
        // query.setParam(QUERY_PARSIING_DEF_TYPE, "dismax");
        // query.setParam(DisMaxParams.QF, queryFields);
        query.setQuery(this.createQuery(andQueryCriteria));
        query.setRows(limit);
        if (rowsOffset != null) {
            query.setStart(rowsOffset);
        }
        if (StringUtils.isNotEmpty(orderBy)) {
            query.add(CommonParams.SORT, orderBy);
        }
        QueryResponse result = solrClient.query(indexName.getCollectionName(), query, SolrRequest.METHOD.POST);
        solrClient.close();
        Map<String, Object> biz = Maps.newHashMap();
        long c = result.getResults().getNumFound();
        biz.put(RESULT_KEY_ROWS_COUNT, c);
        List<Map<String, Object>> resultList = Lists.newArrayList();
        Map<String, Object> row = null;
        for (SolrDocument doc : result.getResults()) {
            row = Maps.newHashMap();
            for (Map.Entry<String, Object> f : doc.entrySet()) {
                row.put(f.getKey(), f.getValue());
            }
            resultList.add(row);
        }
        biz.put(RESULT_KEY_ROWS, resultList);
        this.setBizResult(context, biz);
        return;
    }
}
Also used : OfflineDatasourceAction(com.qlangtech.tis.offline.module.action.OfflineDatasourceAction) StringUtils(org.apache.commons.lang.StringUtils) PluginStore(com.qlangtech.tis.plugin.PluginStore) SqlTaskNode(com.qlangtech.tis.sql.parser.SqlTaskNode) PSchemaField(com.qlangtech.tis.solrdao.pojo.PSchemaField) URL(java.net.URL) TIS(com.qlangtech.tis.TIS) LoggerFactory(org.slf4j.LoggerFactory) ReplicasSpec(com.qlangtech.tis.config.k8s.ReplicasSpec) Autowired(org.springframework.beans.factory.annotation.Autowired) LogCollectorClient(com.qlangtech.tis.rpc.grpc.log.LogCollectorClient) CreateIndexConfirmModel(com.qlangtech.tis.runtime.module.action.CreateIndexConfirmModel) SnapshotViewImplDAO(com.qlangtech.tis.manage.biz.dal.dao.impl.SnapshotViewImplDAO) StreamObserver(io.grpc.stub.StreamObserver) StatusRpcClient(com.tis.hadoop.rpc.StatusRpcClient) LogType(com.qlangtech.tis.trigger.socket.LogType) ActionContext(com.opensymphony.xwork2.ActionContext) SelectableServer(com.qlangtech.tis.coredefine.module.control.SelectableServer) IPluginStore(com.qlangtech.tis.plugin.IPluginStore) SchemaAction(com.qlangtech.tis.runtime.module.action.SchemaAction) DependencyNode(com.qlangtech.tis.sql.parser.meta.DependencyNode) IncrStreamFactory(com.qlangtech.tis.plugin.incr.IncrStreamFactory) com.qlangtech.tis.manage.common(com.qlangtech.tis.manage.common) SysInitializeAction(com.qlangtech.tis.runtime.module.action.SysInitializeAction) Descriptor(com.qlangtech.tis.extension.Descriptor) IndexQuery(com.qlangtech.tis.runtime.module.screen.IndexQuery) Collectors(java.util.stream.Collectors) Replica(org.apache.solr.common.cloud.Replica) ViewPojo(com.qlangtech.tis.runtime.module.screen.ViewPojo) PlatformTransactionManager(org.springframework.transaction.PlatformTransactionManager) SolrQuery(org.apache.solr.client.solrj.SolrQuery) QueryCloudSolrClient(com.qlangtech.tis.manage.servlet.QueryCloudSolrClient) RunEnvironment(com.qlangtech.tis.pubhook.common.RunEnvironment) ISchemaPluginContext(com.qlangtech.tis.solrdao.ISchemaPluginContext) TransactionStatus(org.springframework.transaction.TransactionStatus) JSONObject(com.alibaba.fastjson.JSONObject) DBConfigSuit(com.qlangtech.tis.db.parser.DBConfigSuit) com.qlangtech.tis.workflow.pojo(com.qlangtech.tis.workflow.pojo) IMessageHandler(com.qlangtech.tis.runtime.module.misc.IMessageHandler) ILogListener(com.qlangtech.tis.trigger.jst.ILogListener) SolrRequest(org.apache.solr.client.solrj.SolrRequest) ISchemaField(com.qlangtech.tis.solrdao.ISchemaField) ParseResult(com.qlangtech.tis.solrdao.impl.ParseResult) java.util(java.util) SolrFieldsParser(com.qlangtech.tis.solrdao.SolrFieldsParser) QueryIndexServlet(com.qlangtech.tis.manage.servlet.QueryIndexServlet) Context(com.alibaba.citrus.turbine.Context) PMonotorTarget(com.qlangtech.tis.rpc.grpc.log.stream.PMonotorTarget) JSONArray(com.alibaba.fastjson.JSONArray) RpcServiceReference(com.tis.hadoop.rpc.RpcServiceReference) Lists(com.google.common.collect.Lists) QueryResutStrategy(com.qlangtech.tis.manage.servlet.QueryResutStrategy) com.qlangtech.tis.coredefine.module.action(com.qlangtech.tis.coredefine.module.action) PExecuteState(com.qlangtech.tis.rpc.grpc.log.stream.PExecuteState) com.qlangtech.tis.util(com.qlangtech.tis.util) OfflineManager(com.qlangtech.tis.offline.module.manager.impl.OfflineManager) Application(com.qlangtech.tis.manage.biz.dal.pojo.Application) Position(com.qlangtech.tis.sql.parser.meta.Position) Logger(org.slf4j.Logger) QueryResponse(org.apache.solr.client.solrj.response.QueryResponse) NodeType(com.qlangtech.tis.sql.parser.meta.NodeType) com.qlangtech.tis.plugin.ds(com.qlangtech.tis.plugin.ds) FileUtils(org.apache.commons.io.FileUtils) IOException(java.io.IOException) Maps(com.google.common.collect.Maps) File(java.io.File) CommonParams(org.apache.solr.common.params.CommonParams) SchemaResult(com.qlangtech.tis.solrdao.SchemaResult) SolrDocument(org.apache.solr.common.SolrDocument) IParamContext(com.qlangtech.tis.order.center.IParamContext) ERRules(com.qlangtech.tis.sql.parser.er.ERRules) ServerJoinGroup(com.qlangtech.tis.manage.servlet.ServerJoinGroup) SqlTaskNodeMeta(com.qlangtech.tis.sql.parser.SqlTaskNodeMeta) InputStream(java.io.InputStream) QueryResutStrategy(com.qlangtech.tis.manage.servlet.QueryResutStrategy) JSONArray(com.alibaba.fastjson.JSONArray) ServerJoinGroup(com.qlangtech.tis.manage.servlet.ServerJoinGroup) SolrQuery(org.apache.solr.client.solrj.SolrQuery) SolrDocument(org.apache.solr.common.SolrDocument) JSONObject(com.alibaba.fastjson.JSONObject) QueryResponse(org.apache.solr.client.solrj.response.QueryResponse) JSONObject(com.alibaba.fastjson.JSONObject) QueryCloudSolrClient(com.qlangtech.tis.manage.servlet.QueryCloudSolrClient)

Example 13 with Context

use of com.alibaba.citrus.turbine.Context in project tis by qlangtech.

the class CoreAction method pushConfig2Engine.

public static void pushConfig2Engine(BasicModule module, Context context, DocCollection collection, int snapshotId, boolean needReload) throws Exception {
    // module.errorsPageShow(context);
    if (traverseCollectionReplic(collection, false, /* collection */
    new ReplicaCallback() {

        @Override
        public boolean process(boolean isLeader, final Replica replica) throws Exception {
            try {
                URL url = new URL(replica.getStr(BASE_URL_PROP) + "/admin/cores?action=CREATEALIAS&" + ICoreAdminAction.EXEC_ACTION + "=" + ICoreAdminAction.ACTION_UPDATE_CONFIG + "&core=" + replica.getStr(CORE_NAME_PROP) + "&" + ZkStateReader.COLLECTION_PROP + "=" + collection.getName() + "&needReload=" + needReload + "&" + ICoreAdminAction.TARGET_SNAPSHOT_ID + "=" + snapshotId);
                return HttpUtils.processContent(url, new StreamProcess<Boolean>() {

                    @Override
                    public Boolean p(int status, InputStream stream, Map<String, List<String>> headerFields) {
                        ProcessResponse result = null;
                        if ((result = ProcessResponse.processResponse(stream, (err) -> module.addErrorMessage(context, replica.getName() + "," + err))).success) {
                        // addActionMessage(context, "成功触发了创建索引集群" + groupNum + "组,组内" + repliationCount + "个副本");
                        // return true;
                        }
                        return true;
                    }
                });
            } catch (MalformedURLException e) {
                // e.printStackTrace();
                log.error(collection.getName(), e);
                module.addErrorMessage(context, e.getMessage());
            }
            return true;
        }
    })) {
    // module.addActionMessage(context, "已经更新全部服务器配置文件");
    }
}
Also used : ServerGroupAdapter(com.qlangtech.tis.runtime.pojo.ServerGroupAdapter) StringUtils(org.apache.commons.lang.StringUtils) IExecChainContext(com.qlangtech.tis.exec.IExecChainContext) SimpleOrderedMap(org.apache.solr.common.util.SimpleOrderedMap) URL(java.net.URL) TIS(com.qlangtech.tis.TIS) IndexStreamCodeGenerator(com.qlangtech.tis.compiler.streamcode.IndexStreamCodeGenerator) LoggerFactory(org.slf4j.LoggerFactory) com.qlangtech.tis.manage(com.qlangtech.tis.manage) ExecResult(com.qlangtech.tis.assemble.ExecResult) CORE_NAME_PROP(org.apache.solr.common.cloud.ZkStateReader.CORE_NAME_PROP) Stat(org.apache.zookeeper.data.Stat) DescriptorsJSON(com.qlangtech.tis.util.DescriptorsJSON) DBNode(com.qlangtech.tis.sql.parser.DBNode) SolrServerException(org.apache.solr.client.solrj.SolrServerException) JSONObject(org.json.JSONObject) Matcher(java.util.regex.Matcher) BASE_URL_PROP(org.apache.solr.common.cloud.ZkStateReader.BASE_URL_PROP) GenerateDAOAndIncrScript(com.qlangtech.tis.compiler.streamcode.GenerateDAOAndIncrScript) SelectableServer(com.qlangtech.tis.coredefine.module.control.SelectableServer) IPluginStore(com.qlangtech.tis.plugin.IPluginStore) PostParam(com.qlangtech.tis.manage.common.HttpUtils.PostParam) com.qlangtech.tis.manage.biz.dal.pojo(com.qlangtech.tis.manage.biz.dal.pojo) IStreamIncrGenerateStrategy(com.qlangtech.tis.sql.parser.tuple.creator.IStreamIncrGenerateStrategy) IncrStreamFactory(com.qlangtech.tis.plugin.incr.IncrStreamFactory) org.apache.solr.common.cloud(org.apache.solr.common.cloud) com.qlangtech.tis.manage.common(com.qlangtech.tis.manage.common) DataxWriter(com.qlangtech.tis.datax.impl.DataxWriter) Descriptor(com.qlangtech.tis.extension.Descriptor) Collectors(java.util.stream.Collectors) IFullBuildContext(com.qlangtech.tis.fullbuild.IFullBuildContext) ViewPojo(com.qlangtech.tis.runtime.module.screen.ViewPojo) DataxReader(com.qlangtech.tis.datax.impl.DataxReader) FCoreRequest(com.qlangtech.tis.coredefine.biz.FCoreRequest) FlinkJobDeploymentDetails(com.qlangtech.tis.coredefine.module.action.impl.FlinkJobDeploymentDetails) SolrQuery(org.apache.solr.client.solrj.SolrQuery) QueryCloudSolrClient(com.qlangtech.tis.manage.servlet.QueryCloudSolrClient) RunEnvironment(com.qlangtech.tis.pubhook.common.RunEnvironment) com.qlangtech.tis.workflow.pojo(com.qlangtech.tis.workflow.pojo) Pattern(java.util.regex.Pattern) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Pager(com.koubei.web.tag.pager.Pager) java.util(java.util) BasicScreen(com.qlangtech.tis.runtime.module.screen.BasicScreen) RcDeployment(com.qlangtech.tis.coredefine.module.action.impl.RcDeployment) Func(com.qlangtech.tis.manage.spring.aop.Func) QueryIndexServlet(com.qlangtech.tis.manage.servlet.QueryIndexServlet) Context(com.alibaba.citrus.turbine.Context) IAppSourcePipelineController(com.qlangtech.tis.order.center.IAppSourcePipelineController) Lists(com.google.common.collect.Lists) DataxProcessor(com.qlangtech.tis.datax.impl.DataxProcessor) QueryResutStrategy(com.qlangtech.tis.manage.servlet.QueryResutStrategy) ClusterStateCollectAction(com.qlangtech.tis.runtime.module.action.ClusterStateCollectAction) StreamProcess(com.qlangtech.tis.manage.common.ConfigFileContext.StreamProcess) InstanceDirDesc(com.qlangtech.tis.coredefine.module.screen.Corenodemanage.InstanceDirDesc) ITISCoordinator(com.qlangtech.tis.cloud.ITISCoordinator) CoreNode(com.qlangtech.tis.coredefine.module.control.SelectableServer.CoreNode) Logger(org.slf4j.Logger) MalformedURLException(java.net.MalformedURLException) StringWriter(java.io.StringWriter) JSONTokener(org.json.JSONTokener) IOException(java.io.IOException) ICoreAdminAction(com.qlangtech.tis.cloud.ICoreAdminAction) Maps(com.google.common.collect.Maps) StreamCodeContext(com.qlangtech.tis.sql.parser.stream.generate.StreamCodeContext) ReplicState(com.qlangtech.tis.coredefine.module.screen.Corenodemanage.ReplicState) IParamContext(com.qlangtech.tis.order.center.IParamContext) JSON(com.alibaba.fastjson.JSON) BasicModule(com.qlangtech.tis.runtime.module.action.BasicModule) TisException(com.qlangtech.tis.lang.TisException) IWorkFlowBuildHistoryDAO(com.qlangtech.tis.workflow.dao.IWorkFlowBuildHistoryDAO) ZkUtils(com.qlangtech.tis.solrj.util.ZkUtils) XMLResponseParser(org.apache.solr.client.solrj.impl.XMLResponseParser) TisAppLaunchPort(com.qlangtech.tis.web.start.TisAppLaunchPort) Feature(com.alibaba.fastjson.parser.Feature) InputStream(java.io.InputStream) MalformedURLException(java.net.MalformedURLException) InputStream(java.io.InputStream) SolrServerException(org.apache.solr.client.solrj.SolrServerException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) TisException(com.qlangtech.tis.lang.TisException) URL(java.net.URL) StreamProcess(com.qlangtech.tis.manage.common.ConfigFileContext.StreamProcess) SimpleOrderedMap(org.apache.solr.common.util.SimpleOrderedMap)

Example 14 with Context

use of com.alibaba.citrus.turbine.Context in project tis by qlangtech.

the class SchemaAction method appendNewSchema.

@SuppressWarnings("all")
protected boolean appendNewSchema(Context context, ISchemaPluginContext schemaPlugin, byte[] content, Application app) throws UnsupportedEncodingException, JSONException {
    if (content == null) {
        throw new NullPointerException("param content can not be null");
    }
    Integer publishSnapshotId = null;
    final ServerGroupCriteria gquery = new ServerGroupCriteria();
    final RunEnvironment runtime = RunEnvironment.getSysRuntime();
    gquery.createCriteria().andAppIdEqualTo(app.getAppId()).andRuntEnvironmentEqualTo(runtime.getId()).andGroupIndexEqualTo((short) 0);
    for (ServerGroup group : this.getServerGroupDAO().selectByExample(gquery)) {
        publishSnapshotId = group.getPublishSnapshotId();
        break;
    }
    if (publishSnapshotId == null) {
        throw new IllegalStateException("app:" + app.getProjectName() + " publishSnapshotId can not be null");
    }
    IUser user = this.getUser();
    // new
    Long usrId = Long.parseLong(user.getId());
    // Long(this.getCurrentIsv().getId());
    CreateSnapshotResult result = createNewSnapshot(context, schemaPlugin, this.getSnapshotViewDAO().getView(publishSnapshotId), ConfigFileReader.FILE_SCHEMA, content, this, new IMessageHandler() {

        @Override
        public void errorsPageShow(Context context) {
        }

        @Override
        public void addActionMessage(Context context, String msg) {
            SchemaAction.this.addActionMessage(context, msg);
        }

        @Override
        public void setBizResult(Context context, Object result) {
            SchemaAction.this.setBizResult(context, result);
        }

        @Override
        public void addErrorMessage(Context context, String msg) {
            SchemaAction.this.addErrorMessage(context, msg);
        }
    }, StringUtils.EMPTY, usrId, user.getName());
    if (!result.isSuccess()) {
        List<String> errorMsgList = (List<String>) context.get(BasicModule.ACTION_ERROR_MSG);
        StringBuffer err = new StringBuffer();
        if (errorMsgList != null) {
            for (String e : errorMsgList) {
                err.append(e).append("<br/>");
            }
        }
        JSONObject errors = new JSONObject();
        errors.put("code", 300);
        errors.put("reason", err.toString());
        context.put("query_result", errors);
        return false;
    }
    ServerGroup record = new ServerGroup();
    record.setPublishSnapshotId(result.getNewId());
    // .andGroupIndexEqualTo((short) 0);
    if (this.getServerGroupDAO().updateByExampleSelective(record, gquery) < 0) {
        throw new IllegalStateException("app:" + app.getProjectName() + " upate getServerGroupDAO have not success");
    }
    return true;
}
Also used : Context(com.alibaba.citrus.turbine.Context) RunEnvironment(com.qlangtech.tis.pubhook.common.RunEnvironment) JSONObject(com.alibaba.fastjson.JSONObject) JSONObject(com.alibaba.fastjson.JSONObject)

Example 15 with Context

use of com.alibaba.citrus.turbine.Context in project tis by qlangtech.

the class DataSourceFactoryPluginStore method setPlugins.

@Override
public synchronized boolean setPlugins(IPluginContext pluginContext, Optional<Context> context, List<Descriptor.ParseDescribable<DataSourceFactory>> dlist, boolean update) {
    if (dlist.size() != 1) {
        throw new IllegalArgumentException("size of dlist must equal to 1");
    }
    if (!context.isPresent()) {
        throw new IllegalArgumentException("Context shall exist");
    }
    Context ctx = context.get();
    final String dbName = this.key.keyVal.getVal();
    if (!super.setPlugins(pluginContext, context, dlist, update)) {
        return false;
    }
    Descriptor.ParseDescribable<DataSourceFactory> dbDesc = dlist.get(0);
    pluginContext.addDb(dbDesc, dbName, ctx, (shallUpdateDB && !update));
    return !ctx.hasErrors();
}
Also used : IPluginContext(com.qlangtech.tis.util.IPluginContext) Context(com.alibaba.citrus.turbine.Context) Descriptor(com.qlangtech.tis.extension.Descriptor)

Aggregations

Context (com.alibaba.citrus.turbine.Context)30 Collectors (java.util.stream.Collectors)15 Descriptor (com.qlangtech.tis.extension.Descriptor)14 IControlMsgHandler (com.qlangtech.tis.runtime.module.misc.IControlMsgHandler)13 TIS (com.qlangtech.tis.TIS)12 IOException (java.io.IOException)12 DataxReader (com.qlangtech.tis.datax.impl.DataxReader)11 Func (com.qlangtech.tis.manage.spring.aop.Func)11 Validator (com.qlangtech.tis.plugin.annotation.Validator)11 java.util (java.util)11 StringUtils (org.apache.commons.lang.StringUtils)11 JSONArray (com.alibaba.fastjson.JSONArray)10 Lists (com.google.common.collect.Lists)10 Maps (com.google.common.collect.Maps)10 IPluginStore (com.qlangtech.tis.plugin.IPluginStore)10 IFieldErrorHandler (com.qlangtech.tis.runtime.module.misc.IFieldErrorHandler)10 Pattern (java.util.regex.Pattern)9 JSON (com.alibaba.fastjson.JSON)8 DelegateControl4JsonPostMsgHandler (com.qlangtech.tis.runtime.module.misc.impl.DelegateControl4JsonPostMsgHandler)8 JSONObject (com.alibaba.fastjson.JSONObject)7