Skip to content

Commit

Permalink
add transformer for TIS,and upgrade fastjson version 2.0.51
Browse files Browse the repository at this point in the history
  • Loading branch information
baisui1981 committed Jun 12, 2024
1 parent 96af12f commit 3d8fbe2
Show file tree
Hide file tree
Showing 73 changed files with 1,585 additions and 462 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -541,7 +541,7 @@
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.17</version>
<version>2.0.51</version>
</dependency>

<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

import com.google.common.collect.Lists;
import com.qlangtech.tis.extension.Describable;
import com.qlangtech.tis.extension.IPropertyType;
import com.qlangtech.tis.extension.SubFormFilter;
import com.qlangtech.tis.plugin.ds.ColumnMetaData;
import com.qlangtech.tis.plugin.ds.DataSourceMeta;
import com.qlangtech.tis.plugin.ds.JDBCTypes;
Expand All @@ -30,7 +30,6 @@
import com.qlangtech.tis.util.UploadPluginMeta;
import org.easymock.EasyMock;

import java.sql.Types;
import java.util.List;

/**
Expand Down Expand Up @@ -60,10 +59,10 @@ private void initSuForm(boolean withUserIdPk) {
this.metaPlugin = easyMock.mock("metaPlugin", MockPlugin.class);
this.param = easyMock.mock("param", UploadPluginMeta.class);

param.putExtraParams(IPropertyType.SubFormFilter.PLUGIN_META_SUBFORM_DETAIL_ID_VALUE, id1);
param.putExtraParams(SubFormFilter.PLUGIN_META_SUBFORM_DETAIL_ID_VALUE, id1);
EasyMock.expectLastCall().times(1);
EasyMock.expect(param.getExtraParam(
IPropertyType.SubFormFilter.PLUGIN_META_SUBFORM_DETAIL_ID_VALUE)).andReturn(id1);
SubFormFilter.PLUGIN_META_SUBFORM_DETAIL_ID_VALUE)).andReturn(id1);

List<ColumnMetaData> cols = Lists.newArrayList();
// (int index, String key, DataType type, boolean pk)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ public String identityValue() {
// return des.getIdentityValue(plugin);
//}


default Class<?> getDescribleClass() {
return this.getClass();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -801,7 +801,7 @@ private Map<String, TargetCol> getTargetCols(JSONObject post) {
});
}
JSONArray targetCols = colMeta.getJSONArray("columns");
Map<String, TargetCol> targetColMap = ((Stream<JSONObject>) targetCols.stream()).map((c) -> {
Map<String, TargetCol> targetColMap = ((Stream<Object>) targetCols.stream()).map((c) -> {
JSONObject o = (JSONObject) c;
TargetCol targetCol = new TargetCol(o.getString("name"));
Boolean indexable = o.getBoolean("search");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
import com.qlangtech.tis.datax.job.SubJobResName;
import com.qlangtech.tis.extension.Descriptor;
import com.qlangtech.tis.extension.DescriptorExtensionList;
import com.qlangtech.tis.extension.IPropertyType;
import com.qlangtech.tis.extension.SubFormFilter;
import com.qlangtech.tis.extension.util.MultiItemsViewType;
import com.qlangtech.tis.fullbuild.IFullBuildContext;
import com.qlangtech.tis.lang.TisException;
Expand Down Expand Up @@ -85,7 +85,6 @@
import com.qlangtech.tis.plugin.ds.DataTypeMeta;
import com.qlangtech.tis.plugin.ds.DataTypeMeta.IMultiItemsView;
import com.qlangtech.tis.plugin.ds.DefaultTab;
import com.qlangtech.tis.plugin.ds.ElementCreatorFactory;
import com.qlangtech.tis.plugin.ds.ISelectedTab;
import com.qlangtech.tis.plugin.ds.IdlistElementCreatorFactory;
import com.qlangtech.tis.plugin.trigger.JobTrigger;
Expand Down Expand Up @@ -1435,8 +1434,8 @@ public boolean validate(IFieldErrorHandler msgHandler, Context context, String f
return false;
}

CMeta.ParsePostMCols postMCols = (new IdlistElementCreatorFactory()).parsePostMCols(msgHandler,
context, MultiItemsViewType.keyColsMeta, targetCols);
CMeta.ParsePostMCols postMCols = (new IdlistElementCreatorFactory()).parsePostMCols(null, msgHandler,
context, fieldKey /*MultiItemsViewType.keyColsMeta*/, targetCols);

