From 3a7614ee6a0a3a73c00c4c5ca456e9219285c2a6 Mon Sep 17 00:00:00 2001 From: kjwang Date: Mon, 26 Sep 2022 18:31:12 +0800 Subject: [PATCH 1/5] TUP-36748 Studio send request to wrong data center when token invalid (#5633) (#5646) * TUP-36748 Studio send request to wrong data center when token invalid https://jira.talendforge.org/browse/TUP-36748 --- .../talend/signon/util/TMCRepositoryUtil.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/main/plugins/org.talend.signon.util/src/main/java/org/talend/signon/util/TMCRepositoryUtil.java b/main/plugins/org.talend.signon.util/src/main/java/org/talend/signon/util/TMCRepositoryUtil.java index fb8ba7c74e..4809de4f28 100644 --- a/main/plugins/org.talend.signon.util/src/main/java/org/talend/signon/util/TMCRepositoryUtil.java +++ b/main/plugins/org.talend.signon.util/src/main/java/org/talend/signon/util/TMCRepositoryUtil.java @@ -12,8 +12,16 @@ // ============================================================================ package org.talend.signon.util; -public class TMCRepositoryUtil { + +import org.apache.log4j.Logger; +import org.eclipse.core.runtime.preferences.ConfigurationScope; +import org.osgi.service.prefs.BackingStoreException; +import org.osgi.service.prefs.Preferences; + +public class TMCRepositoryUtil { + private static Logger LOGGER = Logger.getLogger(TMCRepositoryUtil.class); + public static final String REPOSITORY_CLOUD_US_ID = "cloud_us"; //$NON-NLS-1$ public static final String REPOSITORY_CLOUD_EU_ID = "cloud_eu"; //$NON-NLS-1$ @@ -45,6 +53,10 @@ public class TMCRepositoryUtil { public static final String SUCCESS_REDIRECT_URL = "https://iam.%s.cloud.talend.com/idp/login-sso-success"; //$NON-NLS-1$ public static final String ONLINE_HELP_URL = "https://document-link.us.cloud.talend.com/ts_ug_launch-studio?version=%s&lang=%s&env=prd"; + + public static final String ORG_TALEND_WORKSPACE_PREF_NODE = "org.eclipse.ui.ide"; //$NON-NLS-1$ + + public static final String ORG_TALEND_RECENT_DATA_CENTERR = "org.talend.recent.datacenter"; public static String getBaseLoginURL(String dataCenter) { if (dataCenter == null) { @@ -55,11 +67,29 @@ public class TMCRepositoryUtil { public static String getDefaultDataCenter() { String defaultDataCenter = "us"; + if (getRecentDataCenter() != null) { + defaultDataCenter = getRecentDataCenter(); + } if (System.getProperty(SSOClientUtil.DATA_CENTER_KEY) != null) { defaultDataCenter = System.getProperty(SSOClientUtil.DATA_CENTER_KEY); } return defaultDataCenter; } + + public static void saveRecentDataCenter(String dataCenter) { + Preferences node = new ConfigurationScope().getNode(ORG_TALEND_WORKSPACE_PREF_NODE); + node.put(ORG_TALEND_RECENT_DATA_CENTERR, dataCenter); + try { + node.flush(); + } catch (BackingStoreException e) { + LOGGER.error("failed to store workspace location in preferences :", e); //$NON-NLS-1$ + } + } + + public static String getRecentDataCenter() { + Preferences node = new ConfigurationScope().getNode(ORG_TALEND_WORKSPACE_PREF_NODE); + return node.get(ORG_TALEND_RECENT_DATA_CENTERR, null); + } public static String getCloudAdminURL(String dataCenter) { return String.format(ADMIN_URL, dataCenter); From 37af22697417f34fae1c345d5ebfecdb0cab45cf Mon Sep 17 00:00:00 2001 From: dicarcab <110469300+dicarcab@users.noreply.github.com> Date: Tue, 27 Sep 2022 10:31:23 +0200 Subject: [PATCH 2/5] =?UTF-8?q?fix(TBD-10400):=20Reject=20flow=20doesn't?= =?UTF-8?q?=20work=20correctly=20for=20dates=20in=20extra=E2=80=A6=20(#563?= =?UTF-8?q?0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/java/routines/system/FastDateParser.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main/plugins/org.talend.librariesmanager/resources/java/routines/system/FastDateParser.java b/main/plugins/org.talend.librariesmanager/resources/java/routines/system/FastDateParser.java index 7c51ca6ed0..1c266dd8e8 100644 --- a/main/plugins/org.talend.librariesmanager/resources/java/routines/system/FastDateParser.java +++ b/main/plugins/org.talend.librariesmanager/resources/java/routines/system/FastDateParser.java @@ -135,6 +135,8 @@ public class FastDateParser { calendar.clear(); calendar.set(year, month, day); return calendar.getTime(); + } catch (NumberFormatException numberFormatException){ + throw new RuntimeException("Unparseable date: \"" + source + "\""); //$NON-NLS-1$ //$NON-NLS-2$ } catch (Exception e) { pos.setErrorIndex(index); e.printStackTrace(); From b963938b246ca9c3bd2f3c212addd019b19527a4 Mon Sep 17 00:00:00 2001 From: sbliu Date: Fri, 30 Sep 2022 14:33:18 +0800 Subject: [PATCH 3/5] fix(TUP-36169) Performance issue when execute "Generate Doc as html" (#5579) --- .../commons/ui/runtime/image/ImageUtils.java | 47 ++++++++++++++-- pom.xml | 1 + .../.classpath | 11 ++++ .../.project | 28 ++++++++++ .../META-INF/MANIFEST.MF | 11 ++++ .../build.properties | 4 ++ .../org.talend.common.ui.runtime.test/pom.xml | 12 ++++ .../ui/runtime/image/ImageUtilsTest.java | 56 +++++++++++++++++++ .../core/image/CoreImageProviderTest.java | 10 ++-- 9 files changed, 170 insertions(+), 10 deletions(-) create mode 100644 test/plugins/org.talend.common.ui.runtime.test/.classpath create mode 100644 test/plugins/org.talend.common.ui.runtime.test/.project create mode 100644 test/plugins/org.talend.common.ui.runtime.test/META-INF/MANIFEST.MF create mode 100644 test/plugins/org.talend.common.ui.runtime.test/build.properties create mode 100644 test/plugins/org.talend.common.ui.runtime.test/pom.xml create mode 100644 test/plugins/org.talend.common.ui.runtime.test/src/main/java/org/talend/commons/ui/runtime/image/ImageUtilsTest.java diff --git a/main/plugins/org.talend.common.ui.runtime/src/main/java/org/talend/commons/ui/runtime/image/ImageUtils.java b/main/plugins/org.talend.common.ui.runtime/src/main/java/org/talend/commons/ui/runtime/image/ImageUtils.java index 0b86a56336..5bfc794204 100644 --- a/main/plugins/org.talend.common.ui.runtime/src/main/java/org/talend/commons/ui/runtime/image/ImageUtils.java +++ b/main/plugins/org.talend.common.ui.runtime/src/main/java/org/talend/commons/ui/runtime/image/ImageUtils.java @@ -16,8 +16,14 @@ import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.SWT; @@ -158,8 +164,35 @@ public class ImageUtils { return imageDes; } - private static Map imageFromDataCachedImages = new HashMap(); + private static Map imageFromDataCachedImages = Collections.synchronizedMap(new HashMap()); + private static Map cachedImagesTimeKeeping = Collections.synchronizedMap(new HashMap()); + + private static Thread clearImageFromDataCachedImages = new Thread() { + @SuppressWarnings("static-access") + public void run() { + long timeout = 5 * 60 * 1000; + while(true) {//remove older than 5 mins + Set> collect = cachedImagesTimeKeeping.entrySet().stream() + .filter(entry -> (System.currentTimeMillis() - entry.getKey()) > timeout).collect(Collectors.toSet()); + for(Entry entry: collect) { + Long key = entry.getKey(); + cachedImagesTimeKeeping.remove(key); + imageFromDataCachedImages.remove(entry.getValue()); + } + + try { + sleep(timeout); + } catch (InterruptedException e) {// + } + } + }; + }; + static { + clearImageFromDataCachedImages.setDaemon(true); + clearImageFromDataCachedImages.start(); + } + /** * By default, keep in memory the . * @@ -169,12 +202,17 @@ public class ImageUtils { */ public static ImageDescriptor createImageFromData(byte[] data, boolean... keepInMemory) { if (data != null) { - ImageDataProvider imageProvider = imageFromDataCachedImages.get(data); + ImageDataProvider imageProvider = null; + Optional findKey = imageFromDataCachedImages.keySet().stream().filter(key->Arrays.equals(key, data)).findAny(); + if(findKey.isPresent()) { + imageProvider = imageFromDataCachedImages.get(findKey.get()); + } if (imageProvider == null) { ByteArrayInputStream bais = new ByteArrayInputStream(data); ImageData img = new ImageData(bais); imageProvider = new TalendImageProvider(img); imageFromDataCachedImages.put(data, imageProvider); + cachedImagesTimeKeeping.put(System.currentTimeMillis(), data); } return ImageDescriptor.createFromImageDataProvider(imageProvider); } @@ -183,8 +221,9 @@ public class ImageUtils { public static void disposeImages(byte[] data) { if (data != null) { - if (imageFromDataCachedImages.get(data) != null) { - imageFromDataCachedImages.remove(data); + Optional findKey = imageFromDataCachedImages.keySet().stream().filter(key->Arrays.equals(key, data)).findAny(); + if(findKey.isPresent()) { + imageFromDataCachedImages.remove(findKey.get()); } } } diff --git a/pom.xml b/pom.xml index c35f3dad8a..0d80d88b6f 100644 --- a/pom.xml +++ b/pom.xml @@ -121,6 +121,7 @@ main/plugins/org.talend.libraries.persist.lookup main/plugins/org.talend.designer.maven.aether + test/plugins/org.talend.common.ui.runtime.test test/plugins/org.talend.commons.runtime.test test/plugins/org.talend.commons.ui.test test/plugins/org.talend.core.repository.test diff --git a/test/plugins/org.talend.common.ui.runtime.test/.classpath b/test/plugins/org.talend.common.ui.runtime.test/.classpath new file mode 100644 index 0000000000..48384f6ac2 --- /dev/null +++ b/test/plugins/org.talend.common.ui.runtime.test/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/plugins/org.talend.common.ui.runtime.test/.project b/test/plugins/org.talend.common.ui.runtime.test/.project new file mode 100644 index 0000000000..098084b9fc --- /dev/null +++ b/test/plugins/org.talend.common.ui.runtime.test/.project @@ -0,0 +1,28 @@ + + + org.talend.common.ui.runtime.test + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/test/plugins/org.talend.common.ui.runtime.test/META-INF/MANIFEST.MF b/test/plugins/org.talend.common.ui.runtime.test/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..9f196ecea0 --- /dev/null +++ b/test/plugins/org.talend.common.ui.runtime.test/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.talend.common.ui.runtime.test +Bundle-SymbolicName: org.talend.common.ui.runtime.test +Bundle-Version: 8.0.1.qualifier +Fragment-Host: org.talend.common.ui.runtime +Automatic-Module-Name: org.talend.common.ui.runtime.test +Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)", + org.talend.utils, + org.talend.testutils +Bundle-ClassPath: . diff --git a/test/plugins/org.talend.common.ui.runtime.test/build.properties b/test/plugins/org.talend.common.ui.runtime.test/build.properties new file mode 100644 index 0000000000..fcd4671249 --- /dev/null +++ b/test/plugins/org.talend.common.ui.runtime.test/build.properties @@ -0,0 +1,4 @@ +source.. = src/main/java/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/test/plugins/org.talend.common.ui.runtime.test/pom.xml b/test/plugins/org.talend.common.ui.runtime.test/pom.xml new file mode 100644 index 0000000000..d7f7c49687 --- /dev/null +++ b/test/plugins/org.talend.common.ui.runtime.test/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + org.talend.studio + tcommon-studio-se + 8.0.1-SNAPSHOT + ../../../ + + org.talend.common.ui.runtime.test + eclipse-plugin + diff --git a/test/plugins/org.talend.common.ui.runtime.test/src/main/java/org/talend/commons/ui/runtime/image/ImageUtilsTest.java b/test/plugins/org.talend.common.ui.runtime.test/src/main/java/org/talend/commons/ui/runtime/image/ImageUtilsTest.java new file mode 100644 index 0000000000..29eb73e656 --- /dev/null +++ b/test/plugins/org.talend.common.ui.runtime.test/src/main/java/org/talend/commons/ui/runtime/image/ImageUtilsTest.java @@ -0,0 +1,56 @@ +// ============================================================================ +// +// Copyright (C) 2006-2022 Talend Inc. - www.talend.com +// +// This source code is available under agreement available at +// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt +// +// You should have received a copy of the agreement +// along with this program; if not, write to Talend SA +// 9 rue Pages 92150 Suresnes, France +// +// ============================================================================ +package org.talend.commons.ui.runtime.image; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.junit.Test; + +public class ImageUtilsTest { + + @Test + public void testCreateImageFromData() { + IImage icon = ECoreImage.PROCESS_ICON; + ImageDescriptor imgDesc = ImageDescriptor.createFromFile(icon.getLocation(), icon.getPath()); + + byte[] data1 = ImageUtils.saveImageToData(imgDesc); + byte[] data2 = new byte[data1.length]; + System.arraycopy(data1, 0, data2, 0, data1.length); + assertTrue(Arrays.equals(data1, data2)); + + ImageDescriptor createdImageFromData1 = ImageUtils.createImageFromData(data1); + ImageDescriptor createdImageFromData2 = ImageUtils.createImageFromData(data2); + assertEquals(createdImageFromData2, createdImageFromData1); + } + + @Test + public void testDisposeImages() { + IImage icon = ECoreImage.PROCESS_ICON; + ImageDescriptor imgDesc = ImageDescriptor.createFromFile(icon.getLocation(), icon.getPath()); + + byte[] data1 = ImageUtils.saveImageToData(imgDesc); + byte[] data2 = new byte[data1.length]; + System.arraycopy(data1, 0, data2, 0, data1.length); + assertTrue(Arrays.equals(data1, data2)); + + ImageDescriptor createdImageFromData1 = ImageUtils.createImageFromData(data1); + ImageUtils.disposeImages(data2); + ImageDescriptor createdImageFromData2 = ImageUtils.createImageFromData(data1); + assertNotSame(createdImageFromData1, createdImageFromData2); + } +} diff --git a/test/plugins/org.talend.core.ui.test/src/main/java/org/talend/designer/core/image/CoreImageProviderTest.java b/test/plugins/org.talend.core.ui.test/src/main/java/org/talend/designer/core/image/CoreImageProviderTest.java index 322e6ef9f1..2041fe367b 100644 --- a/test/plugins/org.talend.core.ui.test/src/main/java/org/talend/designer/core/image/CoreImageProviderTest.java +++ b/test/plugins/org.talend.core.ui.test/src/main/java/org/talend/designer/core/image/CoreImageProviderTest.java @@ -12,6 +12,8 @@ // ============================================================================ package org.talend.designer.core.image; +import java.util.Arrays; + import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; @@ -225,15 +227,11 @@ public class CoreImageProviderTest { byte[] data1 = ImageUtils.saveImageToData(imgDesc); byte[] data2 = ImageUtils.saveImageToData(imgDesc); - Assert.assertNotEquals(data2, data1); + Assert.assertTrue(Arrays.equals(data2, data1)); ImageDescriptor newImgDesc1 = ImageUtils.createImageFromData(data1); ImageDescriptor newImgDesc2 = ImageUtils.createImageFromData(data2); - Assert.assertNotEquals(newImgDesc2, newImgDesc1); - - Image img1 = newImgDesc1.createImage(); - Image img2 = newImgDesc2.createImage(); - Assert.assertNotEquals(img2, img1); + Assert.assertEquals(newImgDesc2, newImgDesc1); } } From 90c5220f0867f6e57f65a485b54faae85974efaf Mon Sep 17 00:00:00 2001 From: Samuel ANTOINE Date: Fri, 30 Sep 2022 09:47:13 +0200 Subject: [PATCH 4/5] feat(TBD-13810): add dynamic schema on tfileinputdelimited (#5599) feat(TBD-13810): add dynamic schema on tfileinputdelimited (#5599) --- .../model/metadata/SparkBatchMetadataTalendTypeFilter.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/metadata/SparkBatchMetadataTalendTypeFilter.java b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/metadata/SparkBatchMetadataTalendTypeFilter.java index a314034d21..895b3f7b1b 100644 --- a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/metadata/SparkBatchMetadataTalendTypeFilter.java +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/metadata/SparkBatchMetadataTalendTypeFilter.java @@ -16,7 +16,10 @@ public class SparkBatchMetadataTalendTypeFilter extends SparkMetadataTalendTypeF "tFileInputParquet", "tFileOutputParquet", "tJDBCInput", - "tJDBCOutput", "tLogRow", "tSqlRow" + "tJDBCOutput", + "tLogRow", + "tSqlRow", + "tFileInputDelimited" ); public SparkBatchMetadataTalendTypeFilter(INode node) { From f917599a0c619fe66052ba0bf01d626c82269aa5 Mon Sep 17 00:00:00 2001 From: jiezhang-tlnd <40561780+jiezhang-tlnd@users.noreply.github.com> Date: Fri, 30 Sep 2022 15:54:05 +0800 Subject: [PATCH 5/5] 80 2022 09 29 07 23 (#5657) * Add localized files (#5653) Co-authored-by: jenkins-git * Add localized files (#5656) Co-authored-by: jenkins-git Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com> Co-authored-by: jenkins-git Co-authored-by: Alexiane Yvonet --- .../java/org/talend/core/runtime/i18n/messages_ja.properties | 2 ++ .../java/org/talend/core/runtime/i18n/messages_zh_CN.properties | 2 ++ .../org.talend.signon.util/src/main/java/messages_ja.properties | 1 + .../src/main/java/messages_zh_CN.properties | 1 + 4 files changed, 6 insertions(+) create mode 100644 main/plugins/org.talend.signon.util/src/main/java/messages_ja.properties create mode 100644 main/plugins/org.talend.signon.util/src/main/java/messages_zh_CN.properties diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/i18n/messages_ja.properties b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/i18n/messages_ja.properties index 5a22309ddb..d4f92d2600 100644 --- a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/i18n/messages_ja.properties +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/i18n/messages_ja.properties @@ -552,6 +552,8 @@ BusinessAppearanceComposite.textAlignment.vertical.centre=\u4E2D\u5FC3 ConnectionBean.Local=\u30ED\u30FC\u30AB\u30EB ConnectionBean.Remote=\u30EA\u30E2\u30FC\u30C8 ConnectionBean.DefaultConnection=\u30C7\u30D5\u30A9\u30EB\u30C8\u63A5\u7D9A +ConnectionBean.Cloud.name=\u30B5\u30A4\u30F3\u30A4\u30F3\u6E08\u307F: \u30AF\u30E9\u30A6\u30C9({0}) +ConnectionBean.CloudConnection.description=\u30AF\u30E9\u30A6\u30C9\u3078\u306E\u30EA\u30E2\u30FC\u30C8\u63A5\u7D9A - \u30B5\u30A4\u30F3\u30A4\u30F3\u6E08\u307F: \u30AF\u30E9\u30A6\u30C9({0}) InegerCellEditorListener.NegativeNumberMessage={0}\u306B\u306F\u8CA0\u306E\u5024\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002 InegerCellEditorListener.NumeralMessage={0}\u306B\u306F\u6570\u5024\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002 OpenXSDFileDialog.cancel=\u30AD\u30E3\u30F3\u30BB\u30EB diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/i18n/messages_zh_CN.properties b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/i18n/messages_zh_CN.properties index 5d6b08623b..fb02a20bd0 100644 --- a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/i18n/messages_zh_CN.properties +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/i18n/messages_zh_CN.properties @@ -552,6 +552,8 @@ BusinessAppearanceComposite.textAlignment.vertical.centre=\u4E2D\u592E ConnectionBean.Local=\u672C\u5730 ConnectionBean.Remote=\u8FDC\u7A0B ConnectionBean.DefaultConnection=\u9ED8\u8BA4\u8FDE\u63A5 +ConnectionBean.Cloud.name=\u5DF2\u767B\u5F55: \u4E91\u7AEF ({0}) +ConnectionBean.CloudConnection.description=\u4E91\u7AEF\u8FDC\u7A0B\u8FDE\u63A5 - \u5DF2\u767B\u5F55: \u4E91\u7AEF ({0}) InegerCellEditorListener.NegativeNumberMessage={0} \u7684\u503C\u4E0D\u80FD\u8BBE\u5B9A\u4E3A\u8D1F\u6570\u3002 InegerCellEditorListener.NumeralMessage={0} \u7684\u503C\u5E94\u8BE5\u4E3A\u6570\u5B57\u3002 OpenXSDFileDialog.cancel=\u53D6\u6D88 diff --git a/main/plugins/org.talend.signon.util/src/main/java/messages_ja.properties b/main/plugins/org.talend.signon.util/src/main/java/messages_ja.properties new file mode 100644 index 0000000000..305146615b --- /dev/null +++ b/main/plugins/org.talend.signon.util/src/main/java/messages_ja.properties @@ -0,0 +1 @@ +SSOClientExec.error.timeout=\u30ED\u30B0\u30A4\u30F3\u5F85\u3061\u306E\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8 diff --git a/main/plugins/org.talend.signon.util/src/main/java/messages_zh_CN.properties b/main/plugins/org.talend.signon.util/src/main/java/messages_zh_CN.properties new file mode 100644 index 0000000000..87217157bf --- /dev/null +++ b/main/plugins/org.talend.signon.util/src/main/java/messages_zh_CN.properties @@ -0,0 +1 @@ +SSOClientExec.error.timeout=\u7B49\u5F85\u767B\u5F55\u8D85\u65F6