// Map<String, Integer> existCols = Maps.newHashMap();
// boolean validateFaild = false;
Expand Down Expand Up @@ -1581,7 +1580,7 @@ public void doGetDataXMeta(Context context) {
}


public static List<String> getTablesInDB(IPropertyType.SubFormFilter filter) {
public static List<String> getTablesInDB(SubFormFilter filter) {
DataxReader reader = DataxReader.getDataxReader(filter);
return reader.getTablesInDB().getTabs();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@
import com.qlangtech.tis.extension.Descriptor;
import com.qlangtech.tis.extension.Descriptor.PluginValidateResult;
import com.qlangtech.tis.extension.INotebookable;
import com.qlangtech.tis.extension.IPropertyType;
import com.qlangtech.tis.extension.PluginFormProperties;
import com.qlangtech.tis.extension.PluginManager;
import com.qlangtech.tis.extension.PluginWrapper;
import com.qlangtech.tis.extension.SubFormFilter;
import com.qlangtech.tis.extension.impl.PropertyType;
import com.qlangtech.tis.extension.impl.RootFormProperties;
import com.qlangtech.tis.extension.impl.SuFormProperties;
Expand All @@ -47,9 +47,6 @@
import com.qlangtech.tis.install.InstallState;
import com.qlangtech.tis.install.InstallUtil;
import com.qlangtech.tis.manage.IAppSource;
import com.qlangtech.tis.manage.common.Config;
import com.qlangtech.tis.manage.common.ConfigFileContext;
import com.qlangtech.tis.manage.common.HttpUtils;
import com.qlangtech.tis.manage.common.Option;
import com.qlangtech.tis.maven.plugins.tpi.PluginClassifier;
import com.qlangtech.tis.offline.module.manager.impl.OfflineManager;
Expand All @@ -70,7 +67,6 @@
import com.qlangtech.tis.util.PluginItems;
import com.qlangtech.tis.util.Selectable;
import com.qlangtech.tis.util.UploadPluginMeta;
import com.qlangtech.tis.web.start.TisAppLaunch;
import com.qlangtech.tis.workflow.pojo.DatasourceDb;
import com.qlangtech.tis.workflow.pojo.DatasourceDbCriteria;
import org.apache.commons.codec.digest.DigestUtils;
Expand All @@ -88,8 +84,6 @@
import org.springframework.beans.factory.annotation.Autowired;

import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
Expand Down Expand Up @@ -951,7 +945,7 @@ public static PluginItemsParser parsePluginItems(BasicModule module, UploadPlugi
int pluginIndex, JSONArray itemsArray, boolean verify) {
context.put(UploadPluginMeta.KEY_PLUGIN_META, pluginMeta);
// List<Descriptor.PluginValidateResult> items = Lists.newArrayList();
Optional<IPropertyType.SubFormFilter> subFormFilter = pluginMeta.getSubFormFilter();
Optional<SubFormFilter> subFormFilter = pluginMeta.getSubFormFilter();

IPluginEnum hEnum = pluginMeta.getHeteroEnum();
PluginItems pluginItems = new PluginItems(module, pluginMeta);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,10 @@
import com.google.common.collect.Sets;
import com.koubei.web.tag.pager.Pager;
import com.qlangtech.tis.TIS;
import com.qlangtech.tis.assemble.FullbuildPhase;
import com.qlangtech.tis.coredefine.module.action.DataxAction;
import com.qlangtech.tis.coredefine.module.action.PluginDescMeta;
import com.qlangtech.tis.coredefine.module.action.TriggerBuildResult;
import com.qlangtech.tis.datax.DataXJobSubmit;
import com.qlangtech.tis.datax.IDataXPowerJobSubmit;
import com.qlangtech.tis.datax.IDataxProcessor;
import com.qlangtech.tis.datax.impl.DataXBasicProcessMeta;
import com.qlangtech.tis.datax.impl.DataxProcessor;
Expand All @@ -50,7 +48,6 @@
import com.qlangtech.tis.manage.PermissionConstant;
import com.qlangtech.tis.manage.biz.dal.pojo.Application;
import com.qlangtech.tis.manage.common.AppDomainInfo;
import com.qlangtech.tis.manage.common.HttpUtils.PostParam;
import com.qlangtech.tis.manage.common.IUser;
import com.qlangtech.tis.manage.common.Option;
import com.qlangtech.tis.manage.servlet.BasicServlet;
Expand Down Expand Up @@ -85,6 +82,7 @@
import com.qlangtech.tis.sql.parser.meta.*;
import com.qlangtech.tis.sql.parser.tuple.creator.EntityName;
import com.qlangtech.tis.trigger.util.JsonUtil;
import com.qlangtech.tis.trigger.util.UnCacheString;
import com.qlangtech.tis.util.DescriptorsJSON;
import com.qlangtech.tis.util.HeteroList;
import com.qlangtech.tis.util.IPluginContext;
Expand Down Expand Up @@ -1163,7 +1161,7 @@ public void doGetDsTabsVals(Context context) throws IOException {
if (tabs == null) {
throw new IllegalArgumentException("initialize Tabs can not be null");
}
List<String> selectedTabs = ((Stream<String>) tabs.stream()).map((tab) -> (String) tab).collect(Collectors.toList());
List<String> selectedTabs = ((Stream<Object>) tabs.stream()).map((tab) -> (String) tab).collect(Collectors.toList());

UploadPluginMeta pluginMeta = Objects.requireNonNull(getPluginMeta(body), "pluginMeta can not be null");

Expand Down Expand Up @@ -1193,7 +1191,7 @@ public void doGetDsTabsVals(Context context) throws IOException {
allNewTabs.add(createNewSelectedTab(pluginFormPropertyTypes, tab2cols));
// 需要将desc中的取option列表解析一下(JsonUtil.UnCacheString)
tabDesc.put(tab2cols.getKey(),
JSON.parseObject(desc2Json.getDescriptorsJSON(pluginMeta.getSubFormFilter()).toJSONString()));
JSON.parseObject(JsonUtil.toString(desc2Json.getDescriptorsJSON(pluginMeta.getSubFormFilter()))));
} finally {
SuFormProperties.subFormGetterProcessThreadLocal.remove();
}
Expand Down Expand Up @@ -1338,8 +1336,8 @@ private Describable createPluginByDefaultVals(StringBuffer propPath, final Set<S
JSONArray enums = null;
if (enumPp instanceof JSONArray) {
enums = (JSONArray) enumPp;
} else if (enumPp instanceof JsonUtil.UnCacheString) {
enums = ((JsonUtil.UnCacheString<JSONArray>) enumPp).getValue();
} else if (enumPp instanceof UnCacheString) {
enums = ((UnCacheString<JSONArray>) enumPp).getValue();
} else {
throw new IllegalStateException("unsupport type:" + pp.getClass().getName());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

import com.opensymphony.xwork2.ActionProxy;
import com.qlangtech.tis.BasicActionTestCase;
import com.qlangtech.tis.extension.IPropertyType.SubFormFilter;
import com.qlangtech.tis.extension.SubFormFilter;
import com.qlangtech.tis.manage.common.TisUTF8;
import com.qlangtech.tis.manage.common.valve.AjaxValve;
import com.qlangtech.tis.offline.DataxUtils;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.qlangtech.tis.coredefine.module.action.DataxAction;
import com.qlangtech.tis.extension.SubFormFilter;
import com.qlangtech.tis.extension.impl.*;
import com.qlangtech.tis.plugin.ds.CMeta;
import com.qlangtech.tis.plugin.ds.ISelectedTab;
import com.qlangtech.tis.datax.impl.DataxReader;
import com.qlangtech.tis.extension.IPropertyType;
import com.qlangtech.tis.extension.PluginFormProperties;
import com.qlangtech.tis.manage.common.*;
import com.qlangtech.tis.offline.module.action.OfflineDatasourceAction;
Expand Down Expand Up @@ -98,7 +98,7 @@ public Boolean visit(RootFormProperties props) {
return true;
}
}));
Optional<IPropertyType.SubFormFilter> subFormFilter = subFieldPluginMeta.getSubFormFilter();
Optional<SubFormFilter> subFormFilter = subFieldPluginMeta.getSubFormFilter();
assertTrue(subFormFilter.isPresent());
PluginFormProperties pluginFormPropertyTypes = reader.getDescriptor().getPluginFormPropertyTypes(subFormFilter);
assertTrue("get SuFormProperties process result", pluginFormPropertyTypes.accept(new PluginFormProperties.IVisitor() {
Expand Down Expand Up @@ -163,7 +163,7 @@ private void validateSubFormSave() {
Context context = EasyMock.createMock("context", Context.class);
//targetDescriptorName_MySQL,subFormFieldName_selectedTabs

Optional<IPropertyType.SubFormFilter> subFormFilter = subFieldPluginMeta.getSubFormFilter();
Optional<SubFormFilter> subFormFilter = subFieldPluginMeta.getSubFormFilter();
assertTrue("subFormFilter.isPresent():true", subFormFilter.isPresent());
PluginItems pluginItems = new PluginItems(pluginContext, subFieldPluginMeta);
IControlMsgHandler fieldErrorHandler = EasyMock.createMock("fieldErrorHandler", IControlMsgHandler.class);
Expand Down Expand Up @@ -203,7 +203,7 @@ private void validateRootFormSave() {
});

JSONArray itemsArray = jsonArray.getJSONArray(0);
Optional<IPropertyType.SubFormFilter> subFormFilter = pluginMeta.getSubFormFilter();
Optional<SubFormFilter> subFormFilter = pluginMeta.getSubFormFilter();
assertFalse("subFormFilter.isPresent():false", subFormFilter.isPresent());
List<AttrValMap> items = AttrValMap.describableAttrValMapList( itemsArray, subFormFilter);
pluginItems.items = items;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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
* <p>
* http:https://www.apache.org/licenses/LICENSE-2.0
* <p>
* 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.qlangtech.tis.extension;

/**
* @author 百岁([email protected]
* @date 2021-04-11 12:11
*/
public interface IPropertyType {
/**
* 对应的property 是否是集合属性
* @return
*/
boolean isCollectionType();
}
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ public AjaxResult<T> p(int status, InputStream stream, Map<String, List<String>>
}
}
msgs = result.getJSONArray(IAjaxResult.KEY_MSG);
r.setMsg(((Stream<String>) msgs.stream()).map((m) -> (String) m).collect(Collectors.toList()));
r.setMsg(((Stream<Object>) msgs.stream()).map((m) -> (String) m).collect(Collectors.toList()));
if (clazz == Void.class) {
return r;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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
* <p>
* http:https://www.apache.org/licenses/LICENSE-2.0
* <p>
* 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.
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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:https://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.qlangtech.tis.plugin;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import com.alibaba.citrus.turbine.Context;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.qlangtech.tis.extension.IPropertyType;
import com.qlangtech.tis.runtime.module.misc.IFieldErrorHandler;

import java.util.function.BiConsumer;
Expand All @@ -37,7 +38,7 @@ public interface ElementCreatorFactory<T extends TypeBase> {
* @param targetCols
* @return
*/
public CMeta.ParsePostMCols<T> parsePostMCols(
public CMeta.ParsePostMCols<T> parsePostMCols(IPropertyType propertyType,
IFieldErrorHandler msgHandler, Context context, String keyColsMeta,
JSONArray targetCols);

Expand All @@ -61,7 +62,7 @@ default T create(JSONObject targetCol) {
*
* @param biz
*/
default void appendExternalJsonProp(JSONObject biz) {
default void appendExternalJsonProp(IPropertyType propertyType, JSONObject biz) {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import com.alibaba.citrus.turbine.Context;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.qlangtech.tis.extension.IPropertyType;
import com.qlangtech.tis.plugin.ds.CMeta.ParsePostMCols;
import com.qlangtech.tis.runtime.module.misc.IFieldErrorHandler;

Expand Down Expand Up @@ -48,7 +49,7 @@ public CMeta create(JSONObject targetCol, BiConsumer<String, String> errorProces
}

@Override
public ParsePostMCols<CMeta> parsePostMCols(
public ParsePostMCols<CMeta> parsePostMCols(IPropertyType propertyType,
IFieldErrorHandler msgHandler, Context context, String keyColsMeta, JSONArray targetCols) {
throw new UnsupportedOperationException();
}
Expand Down

0 comments on commit 3d8fbe2

Please sign in to comment.