Compare commits
213 Commits
patch/TPS-
...
release/8.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aeb31c0e57 | ||
|
|
9c5e56f757 | ||
|
|
77ee619152 | ||
|
|
feb8e81628 | ||
|
|
472b999612 | ||
|
|
f924a19f7d | ||
|
|
8ca4df75ea | ||
|
|
9e04aa1fd4 | ||
|
|
ed7375ea82 | ||
|
|
5ce7b0d702 | ||
|
|
127573adc5 | ||
|
|
96abfedf4c | ||
|
|
b19d7c550d | ||
|
|
6eec1e24d1 | ||
|
|
7a5fb399ec | ||
|
|
f7bebc1efe | ||
|
|
4e50edcff1 | ||
|
|
4cf6b6277f | ||
|
|
f964d20a63 | ||
|
|
8225e6fa05 | ||
|
|
9e918597a3 | ||
|
|
825a4634d5 | ||
|
|
e0b36d539d | ||
|
|
2f7fcb839c | ||
|
|
4810bd8cda | ||
|
|
b2173b2707 | ||
|
|
30643242a4 | ||
|
|
eea308c852 | ||
|
|
482dab62dc | ||
|
|
e9fb0a7d70 | ||
|
|
962800e16b | ||
|
|
c605b5cf6e | ||
|
|
50facdd03d | ||
|
|
0d3ad601ab | ||
|
|
4851f670d6 | ||
|
|
afc3c0c57e | ||
|
|
5cc4ddbcf2 | ||
|
|
646c80fec6 | ||
|
|
7f5e7c70b3 | ||
|
|
3a196a0095 | ||
|
|
b571bef976 | ||
|
|
67ef82fede | ||
|
|
9adc6b7634 | ||
|
|
214f47d0d1 | ||
|
|
835f89e891 | ||
|
|
4bdc3703c3 | ||
|
|
ebfa988a4f | ||
|
|
2019954122 | ||
|
|
7c75d23ae8 | ||
|
|
6d12874f4d | ||
|
|
24ea68ce97 | ||
|
|
5aabff0e3d | ||
|
|
6172fe622c | ||
|
|
4b678206df | ||
|
|
d3c9eff9c5 | ||
|
|
b91ac54c40 | ||
|
|
ff3cee4aab | ||
|
|
7798616c46 | ||
|
|
63f2485928 | ||
|
|
b34075c36a | ||
|
|
2d59042cfe | ||
|
|
60022731f3 | ||
|
|
501e024c54 | ||
|
|
accb4dc40c | ||
|
|
8b0dafab1d | ||
|
|
b557195264 | ||
|
|
9ff1bdb734 | ||
|
|
3dc2d267d2 | ||
|
|
c2ed2d30d3 | ||
|
|
6cc1fa47aa | ||
|
|
5b0fd33df5 | ||
|
|
74d2ba6332 | ||
|
|
e680a31762 | ||
|
|
6a2da84be3 | ||
|
|
affaf0e4bc | ||
|
|
0edc21cac3 | ||
|
|
1d27501e60 | ||
|
|
d1af724543 | ||
|
|
491bb9652c | ||
|
|
48fbc6588b | ||
|
|
659a089bef | ||
|
|
312299fc2d | ||
|
|
76c1b6f942 | ||
|
|
3c29998973 | ||
|
|
9af6a950ba | ||
|
|
46f5337dca | ||
|
|
33a207ceaa | ||
|
|
26ab3f97a4 | ||
|
|
f6ea29ec76 | ||
|
|
51a436b552 | ||
|
|
0ab9b617f5 | ||
|
|
51f3e07528 | ||
|
|
1af34cb93f | ||
|
|
d575088589 | ||
|
|
cbd9486931 | ||
|
|
c2511328fd | ||
|
|
5c629d27b8 | ||
|
|
b63ff6f17f | ||
|
|
e6d3e2b37a | ||
|
|
d5716b9d63 | ||
|
|
aa3e090f18 | ||
|
|
6e31236ae2 | ||
|
|
ae5f950a78 | ||
|
|
23b5df5c4f | ||
|
|
98ee4f4ba1 | ||
|
|
ffc70af105 | ||
|
|
5e59f89dea | ||
|
|
0e697d0ef6 | ||
|
|
9a2e7c2381 | ||
|
|
8b4f177efc | ||
|
|
4ff907bf75 | ||
|
|
abfd3b7c1b | ||
|
|
4ef6f6a95e | ||
|
|
0ae7943cf2 | ||
|
|
a2ce928d6a | ||
|
|
85f2664512 | ||
|
|
452ef9896a | ||
|
|
81da114430 | ||
|
|
8b34d91c2a | ||
|
|
14673efa17 | ||
|
|
efd8c964b8 | ||
|
|
fc0aa30340 | ||
|
|
3c056baeb7 | ||
|
|
e0d5352efa | ||
|
|
440effae2d | ||
|
|
0e399e778f | ||
|
|
5e798295ea | ||
|
|
177287eebf | ||
|
|
c4ee889b3e | ||
|
|
26ead1e043 | ||
|
|
5553ce8694 | ||
|
|
caa99b5658 | ||
|
|
057580aa9e | ||
|
|
d66aa2af38 | ||
|
|
95f7b845b3 | ||
|
|
21d1ea7f84 | ||
|
|
d3a6096bc0 | ||
|
|
5705ca4789 | ||
|
|
4a7a831c77 | ||
|
|
e169b49a01 | ||
|
|
d302023eea | ||
|
|
2256de6b73 | ||
|
|
c2162b4074 | ||
|
|
2ee30fecd0 | ||
|
|
340a06876c | ||
|
|
f3c39d14d5 | ||
|
|
9c2e26bcab | ||
|
|
65e7cfb71e | ||
|
|
b338afee4c | ||
|
|
87d7a849ac | ||
|
|
73a2ac7971 | ||
|
|
e22dfb1215 | ||
|
|
9781e2fe08 | ||
|
|
60cc7742ad | ||
|
|
5369ee2142 | ||
|
|
4406d35a69 | ||
|
|
33d797e16c | ||
|
|
c282d32a80 | ||
|
|
543c5a29f8 | ||
|
|
f91f791c24 | ||
|
|
be96adb142 | ||
|
|
33d1276627 | ||
|
|
f6d544c5e3 | ||
|
|
2b8777269d | ||
|
|
fb360093a8 | ||
|
|
38fdc62738 | ||
|
|
8f1cc68be3 | ||
|
|
f34bb8520c | ||
|
|
888c3281f6 | ||
|
|
db614cc415 | ||
|
|
5210b033d0 | ||
|
|
e91b347450 | ||
|
|
ea459b8710 | ||
|
|
2ee58ac9d0 | ||
|
|
0e668b3239 | ||
|
|
1fe8bec5cf | ||
|
|
74d5eb4d90 | ||
|
|
12a842a565 | ||
|
|
9419f94c07 | ||
|
|
0beef6b531 | ||
|
|
d19f0dbce7 | ||
|
|
6ff18c0449 | ||
|
|
4c93a1bed0 | ||
|
|
2462a7a792 | ||
|
|
e18ffe5f0f | ||
|
|
b22b9decce | ||
|
|
9a3307bace | ||
|
|
dd5400af61 | ||
|
|
505609aa4b | ||
|
|
99da8e2286 | ||
|
|
239ece2966 | ||
|
|
ce4740ce83 | ||
|
|
7c795f724c | ||
|
|
67784188df | ||
|
|
248a7d74dc | ||
|
|
c09c406c32 | ||
|
|
bd5b8b0f51 | ||
|
|
eb7c195d3e | ||
|
|
33162c8be4 | ||
|
|
7169a3101a | ||
|
|
192e47b6a3 | ||
|
|
28eda4c880 | ||
|
|
309c2ac056 | ||
|
|
64c530b6b4 | ||
|
|
71f93b5165 | ||
|
|
41b50e16c1 | ||
|
|
b7711e1dd5 | ||
|
|
8ed759c0d8 | ||
|
|
3ff40da876 | ||
|
|
da6a983f29 | ||
|
|
2913c80aef | ||
|
|
fa2abaf8f3 | ||
|
|
81e63ecab0 |
@@ -16,7 +16,7 @@
|
||||
<import plugin="org.apache.commons.lang" version="0.0.0" match="greaterOrEqual"/>
|
||||
<import plugin="org.apache.commons.lang3" version="0.0.0" match="greaterOrEqual"/>
|
||||
<import plugin="org.apache.log4j" version="0.0.0" match="greaterOrEqual"/>
|
||||
<import plugin="org.apache.servicemix.bundles.avro" version="0.0.0" match="greaterOrEqual"/>
|
||||
<import plugin="avro" version="0.0.0" match="greaterOrEqual"/>
|
||||
<import plugin="org.junit" version="4.13.2" match="greaterOrEqual"/>
|
||||
<import plugin="org.slf4j.api" version="0.0.0" match="greaterOrEqual"/>
|
||||
<import plugin="org.slf4j.binding.log4j12" version="0.0.0" match="greaterOrEqual"/>
|
||||
|
||||
BIN
main/plugins/org.talend.common.ui.runtime/icons/moreInfo.png
Normal file
BIN
main/plugins/org.talend.common.ui.runtime/icons/moreInfo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 288 B |
BIN
main/plugins/org.talend.common.ui.runtime/icons/wrap.png
Normal file
BIN
main/plugins/org.talend.common.ui.runtime/icons/wrap.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 229 B |
Binary file not shown.
|
After Width: | Height: | Size: 627 B |
@@ -40,6 +40,8 @@ public class ExceptionMessageDialog extends MessageDialog {
|
||||
private String exceptionString = null;
|
||||
|
||||
private int[] diabledButtonIndex = new int[] {};
|
||||
|
||||
private boolean expandedOnOpen = false;
|
||||
|
||||
public ExceptionMessageDialog(Shell parentShell, String dialogTitle, Image dialogTitleImage, String dialogMessage,
|
||||
int dialogImageType, String[] dialogButtonLabels, int defaultIndex, Throwable ex) {
|
||||
@@ -85,6 +87,8 @@ public class ExceptionMessageDialog extends MessageDialog {
|
||||
text.setText(exceptionString);
|
||||
text.setEditable(false);
|
||||
errorComposite.setClient(text);
|
||||
|
||||
errorComposite.setExpanded(expandedOnOpen);
|
||||
|
||||
return errorComposite;
|
||||
}
|
||||
@@ -150,6 +154,22 @@ public class ExceptionMessageDialog extends MessageDialog {
|
||||
this.exceptionString = exceptionString;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the expandedOnOpen
|
||||
*/
|
||||
public boolean isExpandedOnOpen() {
|
||||
return expandedOnOpen;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param expandedOnOpen the expandedOnOpen to set
|
||||
*/
|
||||
public void setExpandedOnOpen(boolean expandedOnOpen) {
|
||||
this.expandedOnOpen = expandedOnOpen;
|
||||
}
|
||||
|
||||
public void setDisabledButtons(int[] index) {
|
||||
this.diabledButtonIndex = index;
|
||||
}
|
||||
|
||||
@@ -115,6 +115,8 @@ public enum ECoreImage implements IImage {
|
||||
|
||||
METADATA_SAPCONNECTION_ICON("/icons1/sapconnection.png"), //$NON-NLS-1$
|
||||
METADATA_SAPCONNECTION_WIZ("/icons1/connection_wiz.gif"), //$NON-NLS-1$
|
||||
|
||||
METADATA_BIGQUERYCONNECTION_ICON("/icons1/bigqueryconnection.png"), //$NON-NLS-1$
|
||||
|
||||
METADATA_HEADERFOOTER_ICON("/icons1/headerfooter_icon32.png"), //$NON-NLS-1$
|
||||
|
||||
|
||||
@@ -39,9 +39,10 @@ public enum EImage implements IImage {
|
||||
EDIT_ICON("/icons/write_obj.gif"), //$NON-NLS-1$
|
||||
READ_ICON("/icons/read_obj.gif"), //$NON-NLS-1$
|
||||
|
||||
WRAP_ICON("/icons/wrap.png"), //$NON-NLS-1$
|
||||
QUESTION_ICON("/icons/question.gif"), //$NON-NLS-1$
|
||||
|
||||
HELP_ICON("/icons/help.png"), //$NON-NLS-1$
|
||||
MOREINFO_ICON("/icons/moreInfo.png"), //$NON-NLS-1$
|
||||
|
||||
CREATE_CONNECTION_ICON("/icons/connection.gif"), //$NON-NLS-1$
|
||||
|
||||
|
||||
@@ -69,6 +69,10 @@ public class DefaultTableLabelProvider implements ITableLabelProvider, ITableCol
|
||||
returnValue = defaultValue;
|
||||
}
|
||||
} else {
|
||||
if ("ID_COLUMN_ROW_NUM".equals(column.getId())) {
|
||||
int indexOf = this.tableViewerCreator.getInputList().indexOf(element);
|
||||
AccessorUtils.set(column, element, indexOf + 1);
|
||||
}
|
||||
Object value = AccessorUtils.get(element, column);
|
||||
CellEditor cellEditor = column.getCellEditor();
|
||||
CellEditorValueAdapter retrieverValue = column.getCellEditorValueAdapter();
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
<dependency>
|
||||
<groupId>xerces</groupId>
|
||||
<artifactId>xercesImpl</artifactId>
|
||||
<version>2.12.0</version>
|
||||
<version>2.12.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.reload4j</groupId>
|
||||
@@ -125,7 +125,7 @@
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
<version>30.0-jre</version>
|
||||
<version>32.0.1-jre</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<configuration>
|
||||
|
||||
@@ -23,10 +23,19 @@ public class FatalException extends RuntimeException {
|
||||
@SuppressWarnings("unused")//$NON-NLS-1$
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final int CODE_INCOMPATIBLE_UPDATE = 10;
|
||||
|
||||
private int code;
|
||||
|
||||
public FatalException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
public FatalException(int code, String message) {
|
||||
super(message);
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public FatalException(String message) {
|
||||
super(message);
|
||||
}
|
||||
@@ -34,4 +43,9 @@ public class FatalException extends RuntimeException {
|
||||
public FatalException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ package org.talend.commons.runtime.service;
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
@@ -45,6 +46,10 @@ public interface ITaCoKitService {
|
||||
boolean isNeedMigration(String componentName, Map<String, String> properties);
|
||||
|
||||
boolean isTaCoKitType(Object repoType);
|
||||
|
||||
boolean isTaCoKitRepositoryNode(Object node);
|
||||
|
||||
boolean isTaCoKitConnection(Object conn);
|
||||
|
||||
Object getDatastoreFromDataset(Object repositoryViewObject);
|
||||
|
||||
@@ -52,6 +57,12 @@ public interface ITaCoKitService {
|
||||
|
||||
boolean isValueSelectionParameter(Object parameter);
|
||||
|
||||
List<Map<String, Object>> convertToTable(String value);
|
||||
|
||||
List<String> getValuesFromTableParameter(Object parameter, String... keys);
|
||||
|
||||
List<String> getValuesFromTableParameterValue(String value, String ...keys);
|
||||
|
||||
public static ITaCoKitService getInstance() {
|
||||
BundleContext bc = FrameworkUtil.getBundle(ITaCoKitService.class).getBundleContext();
|
||||
Collection<ServiceReference<ITaCoKitService>> tacokitServices = Collections.emptyList();
|
||||
|
||||
@@ -31,7 +31,9 @@ import javax.xml.transform.stream.StreamResult;
|
||||
|
||||
import org.talend.utils.xml.XmlUtils;
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.ErrorHandler;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.SAXParseException;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -50,6 +52,23 @@ public final class XMLFileUtil {
|
||||
public static Document loadDoc(InputStream stream) throws ParserConfigurationException, SAXException, IOException {
|
||||
try {
|
||||
DocumentBuilder db = DOCBUILDER_FACTORY.newDocumentBuilder();
|
||||
db.setErrorHandler(new ErrorHandler() {
|
||||
|
||||
@Override
|
||||
public void warning(SAXParseException exception) throws SAXException {
|
||||
throw exception;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatalError(SAXParseException exception) throws SAXException {
|
||||
throw exception;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(SAXParseException exception) throws SAXException {
|
||||
throw exception;
|
||||
}
|
||||
});
|
||||
return db.parse(stream);
|
||||
} finally {
|
||||
try {
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
package org.talend.commons.utils;
|
||||
|
||||
import java.security.SecureRandom;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.crypto.BadPaddingException;
|
||||
import javax.crypto.Cipher;
|
||||
@@ -34,6 +35,8 @@ public class PasswordEncryptUtil {
|
||||
|
||||
private static final SecureRandom SECURERANDOM = new SecureRandom();
|
||||
|
||||
private static final Pattern REG_ENCRYPTED_DATA = Pattern.compile("^enc\\:system\\.encryption\\.key\\.v\\d\\:\\p{Print}+");
|
||||
|
||||
private static SecretKey getSecretKey() throws Exception {
|
||||
if (key == null) {
|
||||
byte rawKeyData[] = StudioEncryption
|
||||
|
||||
@@ -145,7 +145,30 @@ public class DB2ForZosDataBaseMetadata extends PackageFakeDatabaseMetadata {
|
||||
*/
|
||||
@Override
|
||||
public ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException {
|
||||
return new DB2ForZosResultSet();
|
||||
ResultSet rs = super.getPrimaryKeys(catalog, schema, table);
|
||||
if (rs == null) {
|
||||
rs = new DB2ForZosResultSet();
|
||||
}
|
||||
return rs;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.talend.commons.utils.database.FakeDatabaseMetaData#getExportedKeys(java.lang.String, java.lang.String,
|
||||
* java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public ResultSet getExportedKeys(String catalog, String schema, String table) throws SQLException {
|
||||
ResultSet rs = super.getExportedKeys(catalog, schema, table);
|
||||
if (rs == null) {
|
||||
if (this.metaData != null) {
|
||||
rs = this.metaData.getExportedKeys(catalog, schema, table);
|
||||
} else {
|
||||
rs = new DB2ForZosResultSet();
|
||||
}
|
||||
}
|
||||
return rs;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -174,17 +197,6 @@ public class DB2ForZosDataBaseMetadata extends PackageFakeDatabaseMetadata {
|
||||
return tableResultSet;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.talend.commons.utils.database.FakeDatabaseMetaData#getExportedKeys(java.lang.String, java.lang.String,
|
||||
* java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public ResultSet getExportedKeys(String catalog, String schema, String table) throws SQLException {
|
||||
return new DB2ForZosResultSet();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
||||
@@ -24,6 +24,7 @@ import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Enumeration;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
@@ -31,6 +32,10 @@ import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.eclipse.core.internal.net.ProxyManager;
|
||||
import org.eclipse.core.net.proxy.IProxyData;
|
||||
import org.eclipse.core.net.proxy.IProxyService;
|
||||
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
|
||||
import org.eclipse.core.runtime.preferences.InstanceScope;
|
||||
import org.talend.commons.exception.CommonExceptionHandler;
|
||||
@@ -42,6 +47,8 @@ import org.talend.commons.runtime.utils.io.FileCopyUtils;
|
||||
*/
|
||||
public class NetworkUtil {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(NetworkUtil.class);
|
||||
|
||||
private static final String[] windowsCommand = { "ipconfig", "/all" }; //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
private static final String[] linuxCommand = { "/sbin/ifconfig", "-a" }; //$NON-NLS-1$ //$NON-NLS-2$
|
||||
@@ -72,6 +79,136 @@ public class NetworkUtil {
|
||||
|
||||
private static final String PROP_NETWORK_STATUS = "network.status"; //$NON-NLS-1$
|
||||
|
||||
private static final String SYSTEM_PROXY_ENABLED = "talend.studio.proxy.enableSystemProxyByDefault";
|
||||
|
||||
public static void applyProxyFromSystemProperties() throws Exception {
|
||||
if (!Boolean.valueOf(System.getProperty("talend.studio.proxy.applySystemProps", Boolean.FALSE.toString()))) {
|
||||
return;
|
||||
}
|
||||
final String passwordMask = "***";
|
||||
String httpProxyHost = System.getProperty("http.proxyHost");
|
||||
String httpProxyPort = System.getProperty("http.proxyPort");
|
||||
String httpUser = System.getProperty("http.proxyUser");
|
||||
String httpPassword = System.getProperty("http.proxyPassword");
|
||||
if (StringUtils.isNotBlank(httpPassword)) {
|
||||
System.setProperty("http.proxyPassword", passwordMask);
|
||||
}
|
||||
String httpNonProxyHosts = System.getProperty("http.nonProxyHosts");
|
||||
String httpsProxyHost = System.getProperty("https.proxyHost");
|
||||
String httpsProxyPort = System.getProperty("https.proxyPort");
|
||||
String httpsUser = System.getProperty("https.proxyUser");
|
||||
String httpsPassword = System.getProperty("https.proxyPassword");
|
||||
if (StringUtils.isNotBlank(httpsPassword)) {
|
||||
System.setProperty("https.proxyPassword", passwordMask);
|
||||
}
|
||||
String httpsNonProxyHosts = System.getProperty("https.nonProxyHosts");
|
||||
String socksProxyHost = System.getProperty("socksProxyHost");
|
||||
String socksProxyPort = System.getProperty("socksProxyPort");
|
||||
String socksProxyUser = System.getProperty("socksProxyUser");
|
||||
if (socksProxyUser == null) {
|
||||
socksProxyUser = System.getProperty("java.net.socks.username");
|
||||
}
|
||||
String socksProxyPassword = System.getProperty("socksProxyPassword");
|
||||
if (StringUtils.isNotBlank(socksProxyPassword)) {
|
||||
System.setProperty("socksProxyPassword", passwordMask);
|
||||
}
|
||||
if (socksProxyPassword == null) {
|
||||
socksProxyPassword = System.getProperty("java.net.socks.password");
|
||||
}
|
||||
IProxyService proxyService = ProxyManager.getProxyManager();
|
||||
boolean isHttpProxyEnabled = StringUtils.isNotBlank(httpProxyHost) && StringUtils.isNotBlank(httpProxyPort);
|
||||
boolean isHttpsProxyEnabled = StringUtils.isNotBlank(httpsProxyHost) && StringUtils.isNotBlank(httpsProxyPort);
|
||||
boolean isSocksProxyEnabled = StringUtils.isNotBlank(socksProxyHost) && StringUtils.isNotBlank(socksProxyPort);
|
||||
if (!isHttpProxyEnabled && !isHttpsProxyEnabled && !isSocksProxyEnabled) {
|
||||
proxyService
|
||||
.setSystemProxiesEnabled(Boolean.valueOf(System.getProperty(SYSTEM_PROXY_ENABLED, Boolean.TRUE.toString())));
|
||||
proxyService.setProxiesEnabled(false);
|
||||
LOGGER.info("No proxy specified, disabled.");
|
||||
} else {
|
||||
proxyService.setSystemProxiesEnabled(false);
|
||||
proxyService.setProxiesEnabled(true);
|
||||
List<IProxyData> proxies = new ArrayList<>();
|
||||
String initedProxyTypes = "";
|
||||
if (isHttpProxyEnabled) {
|
||||
try {
|
||||
IProxyData httpProxy = proxyService.getProxyData(IProxyData.HTTP_PROXY_TYPE);
|
||||
httpProxy.setHost(httpProxyHost);
|
||||
httpProxy.setPort(Integer.valueOf(httpProxyPort));
|
||||
if (StringUtils.isNotBlank(httpUser)) {
|
||||
httpProxy.setUserid(httpUser);
|
||||
if (httpPassword == null) {
|
||||
httpPassword = "";
|
||||
}
|
||||
httpProxy.setPassword(httpPassword);
|
||||
}
|
||||
proxies.add(httpProxy);
|
||||
initedProxyTypes += IProxyData.HTTP_PROXY_TYPE + " ";
|
||||
} catch (Throwable e) {
|
||||
LOGGER.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
if (isHttpsProxyEnabled) {
|
||||
try {
|
||||
IProxyData httpsProxy = proxyService.getProxyData(IProxyData.HTTPS_PROXY_TYPE);
|
||||
httpsProxy.setHost(httpsProxyHost);
|
||||
httpsProxy.setPort(Integer.valueOf(httpsProxyPort));
|
||||
if (StringUtils.isNotBlank(httpsUser)) {
|
||||
httpsProxy.setUserid(httpsUser);
|
||||
if (httpsPassword == null) {
|
||||
httpsPassword = "";
|
||||
}
|
||||
httpsProxy.setPassword(httpsPassword);
|
||||
}
|
||||
proxies.add(httpsProxy);
|
||||
initedProxyTypes += IProxyData.HTTPS_PROXY_TYPE + " ";
|
||||
} catch (Throwable e) {
|
||||
LOGGER.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
if (isSocksProxyEnabled) {
|
||||
try {
|
||||
IProxyData socksProxy = proxyService.getProxyData(IProxyData.SOCKS_PROXY_TYPE);
|
||||
socksProxy.setHost(socksProxyHost);
|
||||
socksProxy.setPort(Integer.valueOf(socksProxyPort));
|
||||
if (StringUtils.isNotBlank(socksProxyUser)) {
|
||||
socksProxy.setUserid(socksProxyUser);
|
||||
if (socksProxyPassword == null) {
|
||||
socksProxyPassword = "";
|
||||
}
|
||||
socksProxy.setPassword(socksProxyPassword);
|
||||
}
|
||||
proxies.add(socksProxy);
|
||||
initedProxyTypes += IProxyData.SOCKS_PROXY_TYPE;
|
||||
} catch (Throwable e) {
|
||||
LOGGER.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
proxyService.setProxyData(proxies.toArray(new IProxyData[0]));
|
||||
List<String> nonProxyHosts = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(httpNonProxyHosts)) {
|
||||
String[] split = httpNonProxyHosts.split("|");
|
||||
nonProxyHosts.addAll(Arrays.asList(split));
|
||||
}
|
||||
if (StringUtils.isNotBlank(httpsNonProxyHosts)) {
|
||||
String[] split = httpsNonProxyHosts.split("|");
|
||||
nonProxyHosts.addAll(Arrays.asList(split));
|
||||
}
|
||||
proxyService.setNonProxiedHosts(nonProxyHosts.toArray(new String[0]));
|
||||
|
||||
if (passwordMask.equals(System.getProperty("http.proxyPassword"))) {
|
||||
System.setProperty("http.proxyPassword", httpPassword);
|
||||
}
|
||||
if (passwordMask.equals(System.getProperty("https.proxyPassword"))) {
|
||||
System.setProperty("https.proxyPassword", httpsPassword);
|
||||
}
|
||||
if (passwordMask.equals(System.getProperty("socksProxyPassword"))) {
|
||||
System.setProperty("socksProxyPassword", socksProxyPassword);
|
||||
}
|
||||
|
||||
LOGGER.info("Succeed to init proxy: " + initedProxyTypes);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isNetworkValid() {
|
||||
return isNetworkValid(DEFAULT_TIMEOUT);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,8 @@ Require-Bundle: org.eclipse.core.runtime,
|
||||
org.talend.commons.runtime,
|
||||
org.talend.common.ui.runtime;visibility:=reexport,
|
||||
org.talend.libraries.ui;visibility:=reexport,
|
||||
org.eclipse.ui.workbench
|
||||
org.eclipse.ui.workbench,
|
||||
org.eclipse.jface.notifications
|
||||
Eclipse-LazyStart: true
|
||||
Bundle-Vendor: .Talend SA.
|
||||
Export-Package: org.talend.commons.ui.command,
|
||||
@@ -28,6 +29,7 @@ Export-Package: org.talend.commons.ui.command,
|
||||
org.talend.commons.ui.gmf.util,
|
||||
org.talend.commons.ui.html,
|
||||
org.talend.commons.ui.i18n,
|
||||
org.talend.commons.ui.nofitication,
|
||||
org.talend.commons.ui.swt.actions,
|
||||
org.talend.commons.ui.swt.advanced.composite,
|
||||
org.talend.commons.ui.swt.advanced.dataeditor,
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// 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.nofitication;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.jface.notifications.AbstractNotificationPopup;
|
||||
import org.eclipse.jface.window.Window;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
import org.eclipse.swt.graphics.Rectangle;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.swt.widgets.Monitor;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
public abstract class ArrangedNotificationPopup extends AbstractNotificationPopup {
|
||||
|
||||
protected static final int MAX_WIDTH = 400;
|
||||
|
||||
protected static final int MIN_HEIGHT = 100;
|
||||
|
||||
protected static final int PADDING_EDGE = 5;
|
||||
|
||||
private static NotificationManager manager;
|
||||
|
||||
public ArrangedNotificationPopup(Display display) {
|
||||
super(display);
|
||||
}
|
||||
|
||||
public ArrangedNotificationPopup(Display display, int style) {
|
||||
super(display, style);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createContentArea(Composite parent) {
|
||||
createControl(parent);
|
||||
afterCreate();
|
||||
}
|
||||
|
||||
protected abstract void createControl(Composite parent);
|
||||
|
||||
@Override
|
||||
protected Shell getParentShell() {
|
||||
return getNotificationManager().getParentShell();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initializeBounds() {
|
||||
Rectangle clArea = getPrimaryClientArea();
|
||||
Point initialSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
|
||||
int height = Math.max(initialSize.y, MIN_HEIGHT);
|
||||
int width = Math.min(initialSize.x, MAX_WIDTH);
|
||||
|
||||
Point size = new Point(width, height);
|
||||
getShell().setLocation(clArea.width + clArea.x - size.x - PADDING_EDGE, clArea.height + clArea.y - size.y - PADDING_EDGE);
|
||||
getShell().setSize(size);
|
||||
}
|
||||
|
||||
private Rectangle getPrimaryClientArea() {
|
||||
Shell parentShell = getParentShell();
|
||||
if (parentShell != null) {
|
||||
// calculate client area in display-relative coordinates
|
||||
// (i.e. without window border / decorations)
|
||||
Rectangle bounds = parentShell.getBounds();
|
||||
Rectangle trim = parentShell.computeTrim(0, 0, 0, 0);
|
||||
List<Window> toasts = getNotificationManager().getWindows();
|
||||
Rectangle rect = new Rectangle(bounds.x - trim.x, bounds.y - trim.y, bounds.width - trim.width,
|
||||
bounds.height - trim.height);
|
||||
if (!toasts.isEmpty()) {
|
||||
int index = 0;
|
||||
if (toasts.contains(this)) {
|
||||
// parent shell resize or move
|
||||
index = toasts.indexOf(this);
|
||||
if (index == 0) {
|
||||
// return parent shell rectangle if it's the first one at bottom
|
||||
return rect;
|
||||
}
|
||||
// the one under current toast
|
||||
index -= 1;
|
||||
} else {
|
||||
// toast creation
|
||||
// the one on the top
|
||||
index = toasts.size() - 1;
|
||||
}
|
||||
Rectangle toastRect = toasts.get(index).getShell().getBounds();
|
||||
rect = new Rectangle(rect.x, rect.y, rect.width, toastRect.y - rect.y);
|
||||
}
|
||||
return rect;
|
||||
}
|
||||
// else display on primary monitor
|
||||
Monitor primaryMonitor = this.getShell().getDisplay().getPrimaryMonitor();
|
||||
return (primaryMonitor != null) ? primaryMonitor.getClientArea() : this.getShell().getDisplay().getClientArea();
|
||||
}
|
||||
|
||||
protected void afterCreate() {
|
||||
//
|
||||
}
|
||||
|
||||
@Override
|
||||
public int open() {
|
||||
int open = super.open();
|
||||
// add after open
|
||||
getNotificationManager().add(this);
|
||||
return open;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean close() {
|
||||
boolean close = super.close();
|
||||
getNotificationManager().remove(this);
|
||||
getNotificationManager().refresh();
|
||||
return close;
|
||||
}
|
||||
|
||||
private NotificationManager getNotificationManager() {
|
||||
if (manager == null) {
|
||||
manager = NotificationManager.getInstance();
|
||||
}
|
||||
return manager;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2023 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.nofitication;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.eclipse.jface.window.Window;
|
||||
import org.eclipse.jface.window.WindowManager;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.widgets.Event;
|
||||
import org.eclipse.swt.widgets.Listener;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
|
||||
public class NotificationManager implements Listener {
|
||||
|
||||
private static NotificationManager notificationManager;
|
||||
|
||||
private WindowManager windowManager = new WindowManager();
|
||||
|
||||
private NotificationManager() {
|
||||
Shell shell = getParentShell();
|
||||
if (shell != null) {
|
||||
shell.addListener(SWT.Resize, this);
|
||||
shell.addListener(SWT.Move, this);
|
||||
}
|
||||
}
|
||||
|
||||
public static NotificationManager getInstance() {
|
||||
if (notificationManager == null) {
|
||||
notificationManager = new NotificationManager();
|
||||
}
|
||||
return notificationManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleEvent(Event event) {
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void refresh() {
|
||||
Stream.of(windowManager.getWindows()).map(ArrangedNotificationPopup.class::cast)
|
||||
.forEach(ArrangedNotificationPopup::initializeBounds);
|
||||
}
|
||||
|
||||
public List<Window> getWindows() {
|
||||
return Stream.of(windowManager.getWindows()).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public void add(Window window) {
|
||||
windowManager.add(window);
|
||||
}
|
||||
|
||||
public void remove(Window window) {
|
||||
windowManager.remove(window);
|
||||
}
|
||||
|
||||
public Shell getParentShell() {
|
||||
Shell shell = null;
|
||||
if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) {
|
||||
shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
|
||||
if (shell == null) {
|
||||
shell = PlatformUI.getWorkbench().getDisplay().getActiveShell();
|
||||
}
|
||||
}
|
||||
return shell;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -130,11 +130,10 @@ public abstract class ExportPushButtonForExtendedTable extends ExportPushButton
|
||||
AbstractExtendedTableViewer extendedTableViewer = (AbstractExtendedTableViewer) extendedControlViewer;
|
||||
ExtendedTableModel extendedTableModel = extendedTableViewer.getExtendedTableModel();
|
||||
boolean enabled = false;
|
||||
if (extendedTableModel != null && extendedTableModel.isDataRegistered()
|
||||
&& extendedTableModel.getBeansList().size() > 0) {
|
||||
if (extendedTableModel != null && extendedTableModel.isDataRegistered() && extendedTableModel.getBeansList().size() > 0) {
|
||||
enabled = true;
|
||||
}
|
||||
return super.getEnabledState() && enabled;
|
||||
return extendedTableModel != null || enabled;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.talend.commons.ui.runtime.image.EImage;
|
||||
import org.talend.commons.ui.runtime.image.ImageProvider;
|
||||
import org.talend.commons.ui.swt.advanced.dataeditor.control.ExtendedPushButton;
|
||||
import org.talend.commons.ui.swt.extended.table.AbstractExtendedTableViewer;
|
||||
import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
|
||||
|
||||
/**
|
||||
* DOC Administrator class global comment. Detailled comment <br/>
|
||||
@@ -33,4 +34,11 @@ public abstract class SaveAsGenericSchemaPushButton extends ExtendedPushButton {
|
||||
|
||||
@Override
|
||||
protected abstract Command getCommandToExecute();
|
||||
|
||||
@Override
|
||||
public boolean getEnabledState() {
|
||||
AbstractExtendedTableViewer extendedTableViewer = (AbstractExtendedTableViewer) extendedControlViewer;
|
||||
ExtendedTableModel extendedTableModel = extendedTableViewer.getExtendedTableModel();
|
||||
return extendedTableModel != null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import java.util.List;
|
||||
|
||||
import org.eclipse.gef.commands.Command;
|
||||
import org.talend.commons.ui.runtime.i18n.Messages;
|
||||
import org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorNotModifiable;
|
||||
import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
|
||||
|
||||
/**
|
||||
@@ -88,6 +89,11 @@ public class ExtendedTableAddCommand extends Command implements IExtendedTableCo
|
||||
// }
|
||||
|
||||
extendedTable.addAll(indexStartAdd, beansToAdd);
|
||||
// when not lazy load need to do refresh to refresh the row number
|
||||
if (!TableViewerCreatorNotModifiable.getRecommandLazyLoad()
|
||||
&& !TableViewerCreatorNotModifiable.isLazyLoadingEnabled()) {
|
||||
extendedTable.getTableViewer().refresh();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ public abstract class ExtendedTableCaseCommand extends Command implements IExten
|
||||
@Override
|
||||
public void execute() {
|
||||
convertCase(extendedTable, beansToCovertCase, selectionIndices, isUpperCase);
|
||||
|
||||
extendedTable.getTableViewer().refresh();
|
||||
}
|
||||
|
||||
public abstract void convertCase(ExtendedTableModel extendedTable, List copiedObjectsList, int[] selectionIndices, boolean isUpperCase);
|
||||
|
||||
@@ -17,6 +17,7 @@ import java.util.List;
|
||||
|
||||
import org.eclipse.gef.commands.Command;
|
||||
import org.talend.commons.ui.runtime.i18n.Messages;
|
||||
import org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorNotModifiable;
|
||||
import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
|
||||
import org.talend.commons.ui.utils.SimpleClipboard;
|
||||
import org.talend.commons.utils.data.list.UniqueStringGenerator;
|
||||
@@ -65,6 +66,11 @@ public abstract class ExtendedTablePasteCommand extends Command implements IExte
|
||||
List list = new ArrayList((List) data);
|
||||
list = createPastableBeansList(extendedTable, list);
|
||||
extendedTable.addAll(indexStart, list);
|
||||
// when not lazy load need to do refresh to refresh the row number
|
||||
if (!TableViewerCreatorNotModifiable.getRecommandLazyLoad()
|
||||
&& !TableViewerCreatorNotModifiable.isLazyLoadingEnabled()) {
|
||||
extendedTable.getTableViewer().refresh();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ package org.talend.commons.ui.swt.advanced.dataeditor.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.gef.commands.Command;
|
||||
import org.talend.commons.ui.runtime.i18n.Messages;
|
||||
import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
|
||||
@@ -54,7 +55,7 @@ public abstract class ExtendedTableQuoteCommand extends Command implements IExte
|
||||
@Override
|
||||
public void execute() {
|
||||
toQuote(extendedTable, beansToQuote, selectionIndices, quote, isAddingQuote);
|
||||
|
||||
extendedTable.getTableViewer().refresh();
|
||||
}
|
||||
|
||||
public abstract void toQuote(ExtendedTableModel extendedTable, List copiedObjectsList, int[] selectionIndices, String quote, boolean isAddingQuote);
|
||||
|
||||
@@ -20,6 +20,7 @@ import java.util.List;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.eclipse.gef.commands.Command;
|
||||
import org.talend.commons.ui.runtime.i18n.Messages;
|
||||
import org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorNotModifiable;
|
||||
import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
|
||||
|
||||
/**
|
||||
@@ -130,6 +131,11 @@ public class ExtendedTableRemoveCommand extends Command implements IExtendedTabl
|
||||
removedBeansIndices.add(index);
|
||||
}
|
||||
}
|
||||
// when not lazy load need to do refresh to refresh the row number
|
||||
if (!TableViewerCreatorNotModifiable.getRecommandLazyLoad()
|
||||
&& !TableViewerCreatorNotModifiable.isLazyLoadingEnabled()) {
|
||||
extendedTable.getTableViewer().refresh();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@ import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.preference.PreferenceConverter;
|
||||
import org.eclipse.jface.resource.StringConverter;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.graphics.Color;
|
||||
@@ -94,8 +93,6 @@ public class ColorManager {
|
||||
public static final String BOLD_SUFFIX = "Bold"; //$NON-NLS-1$
|
||||
|
||||
private Map<String, Color> colorMap;
|
||||
|
||||
private static Map<String, Color> THEME_COLOR_MAP = new HashMap<String, Color>();
|
||||
|
||||
private IPreferenceStore store;
|
||||
|
||||
@@ -119,12 +116,9 @@ public class ColorManager {
|
||||
}
|
||||
|
||||
private static Color getThemeColor(String colorName) {
|
||||
if (!THEME_COLOR_MAP.containsKey(colorName)) {
|
||||
Color c = ITalendThemeService.getColor(colorName)
|
||||
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
|
||||
THEME_COLOR_MAP.put(colorName, c);
|
||||
}
|
||||
return THEME_COLOR_MAP.get(colorName);
|
||||
Color c = ITalendThemeService.getColor(colorName)
|
||||
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
|
||||
return c;
|
||||
}
|
||||
|
||||
public void dispose() {
|
||||
@@ -135,7 +129,6 @@ public class ColorManager {
|
||||
color.dispose();
|
||||
}
|
||||
colorMap = null;
|
||||
THEME_COLOR_MAP.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,178 +1,178 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2021 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.utils.loader;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
|
||||
|
||||
/**
|
||||
* ggu class global comment. Detailled comment
|
||||
*/
|
||||
public class MyURLClassLoader extends URLClassLoader {
|
||||
|
||||
public static interface IAssignableClassFilter {
|
||||
|
||||
public boolean filter(URL[] urls);
|
||||
|
||||
public boolean filter(Class clazz);
|
||||
|
||||
public boolean filter(String clazzName);
|
||||
}
|
||||
|
||||
private static Logger log = Logger.getLogger(MyURLClassLoader.class);
|
||||
|
||||
private Map pclasses = new HashMap();
|
||||
|
||||
public MyURLClassLoader(String fileName) throws IOException {
|
||||
this(new File(fileName).toURL());
|
||||
}
|
||||
|
||||
public MyURLClassLoader(URL url) {
|
||||
this(new URL[] { url });
|
||||
}
|
||||
|
||||
public MyURLClassLoader(URL[] urls) {
|
||||
super(urls, Class.class.getClassLoader());
|
||||
}
|
||||
|
||||
public MyURLClassLoader(URL[] urls, ClassLoader parentLoader) {
|
||||
super(urls, parentLoader);
|
||||
}
|
||||
|
||||
public Class[] getAssignableClasses(Class type) throws IOException {
|
||||
return getAssignableClasses(type, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public Class[] getAssignableClasses(Class type, IAssignableClassFilter filter) throws IOException {
|
||||
List classes = new ArrayList();
|
||||
URL[] urls = getURLs();
|
||||
for (URL url : urls) {
|
||||
if (filter != null && filter.filter(new URL[] { url })) {
|
||||
continue;
|
||||
}
|
||||
File file = new File(url.getFile());
|
||||
if (!file.isDirectory() && file.exists() && file.canRead()) {
|
||||
ZipFile zipFile = null;
|
||||
try {
|
||||
zipFile = new ZipFile(file);
|
||||
} catch (IOException ex) {
|
||||
ExceptionHandler.process(ex);
|
||||
}
|
||||
Enumeration<? extends ZipEntry> entries = zipFile.entries();
|
||||
while (entries.hasMoreElements()) {
|
||||
Class cls = null;
|
||||
String entryName = entries.nextElement().getName();
|
||||
String className = changeFileNameToClassName(entryName);
|
||||
if (className != null) {
|
||||
if (filter != null && filter.filter(className)) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
cls = loadClass(className);
|
||||
} catch (Throwable th) {
|
||||
log.warn(th);
|
||||
}
|
||||
if (cls != null) {
|
||||
if (filter != null && filter.filter(cls)) {
|
||||
continue;
|
||||
}
|
||||
if (isAssignableType(type, cls)) {
|
||||
classes.add(cls);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return (Class[]) classes.toArray(new Class[classes.size()]);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private boolean isAssignableType(Class type, Class current) {
|
||||
if (type == null || current == null || current.equals(Object.class)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (type.isAssignableFrom(current)) {
|
||||
return true;
|
||||
} else
|
||||
// sometimes can not assign the java generic, use the class url
|
||||
if (type.getName() != null && type.getName().equals(current.getName())) {
|
||||
return true;
|
||||
} else {
|
||||
//
|
||||
if (type.isInterface()) {//
|
||||
for (Class interfaceClazz : current.getInterfaces()) {
|
||||
if (interfaceClazz.equals(type)) {
|
||||
return true;
|
||||
} else {
|
||||
if (isAssignableType(type, interfaceClazz)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isAssignableType(type, current.getSuperclass())) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return isAssignableType(type, current.getSuperclass());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see java.net.URLClassLoader#findClass(java.lang.String)
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected synchronized Class findCslass(String className) throws ClassNotFoundException {
|
||||
Class cls = (Class) pclasses.get(className);
|
||||
if (cls == null) {
|
||||
cls = super.findClass(className);
|
||||
pclasses.put(className, cls);
|
||||
}
|
||||
return cls;
|
||||
}
|
||||
|
||||
public static String changeFileNameToClassName(String name) {
|
||||
if (name == null) {
|
||||
throw new IllegalArgumentException("File Name == null");
|
||||
}
|
||||
String className = null;
|
||||
if (name.toLowerCase().endsWith(".class")) {
|
||||
className = name.replace('/', '.');
|
||||
className = className.replace('\\', '.');
|
||||
className = className.substring(0, className.length() - 6);
|
||||
}
|
||||
return className;
|
||||
}
|
||||
|
||||
protected void classHasBeenLoaded(Class cls) {
|
||||
}
|
||||
|
||||
}
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2021 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.utils.loader;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
|
||||
|
||||
/**
|
||||
* ggu class global comment. Detailled comment
|
||||
*/
|
||||
public class MyURLClassLoader extends URLClassLoader {
|
||||
|
||||
public static interface IAssignableClassFilter {
|
||||
|
||||
public boolean filter(URL[] urls);
|
||||
|
||||
public boolean filter(Class clazz);
|
||||
|
||||
public boolean filter(String clazzName);
|
||||
}
|
||||
|
||||
private static Logger log = Logger.getLogger(MyURLClassLoader.class);
|
||||
|
||||
private Map pclasses = new HashMap();
|
||||
|
||||
public MyURLClassLoader(String fileName) throws IOException {
|
||||
this(new File(fileName).toURI().toURL());
|
||||
}
|
||||
|
||||
public MyURLClassLoader(URL url) {
|
||||
this(new URL[] { url });
|
||||
}
|
||||
|
||||
public MyURLClassLoader(URL[] urls) {
|
||||
super(urls, Class.class.getClassLoader());
|
||||
}
|
||||
|
||||
public MyURLClassLoader(URL[] urls, ClassLoader parentLoader) {
|
||||
super(urls, parentLoader);
|
||||
}
|
||||
|
||||
public Class[] getAssignableClasses(Class type) throws IOException {
|
||||
return getAssignableClasses(type, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public Class[] getAssignableClasses(Class type, IAssignableClassFilter filter) throws IOException {
|
||||
List classes = new ArrayList();
|
||||
URL[] urls = getURLs();
|
||||
for (URL url : urls) {
|
||||
if (filter != null && filter.filter(new URL[] { url })) {
|
||||
continue;
|
||||
}
|
||||
File file = new File(url.getFile());
|
||||
if (!file.isDirectory() && file.exists() && file.canRead()) {
|
||||
ZipFile zipFile = null;
|
||||
try {
|
||||
zipFile = new ZipFile(file);
|
||||
} catch (IOException ex) {
|
||||
ExceptionHandler.process(ex);
|
||||
}
|
||||
Enumeration<? extends ZipEntry> entries = zipFile.entries();
|
||||
while (entries.hasMoreElements()) {
|
||||
Class cls = null;
|
||||
String entryName = entries.nextElement().getName();
|
||||
String className = changeFileNameToClassName(entryName);
|
||||
if (className != null) {
|
||||
if (filter != null && filter.filter(className)) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
cls = loadClass(className);
|
||||
} catch (Throwable th) {
|
||||
log.warn(th);
|
||||
}
|
||||
if (cls != null) {
|
||||
if (filter != null && filter.filter(cls)) {
|
||||
continue;
|
||||
}
|
||||
if (isAssignableType(type, cls)) {
|
||||
classes.add(cls);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return (Class[]) classes.toArray(new Class[classes.size()]);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private boolean isAssignableType(Class type, Class current) {
|
||||
if (type == null || current == null || current.equals(Object.class)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (type.isAssignableFrom(current)) {
|
||||
return true;
|
||||
} else
|
||||
// sometimes can not assign the java generic, use the class url
|
||||
if (type.getName() != null && type.getName().equals(current.getName())) {
|
||||
return true;
|
||||
} else {
|
||||
//
|
||||
if (type.isInterface()) {//
|
||||
for (Class interfaceClazz : current.getInterfaces()) {
|
||||
if (interfaceClazz.equals(type)) {
|
||||
return true;
|
||||
} else {
|
||||
if (isAssignableType(type, interfaceClazz)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isAssignableType(type, current.getSuperclass())) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return isAssignableType(type, current.getSuperclass());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see java.net.URLClassLoader#findClass(java.lang.String)
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected synchronized Class findCslass(String className) throws ClassNotFoundException {
|
||||
Class cls = (Class) pclasses.get(className);
|
||||
if (cls == null) {
|
||||
cls = super.findClass(className);
|
||||
pclasses.put(className, cls);
|
||||
}
|
||||
return cls;
|
||||
}
|
||||
|
||||
public static String changeFileNameToClassName(String name) {
|
||||
if (name == null) {
|
||||
throw new IllegalArgumentException("File Name == null");
|
||||
}
|
||||
String className = null;
|
||||
if (name.toLowerCase().endsWith(".class")) {
|
||||
className = name.replace('/', '.');
|
||||
className = className.replace('\\', '.');
|
||||
className = className.substring(0, className.length() - 6);
|
||||
}
|
||||
return className;
|
||||
}
|
||||
|
||||
protected void classHasBeenLoaded(Class cls) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -187,10 +187,10 @@
|
||||
<RepositoryComponent
|
||||
name="GENERAL_JDBC"
|
||||
withSchema="true"
|
||||
input="tJDBCInput"
|
||||
output="tJDBCOutput">
|
||||
input="JDBCInput"
|
||||
output="JDBCOutput">
|
||||
<Item
|
||||
clazz="org.talend.core.model.properties.DatabaseConnectionItem">
|
||||
clazz="org.talend.core.model.properties.TacokitDatabaseConnectionItem">
|
||||
</Item>
|
||||
<DBType
|
||||
type="GENERAL_JDBC">
|
||||
@@ -420,18 +420,7 @@
|
||||
type="ORACLESN">
|
||||
</DBType>
|
||||
</RepositoryComponent>
|
||||
<RepositoryComponent
|
||||
name="PLUSPSQL"
|
||||
withSchema="true"
|
||||
input="tPostgresPlusInput"
|
||||
output="tPostgresPlusOutput">
|
||||
<Item
|
||||
clazz="org.talend.core.model.properties.DatabaseConnectionItem">
|
||||
</Item>
|
||||
<DBType
|
||||
type="PLUSPSQL">
|
||||
</DBType>
|
||||
</RepositoryComponent>
|
||||
|
||||
<RepositoryComponent
|
||||
name="PSQL"
|
||||
withSchema="true"
|
||||
|
||||
@@ -127,14 +127,13 @@ JobletReferenceDialog.NodeTotalsTip=The totals of node reference
|
||||
JobletReferenceDialog.project=Project
|
||||
JobletReferenceDialog.ReferenceJob=Reference Job
|
||||
JobletReferenceDialog.Title=Delete the joblet failure
|
||||
ContextReferenceDialog.Title=Delete Context Group
|
||||
ContextReferenceDialog.DeleteContext.Title=Delete Context
|
||||
ContextReferenceDialog.Recycle=in Recycle Bin
|
||||
ContextReferenceDialog.ReferenceJob=Reference Objects
|
||||
ContextReferenceDialog.Types=Type
|
||||
ContextReferenceDialog.NodeTypeTip=The type of node reference
|
||||
ContextReferenceDialog.Messages=Context({0} {1}) is referenced from\:\n
|
||||
ContextReferenceDialog.kindMessages=The context group of {0} {1} is referred by the following list, if you really want to delete it, the context group is used in job will be changed to built-in when job is opened again. Would you still like to delete it?
|
||||
ContextReferenceDialog.kindMessages1=The context group of {0} {1} is referred by the following list, Would you still like to delete it?
|
||||
ContextReferenceDialog.kindMessages2=The context of {0} {1} is referred by the following list, would you still like to delete it?
|
||||
CopyToGenericSchemaHelper.cannotGenarateItem=Cannot generate pasted item label.
|
||||
ProxyRepositoryFactory.ReplaceJobHazardDescription=\nDependence on the original connection may be lost\!
|
||||
ItemReferenceDialog.title=Items which cannot be deleted
|
||||
@@ -175,6 +174,7 @@ ProjectRepositoryNode.sapBWDataStoreObject=SAP DSO
|
||||
ProjectRepositoryNode.sapBWInfoCube=SAP InfoCube
|
||||
ProjectRepositoryNode.sapBWInfoObject=SAP InfoObject
|
||||
ProjectRepositoryNode.sapContentExtractor=SAP BI Content Extractor
|
||||
ProjectRepositoryNode.sapCDSView=SAP CDS View
|
||||
RepositoryDropAdapter_copyingItems=Copying items...
|
||||
RepositoryDropAdapter_errorMsg=This directory contains the locked item,it can not be moved now
|
||||
RepositoryDropAdapter_lockedByOthers=This item is locked by other users, it can not be moved now.
|
||||
|
||||
@@ -127,14 +127,13 @@ JobletReferenceDialog.NodeTotalsTip=Total des r\u00E9f\u00E9rences des noeuds
|
||||
JobletReferenceDialog.project=Projet
|
||||
JobletReferenceDialog.ReferenceJob=Job de r\u00E9f\u00E9rence
|
||||
JobletReferenceDialog.Title=Supprimer l'\u00E9chec du Joblet
|
||||
ContextReferenceDialog.Title=Supprimer le groupe de contextes
|
||||
ContextReferenceDialog.DeleteContext.Title=Supprimer le contexte
|
||||
ContextReferenceDialog.Recycle=dans la Corbeille
|
||||
ContextReferenceDialog.ReferenceJob=Objets de r\u00E9f\u00E9rence
|
||||
ContextReferenceDialog.Types=Type
|
||||
ContextReferenceDialog.NodeTypeTip=Type de r\u00E9f\u00E9rences du n\u0153ud
|
||||
ContextReferenceDialog.Messages=Le contexte({0} {1}) est r\u00E9f\u00E9renc\u00E9 dans :\n
|
||||
ContextReferenceDialog.kindMessages=Le groupe de contextes de {0} {1} est r\u00E9f\u00E9renc\u00E9 par la liste suivante. Si vous souhaitez le supprimer, le groupe de contextes du Job sera chang\u00E9 en Built-In \u00E0 la prochaine ouverture du Job. Le supprimer malgr\u00E9 tout ?
|
||||
ContextReferenceDialog.kindMessages1=Le groupe de contextes {0} {1} est r\u00E9f\u00E9renc\u00E9 par la liste suivante. Le supprimer malgr\u00E9 tout ?
|
||||
ContextReferenceDialog.kindMessages2=Les \u00E9l\u00E9ments de la liste suivante font r\u00E9f\u00E9rence au contexte de {0} {1} . Souhaitez-vous quand m\u00EAme le supprimer\u00A0?
|
||||
CopyToGenericSchemaHelper.cannotGenarateItem=Impossible de g\u00E9n\u00E9rer le libell\u00E9 de l'\u00E9l\u00E9ment coll\u00E9.
|
||||
ProxyRepositoryFactory.ReplaceJobHazardDescription=\nLes d\u00E9pendances envers la connexion originale peuvent \u00EAtre perdues.
|
||||
ItemReferenceDialog.title=\u00C9lements ne pouvant \u00EAtre supprim\u00E9s
|
||||
@@ -156,6 +155,7 @@ ProjectRepositoryNode.invalidItem=\u00C9l\u00E9ment invalide
|
||||
ProjectRepositoryNode.columns=Colonnes
|
||||
ProjectRepositoryNode.validationRules=R\u00E8gles de validation
|
||||
ProjectRepositoryNode.cdcFoundation=Fondation CDC
|
||||
ProjectRepositoryNode.cdcFoundation.deprecated=Fondation CDC (d\u00E9pr\u00E9ci\u00E9)
|
||||
ProjectRepositoryNode.genericSchema=Sch\u00E9mas g\u00E9n\u00E9riques
|
||||
ProjectRepositoryNode.queries=Requ\u00EAtes
|
||||
ProjectRepositoryNode.synonymSchemas=Sch\u00E9mas synonymes
|
||||
@@ -175,6 +175,7 @@ ProjectRepositoryNode.sapBWDataStoreObject=Objet Data Store SAP
|
||||
ProjectRepositoryNode.sapBWInfoCube=InfoCube SAP
|
||||
ProjectRepositoryNode.sapBWInfoObject=InfoObject SAP
|
||||
ProjectRepositoryNode.sapContentExtractor=Extracteur SAP BI Content
|
||||
ProjectRepositoryNode.sapCDSView=Vue SAP CDS
|
||||
RepositoryDropAdapter_copyingItems=Copie des \u00E9l\u00E9ments...
|
||||
RepositoryDropAdapter_errorMsg=Ce r\u00E9pertoire contient l'\u00E9l\u00E9ment verrouill\u00E9, il ne peut \u00EAtre d\u00E9plac\u00E9
|
||||
RepositoryDropAdapter_lockedByOthers=Cet \u00E9l\u00E9ment est verrouill\u00E9 par d'autres utilisateurs, impossible de le d\u00E9placer.
|
||||
|
||||
@@ -127,14 +127,13 @@ JobletReferenceDialog.NodeTotalsTip=\u30CE\u30FC\u30C9\u53C2\u7167\u306E\u5408\u
|
||||
JobletReferenceDialog.project=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8
|
||||
JobletReferenceDialog.ReferenceJob=\u53C2\u7167\u30B8\u30E7\u30D6
|
||||
JobletReferenceDialog.Title=\u30B8\u30E7\u30D6\u30EC\u30C3\u30C8\u306E\u5931\u6557\u3092\u524A\u9664
|
||||
ContextReferenceDialog.Title=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u3092\u524A\u9664
|
||||
ContextReferenceDialog.DeleteContext.Title=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306E\u524A\u9664
|
||||
ContextReferenceDialog.Recycle=\u3054\u307F\u7BB1\u5185
|
||||
ContextReferenceDialog.ReferenceJob=\u53C2\u7167\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8
|
||||
ContextReferenceDialog.Types=\u30BF\u30A4\u30D7
|
||||
ContextReferenceDialog.NodeTypeTip=\u30CE\u30FC\u30C9\u53C2\u7167\u306E\u30BF\u30A4\u30D7
|
||||
ContextReferenceDialog.Messages=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8({0} {1})\u306E\u53C2\u7167\u5143:\n
|
||||
ContextReferenceDialog.kindMessages={0} {1}\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u306F\u6B21\u306E\u30EA\u30B9\u30C8\u306B\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u524A\u9664\u3057\u305F\u3044\u5834\u5408\u306F\u3001\u30B8\u30E7\u30D6\u304C\u3082\u3046\u4E00\u5EA6\u958B\u304B\u308C\u305F\u6642\u306B\u3001\u30B8\u30E7\u30D6\u3067\u4F7F\u7528\u3055\u308C\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u306F\u7D44\u307F\u8FBC\u307F\u306B\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\u524A\u9664\u3057\u307E\u3059\u304B?
|
||||
ContextReferenceDialog.kindMessages1={0} {1}\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u304C\u4EE5\u4E0B\u306E\u30EA\u30B9\u30C8\u306B\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u524A\u9664\u3057\u307E\u3059\u304B?
|
||||
ContextReferenceDialog.kindMessages2={0}{1}\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u6B21\u306E\u30EA\u30B9\u30C8\u306B\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u524A\u9664\u3057\u307E\u3059\u304B?
|
||||
CopyToGenericSchemaHelper.cannotGenarateItem=\u8CBC\u4ED8\u3051\u3055\u308C\u305F\u30A2\u30A4\u30C6\u30E0\u30E9\u30D9\u30EB\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093\u3002
|
||||
ProxyRepositoryFactory.ReplaceJobHazardDescription=\n\u5143\u306E\u63A5\u7D9A\u3078\u306E\u4F9D\u5B58\u304C\u5931\u308F\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059!
|
||||
ItemReferenceDialog.title=\u524A\u9664\u3067\u304D\u306A\u3044\u30A2\u30A4\u30C6\u30E0
|
||||
@@ -175,6 +174,7 @@ ProjectRepositoryNode.sapBWDataStoreObject=SAP DSO
|
||||
ProjectRepositoryNode.sapBWInfoCube=SAP InfoCube
|
||||
ProjectRepositoryNode.sapBWInfoObject=SAP InfoObject
|
||||
ProjectRepositoryNode.sapContentExtractor=SAP BI\u30B3\u30F3\u30C6\u30F3\u30C4\u30A8\u30AF\u30B9\u30C8\u30E9\u30AF\u30BF\u30FC
|
||||
ProjectRepositoryNode.sapCDSView=SAP CDS\u30D3\u30E5\u30FC
|
||||
RepositoryDropAdapter_copyingItems=\u30A2\u30A4\u30C6\u30E0\u3092\u30B3\u30D4\u30FC\u4E2D...
|
||||
RepositoryDropAdapter_errorMsg=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30FC\u306B\u30ED\u30C3\u30AF\u3055\u308C\u305F\u30A2\u30A4\u30C6\u30E0\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u73FE\u5728\u3001\u79FB\u52D5\u3067\u304D\u307E\u305B\u3093,
|
||||
RepositoryDropAdapter_lockedByOthers=\u3053\u306E\u30A2\u30A4\u30C6\u30E0\u304C\u4ED6\u306E\u30E6\u30FC\u30B6\u30FC\u306B\u3088\u3063\u3066\u30ED\u30C3\u30AF\u3055\u308C\u307E\u3057\u305F\u3002\u73FE\u5728\u3001\u79FB\u52D5\u3067\u304D\u307E\u305B\u3093\u3002
|
||||
|
||||
@@ -127,14 +127,13 @@ JobletReferenceDialog.NodeTotalsTip=\u8282\u70B9\u5F15\u7528\u603B\u6570
|
||||
JobletReferenceDialog.project=\u5DE5\u7A0B
|
||||
JobletReferenceDialog.ReferenceJob=\u5F15\u7528\u4F5C\u4E1A
|
||||
JobletReferenceDialog.Title=\u5220\u9664\u5C0F\u4F5C\u4E1A\u5931\u8D25
|
||||
ContextReferenceDialog.Title=\u5220\u9664\u73AF\u5883\u7EC4
|
||||
ContextReferenceDialog.DeleteContext.Title=\u5220\u9664\u4E0A\u4E0B\u6587
|
||||
ContextReferenceDialog.Recycle=\u5728\u56DE\u6536\u7AD9
|
||||
ContextReferenceDialog.ReferenceJob=\u5F15\u7528\u5BF9\u8C61
|
||||
ContextReferenceDialog.Types=\u7C7B\u578B
|
||||
ContextReferenceDialog.NodeTypeTip=\u8282\u70B9\u5F15\u7528\u7684\u7C7B\u578B
|
||||
ContextReferenceDialog.Messages=\u4E0A\u4E0B\u6587 ({0} {1}) \u5F15\u7528\u81EA\uFF1A\n
|
||||
ContextReferenceDialog.kindMessages={0} {1} \u7684\u4E0A\u4E0B\u6587\u7EC4\u88AB\u4EE5\u4E0B\u5217\u8868\u5F15\u7528\uFF0C\u5982\u679C\u786E\u5B9E\u60F3\u8981\u5C06\u5176\u5220\u9664\uFF0C\u518D\u6B21\u6253\u5F00\u4F5C\u4E1A\u65F6\uFF0C\u4F5C\u4E1A\u4E2D\u6240\u7528\u7684\u4E0A\u4E0B\u6587\u7EC4\u5C06\u6539\u4E3A\u5185\u7F6E\u3002\u662F\u5426\u4ECD\u60F3\u5C06\u5176\u5220\u9664\uFF1F
|
||||
ContextReferenceDialog.kindMessages1={0} {1} \u7684\u4E0A\u4E0B\u6587\u7EC4\u88AB\u4EE5\u4E0B\u5217\u8868\u5F15\u7528\uFF0C\u662F\u5426\u4ECD\u60F3\u5C06\u5176\u5220\u9664\uFF1F
|
||||
ContextReferenceDialog.kindMessages2={0} {1} \u7684\u4E0A\u4E0B\u6587\u7EC4\u4EE5\u4E0B\u5217\u8868\u5F15\u7528\uFF0C\u662F\u5426\u4ECD\u60F3\u5C06\u5176\u5220\u9664\uFF1F
|
||||
CopyToGenericSchemaHelper.cannotGenarateItem=\u65E0\u6CD5\u751F\u6210\u7C98\u8D34\u9879\u76EE\u6807\u7B7E\u3002
|
||||
ProxyRepositoryFactory.ReplaceJobHazardDescription=\n\u5BF9\u539F\u59CB\u8FDE\u63A5\u7684\u4F9D\u8D56\u53EF\u80FD\u4F1A\u4E22\u5931\uFF01
|
||||
ItemReferenceDialog.title=\u65E0\u6CD5\u5220\u9664\u7684\u9879\u76EE
|
||||
@@ -156,6 +155,7 @@ ProjectRepositoryNode.invalidItem=\u65E0\u6548\u9879\u76EE
|
||||
ProjectRepositoryNode.columns=\u5217
|
||||
ProjectRepositoryNode.validationRules=\u9A8C\u8BC1\u89C4\u5219
|
||||
ProjectRepositoryNode.cdcFoundation=CDC Foundation
|
||||
ProjectRepositoryNode.cdcFoundation.deprecated=CDC Foundation (\u5DF2\u5F03\u7528)
|
||||
ProjectRepositoryNode.genericSchema=\u901A\u7528 schema
|
||||
ProjectRepositoryNode.queries=\u67E5\u8BE2
|
||||
ProjectRepositoryNode.synonymSchemas=\u540C\u4E49\u5B57 schema
|
||||
@@ -175,6 +175,7 @@ ProjectRepositoryNode.sapBWDataStoreObject=SAP DSO
|
||||
ProjectRepositoryNode.sapBWInfoCube=SAP InfoCube
|
||||
ProjectRepositoryNode.sapBWInfoObject=SAP InfoObject
|
||||
ProjectRepositoryNode.sapContentExtractor=SAP BI \u5185\u5BB9\u63D0\u53D6\u5668
|
||||
ProjectRepositoryNode.sapCDSView=SAP CDS \u89C6\u56FE
|
||||
RepositoryDropAdapter_copyingItems=\u6B63\u5728\u590D\u5236\u9879\u76EE...
|
||||
RepositoryDropAdapter_errorMsg=\u6B64\u76EE\u5F55\u5305\u542B\u9501\u5B9A\u7684\u9879\u76EE\uFF0C\u73B0\u5728\u65E0\u6CD5\u79FB\u52A8
|
||||
RepositoryDropAdapter_lockedByOthers=\u6B64\u9879\u76EE\u88AB\u5176\u4ED6\u7528\u6237\u9501\u5B9A\uFF0C\u73B0\u5728\u65E0\u6CD5\u79FB\u52A8\u3002
|
||||
|
||||
@@ -67,7 +67,6 @@ import org.talend.core.model.repository.Folder;
|
||||
import org.talend.core.model.repository.IRepositoryViewObject;
|
||||
import org.talend.core.model.repository.LockInfo;
|
||||
import org.talend.core.model.repository.RepositoryViewObject;
|
||||
import org.talend.core.model.routines.RoutinesUtil;
|
||||
import org.talend.core.repository.i18n.Messages;
|
||||
import org.talend.core.repository.utils.XmiResourceManager;
|
||||
import org.talend.core.runtime.CoreRuntimePlugin;
|
||||
@@ -131,7 +130,7 @@ public abstract class AbstractEMFRepositoryFactory extends AbstractRepositoryFac
|
||||
ERepositoryObjectType.METADATA_FILE_RULES, ERepositoryObjectType.METADATA_FILE_HL7,
|
||||
ERepositoryObjectType.METADATA_FILE_FTP, ERepositoryObjectType.METADATA_FILE_BRMS,
|
||||
ERepositoryObjectType.METADATA_MDMCONNECTION, ERepositoryObjectType.METADATA_HEADER_FOOTER,
|
||||
ERepositoryObjectType.JOB_SCRIPT };
|
||||
ERepositoryObjectType.JOB_SCRIPT, ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS };
|
||||
|
||||
List<IRepositoryViewObject> deletedItems = new ArrayList<IRepositoryViewObject>();
|
||||
for (ERepositoryObjectType type : types) {
|
||||
@@ -874,25 +873,38 @@ public abstract class AbstractEMFRepositoryFactory extends AbstractRepositoryFac
|
||||
@Override
|
||||
public IRepositoryViewObject getLastVersion(Project project, String id, String relativeFolder, ERepositoryObjectType type)
|
||||
throws PersistenceException {
|
||||
List<IRepositoryViewObject> serializableAllVersion = null;
|
||||
Object fullFolder = getFullFolder(project, type, relativeFolder);
|
||||
serializableAllVersion = getSerializableFromFolder(project, fullFolder, id, type, false, false, true, true);
|
||||
List<IRepositoryViewObject> serializableAllVersion = new ArrayList<>();
|
||||
if (lastFolderForItemMap.containsKey(id)) {
|
||||
ERepositoryObjectType itemType = lastRepositoryTypeForItemMap.get(id);
|
||||
String currentPath = lastFolderForItemMap.get(id);
|
||||
Object fullFolder = getFullFolder(project, itemType, currentPath);
|
||||
try {
|
||||
if (fullFolder != null && (fullFolder instanceof FolderItem || ((IFolder) fullFolder).exists())) {
|
||||
serializableAllVersion.addAll(getSerializableFromFolder(project, fullFolder, id, itemType, false, false, true, true));
|
||||
}
|
||||
} catch (PersistenceException e) {
|
||||
// do nothing.
|
||||
// if any exception happen or can't find the item, just try to look for it everywhere.
|
||||
}
|
||||
}
|
||||
if (serializableAllVersion.isEmpty()) {
|
||||
// look in all folders for this item type
|
||||
serializableAllVersion = getSerializableFromFolder(project, fullFolder, id, type, false, true, true, true, true);
|
||||
Object fullFolder = getFullFolder(project, type, relativeFolder);
|
||||
serializableAllVersion = getSerializableFromFolder(project, fullFolder, id, type, false, false, true, true);
|
||||
if (serializableAllVersion.isEmpty()) {
|
||||
// look in all folders for this item type
|
||||
serializableAllVersion = getSerializableFromFolder(project, fullFolder, id, type, false, true, true, true, true);
|
||||
}
|
||||
}
|
||||
int size = serializableAllVersion.size();
|
||||
|
||||
if (size > 1) {
|
||||
String message = getItemsMessages(serializableAllVersion, size);
|
||||
|
||||
throw new PersistenceException(Messages.getString(
|
||||
"AbstractEMFRepositoryFactory.presistenceException.OnlyOneOccurenceMustbeFound", message)); //$NON-NLS-1$
|
||||
} else if (size == 1) {
|
||||
return serializableAllVersion.get(0);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
if (size == 1) {
|
||||
return serializableAllVersion.get(0);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
protected void computePropertyMaxInformationLevel(Property property) {
|
||||
|
||||
@@ -184,6 +184,7 @@ public abstract class AbstractRepositoryFactory implements IRepositoryFactory {
|
||||
collect(getMetadata(project, ERepositoryObjectType.METADATA_FILE_LDIF), result);
|
||||
collect(getMetadata(project, ERepositoryObjectType.METADATA_CONNECTIONS), result);
|
||||
collect(getMetadata(project, ERepositoryObjectType.METADATA_SAPCONNECTIONS), result);
|
||||
collect(getMetadata(project, ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS), result);
|
||||
collect(getMetadata(project, ERepositoryObjectType.METADATA_HEADER_FOOTER), result);
|
||||
collect(getMetadata(project, ERepositoryObjectType.METADATA_LDAP_SCHEMA), result);
|
||||
collect(getMetadata(project, ERepositoryObjectType.METADATA_GENERIC_SCHEMA), result);
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
import org.talend.commons.exception.PersistenceException;
|
||||
import org.talend.commons.runtime.model.repository.ERepositoryStatus;
|
||||
import org.talend.commons.runtime.service.ITaCoKitService;
|
||||
import org.talend.commons.ui.runtime.exception.RuntimeExceptionHandler;
|
||||
import org.talend.commons.ui.runtime.image.ECoreImage;
|
||||
import org.talend.commons.ui.runtime.repository.IExtendRepositoryNode;
|
||||
@@ -92,9 +93,11 @@ import org.talend.core.repository.model.repositoryObject.SAPIDocRepositoryObject
|
||||
import org.talend.core.repository.model.repositoryObject.SalesforceModuleRepositoryObject;
|
||||
import org.talend.core.repository.recyclebin.RecycleBinManager;
|
||||
import org.talend.core.repository.ui.utils.ProjectRepositoryNodeCache;
|
||||
import org.talend.core.repository.utils.RepositoryNodeManager;
|
||||
import org.talend.core.runtime.services.IGenericDBService;
|
||||
import org.talend.core.runtime.services.IGenericService;
|
||||
import org.talend.core.runtime.services.IGenericWizardService;
|
||||
import org.talend.core.service.ITCKUIService;
|
||||
import org.talend.core.ui.ICDCProviderService;
|
||||
import org.talend.core.ui.ITestContainerProviderService;
|
||||
import org.talend.core.ui.branding.IBrandingService;
|
||||
@@ -102,6 +105,7 @@ import org.talend.cwm.helper.ConnectionHelper;
|
||||
import org.talend.cwm.helper.SAPBWTableHelper;
|
||||
import org.talend.cwm.helper.SubItemHelper;
|
||||
import org.talend.cwm.helper.TableHelper;
|
||||
import org.talend.cwm.helper.TaggedValueHelper;
|
||||
import org.talend.designer.core.IDesignerCoreService;
|
||||
import org.talend.repository.ProjectManager;
|
||||
import org.talend.repository.model.BinRepositoryNode;
|
||||
@@ -645,7 +649,9 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (RepositoryNodeManager.isSnowflake(currentType)) {
|
||||
continue;
|
||||
}
|
||||
if (currentType != null) {
|
||||
buildFolders(rootNode, currentType, folderPath, rootNode);
|
||||
}
|
||||
@@ -818,7 +824,8 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
|
||||
* @return
|
||||
*/
|
||||
private RepositoryNode getFolder(ERepositoryObjectType currentType, String path, List<IRepositoryNode> rootNodes) {
|
||||
if (RepositoryNodeUtilities.isGenericDBExtraType(currentType)) {
|
||||
if (RepositoryNodeUtilities.isGenericDBExtraType(currentType) || RepositoryNodeManager.isSnowflake(currentType)
|
||||
|| (ITaCoKitService.getInstance() != null && ITaCoKitService.getInstance().isTaCoKitType(currentType))) {
|
||||
currentType = ERepositoryObjectType.METADATA_CONNECTIONS;
|
||||
}
|
||||
if (path == null || path.isEmpty()) {
|
||||
@@ -1329,7 +1336,7 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
|
||||
|
||||
}
|
||||
|
||||
private void addNode(RepositoryNode parent, ERepositoryObjectType type, IRepositoryViewObject repositoryObject,
|
||||
public void addNode(RepositoryNode parent, ERepositoryObjectType type, IRepositoryViewObject repositoryObject,
|
||||
List<IRepositoryViewObject> validationRules) {
|
||||
|
||||
boolean isAvaliableInTOS = true; // this flag filter the databaseconnections which didn't supported by TOS but
|
||||
@@ -1339,16 +1346,22 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
|
||||
Connection conn = ((ConnectionItem) repositoryObject.getProperty().getItem()).getConnection();
|
||||
if(conn instanceof DatabaseConnection){
|
||||
dbMetadataConnection = (DatabaseConnection) conn;
|
||||
isAvaliableInTOS = EDatabaseTypeName.getTypeFromDbType(dbMetadataConnection.getDatabaseType(), false) == null ? false
|
||||
: true;
|
||||
if (ERepositoryObjectType.JDBC == repositoryObject.getRepositoryObjectType()
|
||||
&& ERepositoryObjectType.JDBC.getType().equals(dbMetadataConnection.getProductId())) {
|
||||
// hide tcompv0 jdbc node
|
||||
// remove the 2nd condition if later we need to migrate Delta Lake and SingleStore
|
||||
return;
|
||||
}
|
||||
isAvaliableInTOS = EDatabaseTypeName.getTypeFromDbType(dbMetadataConnection.getDatabaseType(), false) != null;
|
||||
}
|
||||
}
|
||||
|
||||
Connection connection = null;
|
||||
if (type == ERepositoryObjectType.METADATA_CONNECTIONS && isAvaliableInTOS) {
|
||||
connection = dbMetadataConnection;
|
||||
} else if (type == ERepositoryObjectType.METADATA_SAPCONNECTIONS) {
|
||||
connection = ((ConnectionItem) repositoryObject.getProperty().getItem()).getConnection();
|
||||
} else if (type == ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS) {
|
||||
connection = ((ConnectionItem) repositoryObject.getProperty().getItem()).getConnection();
|
||||
} else if (type == ERepositoryObjectType.METADATA_FILE_DELIMITED) {
|
||||
connection = ((ConnectionItem) repositoryObject.getProperty().getItem()).getConnection();
|
||||
} else if (type == ERepositoryObjectType.METADATA_FILE_POSITIONAL) {
|
||||
@@ -1407,22 +1420,32 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isAvaliableInTOS) {
|
||||
if (isAvaliableInTOS && node != null) {
|
||||
parent.getChildren().add(node);
|
||||
}
|
||||
}
|
||||
|
||||
if (null != connection) {
|
||||
if (null != connection && node != null) {
|
||||
createTables(node, repositoryObject, connection, validationRules);
|
||||
}
|
||||
|
||||
for (IRepositoryContentHandler handler : RepositoryContentManager.getHandlers()) {
|
||||
handler.addNode(type, recBinNode, repositoryObject, node);
|
||||
if (node != null) {
|
||||
for (IRepositoryContentHandler handler : RepositoryContentManager.getHandlers()) {
|
||||
handler.addNode(type, recBinNode, repositoryObject, node);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private RepositoryNode createRepositoryNode(RepositoryNode parent, ERepositoryObjectType repObjType,
|
||||
IRepositoryViewObject repositoryObject, Connection connection) {
|
||||
if (ERepositoryObjectType.METADATA_TACOKIT_JDBC.equals(repositoryObject.getRepositoryObjectType()) && ITCKUIService.get() != null) {
|
||||
try {
|
||||
return ITCKUIService.get().createTaCoKitRepositoryNode(parent, repObjType, repositoryObject, connection);
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
RepositoryNode node = new RepositoryNode(repositoryObject, parent, ENodeType.REPOSITORY_ELEMENT);
|
||||
|
||||
node.setProperties(EProperties.CONTENT_TYPE, repObjType);
|
||||
@@ -1589,7 +1612,7 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
|
||||
return objs;
|
||||
}
|
||||
|
||||
private void createTables(RepositoryNode node, final IRepositoryViewObject repObj, Connection metadataConnection,
|
||||
public void createTables(RepositoryNode node, final IRepositoryViewObject repObj, Connection metadataConnection,
|
||||
List<IRepositoryViewObject> validationRules) {
|
||||
|
||||
// // 5.GENERIC SCHEMAS
|
||||
@@ -1751,6 +1774,9 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
|
||||
|
||||
// 10. BW Business Content Extractor:
|
||||
createSAPContentExtractorNodes(repObj, metadataConnection, node, validationRules);
|
||||
|
||||
// 11. CDS views:
|
||||
createSAPCDSViewNodes(repObj, metadataConnection, node, validationRules);
|
||||
} else if (metadataConnection instanceof SalesforceSchemaConnection) {
|
||||
createSalesforceModuleNodes(repObj, metadataConnection, node, validationRules);
|
||||
} else {
|
||||
@@ -1784,7 +1810,9 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
|
||||
for (MetadataTable tablesWithOrder : tablesWithOrders) {
|
||||
EMap<String, String> properties = tablesWithOrder.getAdditionalProperties();
|
||||
String partitionKey = properties.get(EProperties.CONTENT_TYPE.name());
|
||||
if (!ERepositoryObjectType.METADATA_SAP_CONTENT_EXTRACTOR.name().equals(partitionKey)) {
|
||||
String cdsType = TaggedValueHelper.getValueString(EProperties.CONTENT_TYPE.name(), tablesWithOrder);
|
||||
if (!ERepositoryObjectType.METADATA_SAP_CONTENT_EXTRACTOR.name().equals(partitionKey)
|
||||
&& !ERepositoryObjectType.METADATA_SAP_CDS_VIEW.name().equals(cdsType)) {
|
||||
tables.add(tablesWithOrder);
|
||||
}
|
||||
}
|
||||
@@ -1967,6 +1995,32 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
|
||||
createTables(tableContainer, repObj, tables, ERepositoryObjectType.METADATA_CON_TABLE, validationRules);
|
||||
}
|
||||
|
||||
private void createSAPCDSViewNodes(IRepositoryViewObject repObj, Connection metadataConnection, RepositoryNode node,
|
||||
List<IRepositoryViewObject> validationRules) {
|
||||
StableRepositoryNode tableContainer = new StableRepositoryNode(node,
|
||||
Messages.getString("ProjectRepositoryNode.sapCDSView"), ECoreImage.FOLDER_CLOSE_ICON); //$NON-NLS-1$
|
||||
tableContainer.setChildrenObjectType(ERepositoryObjectType.METADATA_CON_TABLE);
|
||||
tableContainer.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_SAP_CDS_VIEW);
|
||||
IRepositoryNode cacheNode = nodeCache.getCache(tableContainer);
|
||||
if (cacheNode != null && cacheNode instanceof StableRepositoryNode) {
|
||||
tableContainer = (StableRepositoryNode) cacheNode;
|
||||
tableContainer.getChildren().clear();
|
||||
} else {
|
||||
nodeCache.addCache(tableContainer, true);
|
||||
}
|
||||
|
||||
node.getChildren().add(tableContainer);
|
||||
List<MetadataTable> tablesWithOrders = ConnectionHelper.getTablesWithOrders(metadataConnection);
|
||||
EList<MetadataTable> tables = new BasicEList<>();
|
||||
for (MetadataTable tablesWithOrder : tablesWithOrders) {
|
||||
String cdsType = TaggedValueHelper.getValueString(EProperties.CONTENT_TYPE.name(), tablesWithOrder);
|
||||
if (ERepositoryObjectType.METADATA_SAP_CDS_VIEW.name().equals(cdsType)) {
|
||||
tables.add(tablesWithOrder);
|
||||
}
|
||||
}
|
||||
createTables(tableContainer, repObj, tables, ERepositoryObjectType.METADATA_CON_TABLE, validationRules);
|
||||
}
|
||||
|
||||
private void createSalesforceModuleNodes(IRepositoryViewObject rebObj, Connection metadataConnection,
|
||||
RepositoryNode connectionNode, List<IRepositoryViewObject> validationRules) {
|
||||
EList modules = ((SalesforceSchemaConnection) metadataConnection).getModules();
|
||||
|
||||
@@ -54,9 +54,7 @@ import org.eclipse.jface.dialogs.InputDialog;
|
||||
import org.eclipse.jface.dialogs.MessageDialog;
|
||||
import org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl;
|
||||
import org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.swt.widgets.MessageBox;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.ui.navigator.CommonNavigator;
|
||||
import org.eclipse.ui.navigator.CommonViewer;
|
||||
@@ -447,12 +445,10 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
|
||||
if (currentShell == null) {
|
||||
currentShell = DisplayUtils.getDefaultShell(false);
|
||||
}
|
||||
MessageBox box = new MessageBox(currentShell, SWT.ICON_WARNING | SWT.OK | SWT.CANCEL);
|
||||
box.setText(Messages.getString("ProxyRepositoryFactory.JobNameErroe")); //$NON-NLS-1$
|
||||
box.setMessage(Messages.getString("ProxyRepositoryFactory.Label") + " " + name + " " + Messages.getString("ProxyRepositoryFactory.ReplaceJob")); //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
|
||||
|
||||
if (box.open() == SWT.OK) {
|
||||
|
||||
if (MessageDialog.openQuestion(currentShell,
|
||||
Messages.getString("ProxyRepositoryFactory.JobNameErroe"), //$NON-NLS-1$
|
||||
Messages.getString("ProxyRepositoryFactory.Label") + " " + name + " " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
+ Messages.getString("ProxyRepositoryFactory.ReplaceJob"))) { //$NON-NLS-1$
|
||||
ok[0] = true;
|
||||
}
|
||||
}
|
||||
@@ -2211,6 +2207,13 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
|
||||
if (IHadoopDistributionService.get() != null) {
|
||||
try {
|
||||
IHadoopDistributionService.get().checkAndMigrateDistributionProxyCredential(project);
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
}
|
||||
// init dynamic distirbution after `beforeLogon`, before loading libraries.
|
||||
initDynamicDistribution(monitor);
|
||||
|
||||
|
||||
@@ -147,7 +147,11 @@ public class LDAPCATruster implements X509TrustManager {
|
||||
} catch (IOException ex) {
|
||||
}
|
||||
try {
|
||||
ks.load(in, certStorePwd);
|
||||
if (in != null) {
|
||||
ks.load(in, certStorePwd);
|
||||
} else {
|
||||
ks = null;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(Messages.getString("LDAPCATruster.failedLoadCert") + e.getMessage()); //$NON-NLS-1$
|
||||
return;
|
||||
|
||||
@@ -21,7 +21,9 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.collections.map.MultiKeyMap;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.eclipse.core.resources.IFolder;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IWorkspace;
|
||||
import org.eclipse.core.resources.IWorkspaceRunnable;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
@@ -79,6 +81,7 @@ import org.talend.core.model.properties.ProcessItem;
|
||||
import org.talend.core.model.properties.ProjectReference;
|
||||
import org.talend.core.model.properties.Property;
|
||||
import org.talend.core.model.repository.ERepositoryObjectType;
|
||||
import org.talend.core.model.repository.Folder;
|
||||
import org.talend.core.model.repository.IRepositoryContentHandler;
|
||||
import org.talend.core.model.repository.IRepositoryViewObject;
|
||||
import org.talend.core.model.repository.ISubRepositoryObject;
|
||||
@@ -97,6 +100,7 @@ import org.talend.core.repository.ui.dialog.ContextReferenceDialog;
|
||||
import org.talend.core.repository.ui.dialog.ItemReferenceDialog;
|
||||
import org.talend.core.repository.utils.AbstractResourceChangesService;
|
||||
import org.talend.core.repository.utils.RepositoryNodeDeleteManager;
|
||||
import org.talend.core.repository.utils.RepositoryNodeManager;
|
||||
import org.talend.core.repository.utils.RepositoryReferenceBeanUtils;
|
||||
import org.talend.core.repository.utils.TDQServiceRegister;
|
||||
import org.talend.core.runtime.CoreRuntimePlugin;
|
||||
@@ -338,6 +342,25 @@ public class DeleteAction extends AContextualAction {
|
||||
deletedFolder.add(node);
|
||||
List<IRepositoryViewObject> deleteObjectList = new ArrayList<IRepositoryViewObject>();
|
||||
deleteFolder(node, factory, deleteActionCache, deleteObjectList);
|
||||
if (ERepositoryObjectType.SNOWFLAKE != null) {
|
||||
IPath sfPath = RepositoryNodeUtilities.getPath(node);
|
||||
String fullPath = ERepositoryObjectType.SNOWFLAKE.getFolder() + IPath.SEPARATOR
|
||||
+ sfPath.toString();
|
||||
IProject rsProject = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject());
|
||||
IFolder sfFolder = ResourceUtils.getFolder(rsProject, fullPath, false);
|
||||
if (sfFolder.exists()) {
|
||||
RepositoryNode sfRootNode = ProjectRepositoryNode.getInstance()
|
||||
.getRootRepositoryNode(ERepositoryObjectType.SNOWFLAKE);
|
||||
FolderItem item = factory.getFolderItem(ProjectManager.getInstance().getCurrentProject(),
|
||||
ERepositoryObjectType.SNOWFLAKE, sfPath);
|
||||
Folder folder = new Folder(item.getProperty(), ERepositoryObjectType.SNOWFLAKE);
|
||||
RepositoryNode sfFolderNode = new RepositoryNode(folder, sfRootNode,
|
||||
ENodeType.REPOSITORY_ELEMENT);
|
||||
sfFolderNode.setProperties(EProperties.LABEL, folder.getLabel());
|
||||
sfFolderNode.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.SNOWFLAKE);
|
||||
deleteFolder(sfFolderNode, factory, deleteActionCache, deleteObjectList);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (PersistenceException e) {
|
||||
MessageBoxExceptionHandler.process(e);
|
||||
@@ -477,6 +500,13 @@ public class DeleteAction extends AContextualAction {
|
||||
}
|
||||
IPath path = RepositoryNodeUtilities.getPath(node);
|
||||
ERepositoryObjectType objectType = (ERepositoryObjectType) node.getProperties(EProperties.CONTENT_TYPE);
|
||||
if (RepositoryNodeManager.isSnowflake(objectType)) {
|
||||
String pathStr = node.getObject().getLabel();
|
||||
if (StringUtils.isNotBlank(node.getObject().getPath())) {
|
||||
pathStr = node.getObject().getPath() + IPath.SEPARATOR + pathStr;
|
||||
}
|
||||
path = new Path(pathStr);
|
||||
}
|
||||
List<IRepositoryNode> repositoryList = node.getChildren();
|
||||
boolean success = true;
|
||||
Exception bex = null;
|
||||
|
||||
@@ -606,6 +606,8 @@ public class DuplicateAction extends AContextualAction {
|
||||
item = PropertiesFactory.eINSTANCE.createSalesforceSchemaConnectionItem();
|
||||
} else if (repositoryType == ERepositoryObjectType.METADATA_SAPCONNECTIONS) {
|
||||
item = PropertiesFactory.eINSTANCE.createSAPConnectionItem();
|
||||
} else if (repositoryType == ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS) {
|
||||
item = PropertiesFactory.eINSTANCE.createBigQueryConnectionItem();
|
||||
} else if (repositoryType == ERepositoryObjectType.METADATA_WSDL_SCHEMA) {
|
||||
item = PropertiesFactory.eINSTANCE.createWSDLSchemaConnectionItem();
|
||||
} else if (repositoryType == ERepositoryObjectType.PROCESS) {
|
||||
|
||||
@@ -18,6 +18,8 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.eclipse.core.resources.IFolder;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
@@ -30,12 +32,15 @@ import org.talend.core.model.repository.IRepositoryViewObject;
|
||||
import org.talend.core.model.repository.RepositoryManager;
|
||||
import org.talend.core.repository.i18n.Messages;
|
||||
import org.talend.core.repository.model.JobletReferenceBean;
|
||||
import org.talend.core.repository.model.ProjectRepositoryNode;
|
||||
import org.talend.core.repository.model.ProxyRepositoryFactory;
|
||||
import org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject;
|
||||
import org.talend.core.repository.ui.actions.metadata.CopyToGenericSchemaHelper;
|
||||
import org.talend.core.repository.ui.dialog.JobletReferenceDialog;
|
||||
import org.talend.core.repository.utils.AbstractResourceChangesService;
|
||||
import org.talend.core.repository.utils.RepositoryNodeManager;
|
||||
import org.talend.core.repository.utils.TDQServiceRegister;
|
||||
import org.talend.repository.ProjectManager;
|
||||
import org.talend.repository.model.IProxyRepositoryFactory;
|
||||
import org.talend.repository.model.IRepositoryNode;
|
||||
import org.talend.repository.model.IRepositoryNode.ENodeType;
|
||||
@@ -155,8 +160,11 @@ public class MoveObjectAction {
|
||||
switch (targetNode.getType()) {
|
||||
case SYSTEM_FOLDER:
|
||||
case SIMPLE_FOLDER:
|
||||
boolean booleanValue = ((ERepositoryObjectType) targetNode.getProperties(EProperties.CONTENT_TYPE))
|
||||
.equals(sourceNode.getProperties(EProperties.CONTENT_TYPE));
|
||||
ERepositoryObjectType sourceType = (ERepositoryObjectType) sourceNode.getProperties(EProperties.CONTENT_TYPE);
|
||||
ERepositoryObjectType targetType = (ERepositoryObjectType) targetNode.getProperties(EProperties.CONTENT_TYPE);
|
||||
boolean booleanValue = sourceType == targetType || (ERepositoryObjectType.METADATA_CONNECTIONS == targetType
|
||||
&& (ERepositoryObjectType.METADATA_TACOKIT_JDBC == sourceType
|
||||
|| RepositoryNodeManager.isSnowflake(sourceType)));
|
||||
if (isGenericSchema) {
|
||||
return true;
|
||||
} else {
|
||||
@@ -274,7 +282,9 @@ public class MoveObjectAction {
|
||||
targetPath = (targetNode == null ? new Path("") : RepositoryNodeUtilities.getPath(targetNode)); //$NON-NLS-1$
|
||||
}
|
||||
List<IRepositoryViewObject> objectToMoves = new ArrayList<IRepositoryViewObject>();
|
||||
List<IRepositoryViewObject> snowflakeToMove = new ArrayList<>();
|
||||
Map<IRepositoryViewObject, IPath> map = new HashMap<IRepositoryViewObject, IPath>();
|
||||
Map<IRepositoryViewObject, IPath> snowflakeMap = new HashMap<>();
|
||||
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
|
||||
for (RepositoryNode sourceNode : nodeList) {
|
||||
IPath sourcePath = RepositoryNodeUtilities.getPath(sourceNode);
|
||||
@@ -298,6 +308,18 @@ public class MoveObjectAction {
|
||||
// Move :
|
||||
if (isGenericSchema) {
|
||||
CopyToGenericSchemaHelper.copyToGenericSchema(factory, objectToMove, targetPath);
|
||||
} else if (RepositoryNodeManager.isSnowflake(sourceNode.getObjectType())
|
||||
&& ERepositoryObjectType.METADATA_CONNECTIONS == targetNode.getContentType()
|
||||
&& (ENodeType.SYSTEM_FOLDER == targetNode.getType()
|
||||
|| ENodeType.SIMPLE_FOLDER == targetNode.getType())) {
|
||||
if (!ProjectRepositoryNode.class.isInstance(targetNode.getParent())
|
||||
&& targetNode.getObject() != null) {
|
||||
factory.createFolder(ERepositoryObjectType.SNOWFLAKE,
|
||||
RepositoryNodeUtilities.getPath(targetNode.getParent()),
|
||||
targetNode.getObject().getProperty().getLabel());
|
||||
}
|
||||
snowflakeToMove.add(objectToMove);
|
||||
snowflakeMap.put(objectToMove, sourcePath);
|
||||
} else {
|
||||
// MOD gdbu 2011-9-29 TDQ-3546
|
||||
ERepositoryObjectType repositoryObjectType = objectToMove.getRepositoryObjectType();
|
||||
@@ -325,6 +347,18 @@ public class MoveObjectAction {
|
||||
// Source is a folder :
|
||||
ERepositoryObjectType sourceType = (ERepositoryObjectType) sourceNode.getProperties(EProperties.CONTENT_TYPE);
|
||||
factory.moveFolder(sourceType, sourcePath, targetPath);
|
||||
|
||||
if (ERepositoryObjectType.SNOWFLAKE != null) {
|
||||
String snowflakePath = ERepositoryObjectType.getFolderName(ERepositoryObjectType.SNOWFLAKE);
|
||||
if (!sourcePath.isEmpty()) {
|
||||
snowflakePath += IPath.SEPARATOR + sourcePath.toString();
|
||||
}
|
||||
IProject project = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject());
|
||||
IFolder folder = ResourceUtils.getFolder(project, snowflakePath, false);
|
||||
if (folder.exists() && folder.members().length > 0) {
|
||||
factory.moveFolder(ERepositoryObjectType.SNOWFLAKE, sourcePath, targetPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (objectToMoves.size() > 0) {
|
||||
@@ -335,6 +369,10 @@ public class MoveObjectAction {
|
||||
}
|
||||
factory.moveObjectMulti(objectArray, targetPath, map);
|
||||
}
|
||||
if (!snowflakeToMove.isEmpty()) {
|
||||
factory.moveObjectMulti(snowflakeToMove.toArray(new IRepositoryViewObject[] {}),
|
||||
RepositoryNodeUtilities.getPath(targetNode), snowflakeMap);
|
||||
}
|
||||
}
|
||||
|
||||
public void execute(RepositoryNode sourceNode, RepositoryNode targetNode, boolean isDnd) throws Exception {
|
||||
|
||||
@@ -18,6 +18,8 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.core.resources.IFolder;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IWorkspace;
|
||||
import org.eclipse.core.resources.IWorkspaceRunnable;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
@@ -37,6 +39,7 @@ import org.talend.commons.runtime.model.repository.ERepositoryStatus;
|
||||
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
|
||||
import org.talend.commons.ui.runtime.image.EImage;
|
||||
import org.talend.commons.ui.runtime.image.ImageProvider;
|
||||
import org.talend.commons.utils.workbench.resources.ResourceUtils;
|
||||
import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.ITDQRepositoryService;
|
||||
import org.talend.core.model.metadata.builder.connection.AbstractMetadataObject;
|
||||
@@ -49,6 +52,7 @@ import org.talend.core.model.repository.IRepositoryViewObject;
|
||||
import org.talend.core.model.repository.ISubRepositoryObject;
|
||||
import org.talend.core.repository.i18n.Messages;
|
||||
import org.talend.core.repository.model.ProxyRepositoryFactory;
|
||||
import org.talend.core.repository.utils.RepositoryNodeManager;
|
||||
import org.talend.core.service.ICoreUIService;
|
||||
import org.talend.core.ui.ITestContainerProviderService;
|
||||
import org.talend.repository.ProjectManager;
|
||||
@@ -111,9 +115,42 @@ public class RestoreAction extends AContextualAction {
|
||||
Item item = node.getObject().getProperty().getItem();
|
||||
if (item instanceof FolderItem) {
|
||||
item.getState().setDeleted(false);
|
||||
if (nodeType == ERepositoryObjectType.METADATA_CONNECTIONS && ERepositoryObjectType.SNOWFLAKE != null) {
|
||||
IPath sfPath = new Path(node.getObject().getPath()).append(node.getObject().getLabel());
|
||||
String fullPath = ERepositoryObjectType.SNOWFLAKE.getFolder() + IPath.SEPARATOR + sfPath;
|
||||
IProject rsProject = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject());
|
||||
IFolder sfFolder = ResourceUtils.getFolder(rsProject, fullPath, false);
|
||||
if (sfFolder.exists()) {
|
||||
FolderItem sfItem = ProxyRepositoryFactory.getInstance().getFolderItem(ProjectManager.getInstance().getCurrentProject(),
|
||||
ERepositoryObjectType.SNOWFLAKE, sfPath);
|
||||
sfItem.getState().setDeleted(false);
|
||||
while (sfPath.segmentCount() > 1) {
|
||||
sfPath = sfPath.removeLastSegments(1);
|
||||
FolderItem parentItem = ProxyRepositoryFactory.getInstance().getFolderItem(
|
||||
ProjectManager.getInstance().getCurrentProject(), ERepositoryObjectType.SNOWFLAKE,
|
||||
sfPath);
|
||||
if (ProxyRepositoryFactory.getInstance().getStatus(parentItem) == ERepositoryStatus.DELETED) {
|
||||
parentItem.getState().setDeleted(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
RestoreObjectAction restoreObjectAction = RestoreObjectAction.getInstance();
|
||||
restoreObjectAction.execute(node, null, path);
|
||||
|
||||
if (RepositoryNodeManager.isSnowflake(nodeType)) {
|
||||
IPath sfPath = new Path(node.getObject().getPath()).append(node.getObject().getLabel());
|
||||
while (sfPath.segmentCount() > 1) {
|
||||
sfPath = sfPath.removeLastSegments(1);
|
||||
FolderItem parentItem = ProxyRepositoryFactory.getInstance().getFolderItem(
|
||||
ProjectManager.getInstance().getCurrentProject(), ERepositoryObjectType.SNOWFLAKE, sfPath);
|
||||
if (ProxyRepositoryFactory.getInstance().getStatus(parentItem) == ERepositoryStatus.DELETED) {
|
||||
parentItem.getState().setDeleted(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MOD qiongli 2012-10-16 TDQ-6166 notify sql exploere when restore a connection.
|
||||
if (item instanceof DatabaseConnectionItem) {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {
|
||||
|
||||
@@ -129,7 +129,7 @@ public class ContextReferenceDialog extends SelectionDialog {
|
||||
Item item = objToDelete.getProperty().getItem();
|
||||
if (item != null) {
|
||||
setMessage(Messages.getString(
|
||||
"ContextReferenceDialog.kindMessages1", item.getProperty().getLabel(), item.getProperty().getVersion())); //$NON-NLS-1$
|
||||
"ContextReferenceDialog.kindMessages2", item.getProperty().getLabel(), item.getProperty().getVersion())); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
setHelpAvailable(false);
|
||||
@@ -138,7 +138,7 @@ public class ContextReferenceDialog extends SelectionDialog {
|
||||
@Override
|
||||
protected void configureShell(Shell newShell) {
|
||||
super.configureShell(newShell);
|
||||
newShell.setText(Messages.getString("ContextReferenceDialog.Title")); //$NON-NLS-1$
|
||||
newShell.setText(Messages.getString("ContextReferenceDialog.DeleteContext.Title")); //$NON-NLS-1$
|
||||
newShell.setSize(650, 250);
|
||||
}
|
||||
|
||||
|
||||
@@ -62,6 +62,7 @@ import org.talend.core.repository.ui.actions.CopyObjectAction;
|
||||
import org.talend.core.repository.ui.actions.MoveObjectAction;
|
||||
import org.talend.core.repository.utils.AbstractResourceChangesService;
|
||||
import org.talend.core.repository.utils.ConvertJobsUtil;
|
||||
import org.talend.core.repository.utils.RepositoryNodeManager;
|
||||
import org.talend.core.repository.utils.TDQServiceRegister;
|
||||
import org.talend.core.runtime.CoreRuntimePlugin;
|
||||
import org.talend.core.service.ITransformService;
|
||||
@@ -379,7 +380,7 @@ public class RepositoryDropAdapter extends PluginDropAdapter {
|
||||
if (target == null) {
|
||||
return false;
|
||||
}
|
||||
super.validateDrop(target, operation, transferType);
|
||||
// super.validateDrop(target, operation, transferType);
|
||||
boolean isValid = true;
|
||||
Set<IResource> parents = new HashSet<IResource>();
|
||||
for (Object obj : ((StructuredSelection) getViewer().getSelection()).toArray()) {
|
||||
@@ -459,6 +460,24 @@ public class RepositoryDropAdapter extends PluginDropAdapter {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (object.getRepositoryObjectType() == ERepositoryObjectType.METADATA_TACOKIT_JDBC) {
|
||||
if (target instanceof RepositoryNode) {
|
||||
RepositoryNode targetRN = (RepositoryNode) target;
|
||||
if (ENodeType.SYSTEM_FOLDER == targetRN.getType() || ENodeType.SIMPLE_FOLDER == targetRN.getType()) {
|
||||
if (targetRN.getContentType() == ERepositoryObjectType.METADATA_CONNECTIONS) {
|
||||
return isValid = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (RepositoryNodeManager.isSnowflake(object.getRepositoryObjectType())) {
|
||||
if (target instanceof RepositoryNode) {
|
||||
RepositoryNode targetRN = (RepositoryNode) target;
|
||||
if (ENodeType.SYSTEM_FOLDER == targetRN.getType() || ENodeType.SIMPLE_FOLDER == targetRN.getType()) {
|
||||
if (targetRN.getContentType() == ERepositoryObjectType.METADATA_CONNECTIONS) {
|
||||
return isValid = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -155,4 +155,8 @@ public class RepositoryNodeManager {
|
||||
return isTacokit;
|
||||
}
|
||||
|
||||
public static boolean isSnowflake(ERepositoryObjectType type) {
|
||||
return ERepositoryObjectType.SNOWFLAKE != null && ERepositoryObjectType.SNOWFLAKE == type;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ import org.talend.core.model.utils.CloneConnectionUtils;
|
||||
import org.talend.core.model.utils.ContextParameterUtils;
|
||||
import org.talend.core.utils.TalendQuoteUtils;
|
||||
import org.talend.cwm.helper.ConnectionHelper;
|
||||
import org.talend.cwm.helper.StudioEncryptionHelper;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
|
||||
import org.talend.model.bridge.ReponsitoryContextBridge;
|
||||
|
||||
@@ -67,6 +68,7 @@ public class StandaloneConnectionContextUtils {
|
||||
String server = getOriginalValue(contextProperties, dbConn.getServerName());
|
||||
String username = getOriginalValue(contextProperties, dbConn.getUsername());
|
||||
String password = getOriginalValue(contextProperties, dbConn.getRawPassword());
|
||||
String originEncryptedPassword = getOriginalValue(contextProperties, dbConn.getPassword());
|
||||
String port = getOriginalValue(contextProperties, dbConn.getPort());
|
||||
String sidOrDatabase = getOriginalValue(contextProperties, dbConn.getSID());
|
||||
String datasource = getOriginalValue(contextProperties, dbConn.getDatasourceName());
|
||||
@@ -87,6 +89,8 @@ public class StandaloneConnectionContextUtils {
|
||||
cloneConn.setDatasourceName(datasource);
|
||||
cloneConn.setDBRootPath(dbRootPath);
|
||||
cloneConn.setFileFieldName(filePath);
|
||||
//To avoid encrypt the same value
|
||||
cloneConn.setPassword(originEncryptedPassword);
|
||||
cloneConn.setRawPassword(password); // the password is raw.
|
||||
cloneConn.setPort(port);
|
||||
cloneConn.setUiSchema(schemaOracle);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Manifest-Version: 1.0
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Core Runtime Plug-in
|
||||
Bundle-SymbolicName: org.talend.core.runtime;singleton:=true
|
||||
@@ -6,6 +6,7 @@ Bundle-Version: 8.0.1.qualifier
|
||||
Bundle-Localization: plugin
|
||||
Bundle-Vendor: .Talend SA.
|
||||
Export-Package: org.talend.analysistask,
|
||||
org.talend.commons.report,
|
||||
org.talend.commons.utils.generation,
|
||||
org.talend.commons.utils.io,
|
||||
org.talend.commons.utils.workbench.resources,
|
||||
@@ -125,12 +126,25 @@ Require-Bundle: org.eclipse.jdt.core,
|
||||
org.talend.commons.ui,
|
||||
org.ops4j.pax.url.mvn,
|
||||
org.talend.components.api,
|
||||
org.apache.servicemix.bundles.avro,
|
||||
jackson-core-asl,
|
||||
org.talend.libraries.jackson,
|
||||
org.eclipse.m2e.core,
|
||||
org.talend.libraries.apache.common,
|
||||
org.talend.signon.util
|
||||
org.talend.signon.util,
|
||||
org.eclipse.core.runtime,
|
||||
org.talend.studio.studio-utils,
|
||||
org.eclipse.emf.ecore,
|
||||
org.eclipse.core.resources,
|
||||
org.eclipse.emf.ecore.xmi,
|
||||
org.talend.common.ui.runtime,
|
||||
org.talend.cwm.mip,
|
||||
org.talend.daikon,
|
||||
org.talend.libraries.apache,
|
||||
org.apache.commons.lang3,
|
||||
com.fasterxml.jackson.core.jackson-annotations,
|
||||
com.fasterxml.jackson.core.jackson-databind,
|
||||
com.fasterxml.jackson.core.jackson-core,
|
||||
avro
|
||||
Bundle-Activator: org.talend.core.runtime.CoreRuntimePlugin
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-ClassPath: .,
|
||||
|
||||
@@ -1,567 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<mapping>
|
||||
<dbms product="POSTGRESPLUS" id="postgresplus_id" label="Mapping PostgresPlus"
|
||||
default="true">
|
||||
<dbTypes>
|
||||
<dbType type="ABSTIME" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="ACLITEM" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="BIGSERIAL" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="BIT" ignorePre="true" />
|
||||
<dbType type="BOOL" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="BOX" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="BPCHAR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="BYTEA" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="CHAR" defaultLength="50" ignorePre="true"/>
|
||||
<dbType type="CID" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="CIDR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="CIRCLE" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="DATE" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="FLOAT4" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="FLOAT8" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="INET" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="INT2" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="INT2VECTOR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="INT4" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="INT8" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="INTERVAL" ignorePre="true" />
|
||||
<dbType type="LINE" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="LSEG" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="MACADDR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="MONEY" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="NAME" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="NUMERIC" defaultLength="20" defaultPrecision="10"/>
|
||||
<dbType type="OID" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="OIDVECTOR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="PATH" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="POINT" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="POLYGON" ignoreLen="true" ignorePre="true"/>
|
||||
<dbType type="REFCURSOR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="RELTIME" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="REGCLASS" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="REGOPER" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="REGOPERATOR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="REGPROC" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="REGPROCEDURE" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="REGTYPE" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="SERIAL" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="SMGR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="TEXT" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="TID" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="TIME" ignorePre="true" />
|
||||
<dbType type="TINTERVAL" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="TIMESTAMPTZ" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="TIMESTAMP" ignorePre="true" />
|
||||
<dbType type="TIMETZ" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="VARBIT" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="VARCHAR" defaultLength="200" ignorePre="true" />
|
||||
<dbType type="XID" ignoreLen="true" ignorePre="true" />
|
||||
|
||||
<dbType type="_ABSTIME" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_ACLITEM" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_BIT" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_BOX" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_BOOL" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_BPCHAR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_BYTEA" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_CHAR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_CID" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_CIDR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_CIRCLE" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_DATE" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_FLOAT4" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_FLOAT8" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_INET" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_INT2VECTOR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_INT4" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_INT8" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_INTERVAL" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_LINE" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_LSEG" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_MACADDR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_MONEY" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_NAME" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_NUMERIC" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_OID" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_OIDVECTOR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_PATH" ignoreLen="true" ignorePre="true"/>
|
||||
<dbType type="_POINT" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_POLYGON" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_REFCURSOR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_REGCLASS" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_REGOPER" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_REGOPERATOR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_REGPROC" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_REGPROCEDURE" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_REGTYPE" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_RELTIME" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_TEXT" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_TID" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_TIME" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_TIMESTAMP" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_TIMESTAMPTZ" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_TIMETZ" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_TINTERVAL" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_VARBIT" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_VARCHAR" ignoreLen="true" ignorePre="true" />
|
||||
<dbType type="_XID" ignoreLen="true" ignorePre="true" />
|
||||
</dbTypes>
|
||||
|
||||
<language name="java">
|
||||
<talendToDbTypes><!-- Adviced mappings -->
|
||||
<talendType type="id_List"/>
|
||||
<talendType type="id_Boolean">
|
||||
<dbType type="BOOL" default="true" />
|
||||
</talendType>
|
||||
<talendType type="id_Byte">
|
||||
</talendType>
|
||||
<talendType type="id_byte[]">
|
||||
<dbType type="BIT" default="true" />
|
||||
<dbType type="VARBIT" />
|
||||
</talendType>
|
||||
<talendType type="id_Character">
|
||||
<dbType type="CHAR" default="true" />
|
||||
<dbType type="BPCHAR" />
|
||||
<dbType type="VARCHAR" />
|
||||
<dbType type="TEXT" />
|
||||
</talendType>
|
||||
<talendType type="id_Date">
|
||||
<dbType type="DATE" default="true" />
|
||||
<dbType type="ABSTIME" />
|
||||
<dbType type="TIMETZ" />
|
||||
<dbType type="TIME" />
|
||||
<dbType type="TIMESTAMPTZ" />
|
||||
<dbType type="TIMESTAMP" />
|
||||
<dbType type="INTERVAL" />
|
||||
<dbType type="TINTERVAL" />
|
||||
<dbType type="RELTIME" />
|
||||
</talendType>
|
||||
<talendType type="id_BigDecimal">
|
||||
<dbType type="NUMERIC" default="true" />
|
||||
<dbType type="FLOAT4" />
|
||||
<dbType type="FLOAT8"/>
|
||||
</talendType>
|
||||
<talendType type="id_Double">
|
||||
<dbType type="FLOAT4" />
|
||||
<dbType type="FLOAT8" default="true" />
|
||||
<dbType type="NUMERIC" />
|
||||
</talendType>
|
||||
<talendType type="id_Float">
|
||||
<dbType type="FLOAT4" default="true" />
|
||||
<dbType type="FLOAT8" />
|
||||
<dbType type="NUMERIC" />
|
||||
</talendType>
|
||||
<talendType type="id_Integer">
|
||||
<dbType type="INT2" />
|
||||
<dbType type="INT4" default="true" />
|
||||
<dbType type="SERIAL" />
|
||||
<dbType type="INT8" />
|
||||
<dbType type="BIGSERIAL" />
|
||||
</talendType>
|
||||
<talendType type="id_Long">
|
||||
<dbType type="INT2" />
|
||||
<dbType type="INT4" />
|
||||
<dbType type="SERIAL" />
|
||||
<dbType type="INT8" default="true" />
|
||||
<dbType type="BIGSERIAL" />
|
||||
</talendType>
|
||||
<talendType type="id_Object">
|
||||
<dbType type="_POINT" />
|
||||
<dbType type="_POLYGON" />
|
||||
<dbType type="_FLOAT4" />
|
||||
<dbType type="_REFCURSOR" />
|
||||
<dbType type="_REGCLASS" />
|
||||
<dbType type="_REGOPER" />
|
||||
<dbType type="_REGOPERATOR" />
|
||||
<dbType type="_REGPROC" />
|
||||
<dbType type="_REGPROCEDURE" />
|
||||
<dbType type="_REGTYPE" />
|
||||
<dbType type="_RELTIME" />
|
||||
<dbType type="_TEXT" />
|
||||
<dbType type="_TID" />
|
||||
<dbType type="_TIMETZ" />
|
||||
<dbType type="_TIME" />
|
||||
<dbType type="_TIMESTAMPTZ" />
|
||||
<dbType type="_TIMESTAMP" />
|
||||
<dbType type="_TINTERVAL" />
|
||||
<dbType type="_XID" />
|
||||
<dbType type="ACLITEM" />
|
||||
<dbType type="BYTEA" />
|
||||
<dbType type="CID" />
|
||||
<dbType type="CIDR" />
|
||||
<dbType type="CIRCLE" />
|
||||
<dbType type="INET" />
|
||||
<dbType type="MACADDR" />
|
||||
<dbType type="MONEY" />
|
||||
<dbType type="OID" />
|
||||
<dbType type="PATH" />
|
||||
<dbType type="POLYGON" />
|
||||
<dbType type="REFCURSOR" />
|
||||
<dbType type="REGCLASS" />
|
||||
<dbType type="REGOPER" />
|
||||
<dbType type="REGOPERATOR" />
|
||||
<dbType type="REGPROC" />
|
||||
<dbType type="REGPROCEDURE" />
|
||||
<dbType type="REGTYPE" />
|
||||
<dbType type="SMGR" />
|
||||
<dbType type="TID" />
|
||||
<dbType type="XID" />
|
||||
<dbType type="_CHAR" />
|
||||
<dbType type="_ABSTIME" />
|
||||
<dbType type="_ACLITEM" />
|
||||
<dbType type="_INT8" />
|
||||
<dbType type="_VARBIT" />
|
||||
<dbType type="_BIT" />
|
||||
<dbType type="_BOOL" />
|
||||
<dbType type="BOX" />
|
||||
<dbType type="_BOX" />
|
||||
<dbType type="_BYTEA" />
|
||||
<dbType type="_VARCHAR" />
|
||||
<dbType type="_BPCHAR" />
|
||||
<dbType type="_CID" />
|
||||
<dbType type="_CIDR" />
|
||||
<dbType type="_CIRCLE" />
|
||||
<dbType type="_DATE" />
|
||||
<dbType type="_FLOAT8" />
|
||||
<dbType type="_INET" />
|
||||
<dbType type="INT2VECTOR" />
|
||||
<dbType type="_INT2VECTOR" />
|
||||
<dbType type="_INT4" />
|
||||
<dbType type="_INTERVAL" />
|
||||
<dbType type="LINE" />
|
||||
<dbType type="_LINE" />
|
||||
<dbType type="LSEG" />
|
||||
<dbType type="_LSEG" />
|
||||
<dbType type="_MACADDR" />
|
||||
<dbType type="_MONEY" />
|
||||
<dbType type="NAME" />
|
||||
<dbType type="_NAME" />
|
||||
<dbType type="_NUMERIC" />
|
||||
<dbType type="_OID" />
|
||||
<dbType type="OIDVECTOR" />
|
||||
<dbType type="_OIDVECTOR" />
|
||||
<dbType type="_PATH" />
|
||||
<dbType type="POINT" default="true" />
|
||||
</talendType>
|
||||
<talendType type="id_Short">
|
||||
<dbType type="INT2" default="true" />
|
||||
<dbType type="INT4" />
|
||||
<dbType type="SERIAL" />
|
||||
<dbType type="INT8" />
|
||||
<dbType type="BIGSERIAL" />
|
||||
</talendType>
|
||||
<talendType type="id_String">
|
||||
<dbType type="BPCHAR" />
|
||||
<dbType type="VARCHAR" default="true" />
|
||||
<dbType type="TEXT" />
|
||||
</talendType>
|
||||
</talendToDbTypes>
|
||||
<dbToTalendTypes>
|
||||
<dbType type="INT2" >
|
||||
<talendType type="id_Short" default="true" />
|
||||
</dbType>
|
||||
<dbType type="INT4" >
|
||||
<talendType type="id_Integer" default="true" />
|
||||
</dbType>
|
||||
<dbType type="SERIAL" >
|
||||
<talendType type="id_Integer" default="true" />
|
||||
</dbType>
|
||||
<dbType type="INT8" >
|
||||
<talendType type="id_Long" default="true" />
|
||||
</dbType>
|
||||
<dbType type="BIGSERIAL" >
|
||||
<talendType type="id_Long" default="true" />
|
||||
</dbType>
|
||||
<dbType type="FLOAT4" >
|
||||
<talendType type="id_Float" default="true" />
|
||||
<talendType type="id_BigDecimal"/>
|
||||
</dbType>
|
||||
<dbType type="FLOAT8" >
|
||||
<talendType type="id_Double" default="true" />
|
||||
<talendType type="id_BigDecimal"/>
|
||||
</dbType>
|
||||
<dbType type="NUMERIC">
|
||||
<talendType type="id_Double"/>
|
||||
<talendType type="id_BigDecimal" default="true"/>
|
||||
</dbType>
|
||||
<dbType type="BOOL" >
|
||||
<talendType type="id_Boolean" default="true" />
|
||||
</dbType>
|
||||
<dbType type="BIT" >
|
||||
<talendType type="id_byte[]" default="true" />
|
||||
</dbType>
|
||||
<dbType type="VARBIT" >
|
||||
<talendType type="id_byte[]" default="true" />
|
||||
</dbType>
|
||||
<dbType type="CHAR" >
|
||||
<talendType type="id_String" default="true" />
|
||||
</dbType>
|
||||
<dbType type="BPCHAR" >
|
||||
<talendType type="id_String" default="true" />
|
||||
</dbType>
|
||||
<dbType type="VARCHAR" >
|
||||
<talendType type="id_String" default="true" />
|
||||
</dbType>
|
||||
<dbType type="TEXT" >
|
||||
<talendType type="id_String" default="true" />
|
||||
</dbType>
|
||||
<dbType type="DATE" >
|
||||
<talendType type="id_Date" default="true" />
|
||||
</dbType>
|
||||
<dbType type="ABSTIME" >
|
||||
<talendType type="id_Date" default="true" />
|
||||
</dbType>
|
||||
<dbType type="TIMETZ" >
|
||||
<talendType type="id_Date" default="true" />
|
||||
</dbType>
|
||||
<dbType type="TIME" >
|
||||
<talendType type="id_Date" default="true" />
|
||||
</dbType>
|
||||
<dbType type="TIMESTAMPTZ" >
|
||||
<talendType type="id_Date" default="true" />
|
||||
</dbType>
|
||||
<dbType type="TIMESTAMP" >
|
||||
<talendType type="id_Date" default="true" />
|
||||
</dbType>
|
||||
<dbType type="INTERVAL" >
|
||||
<talendType type="id_Date" default="true" />
|
||||
</dbType>
|
||||
<dbType type="TINTERVAL" >
|
||||
<talendType type="id_Date" default="true" />
|
||||
</dbType>
|
||||
<dbType type="RELTIME" >
|
||||
<talendType type="id_Date" default="true" />
|
||||
</dbType>
|
||||
<dbType type="ACLITEM" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="BYTEA" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="CID" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="CIDR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="CIRCLE" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="INET" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="MACADDR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="MONEY" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="OID" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="PATH" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="POLYGON" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="REFCURSOR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="REGCLASS" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="REGOPER" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="REGOPERATOR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="REGPROC" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="REGPROCEDURE" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="REGTYPE" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="SMGR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="TID" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="XID" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="BOX" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="INT2VECTOR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="LINE" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="LSEG" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="NAME" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="OIDVECTOR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="POINT" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<!-- object -->
|
||||
<dbType type="_OIDVECTOR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_PATH" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_NAME" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_NUMERIC" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_OID" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_LSEG" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_MACADDR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_MONEY" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_LINE" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_INT2VECTOR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_INT4" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_INTERVAL" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_BOX" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_BYTEA" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_VARCHAR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_BPCHAR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_CID" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_CIDR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_CIRCLE" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_DATE" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_FLOAT8" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_INET" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_CHAR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_ABSTIME" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_ACLITEM" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_INT8" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_VARBIT" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_BIT" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_BOOL" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_POINT" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_POLYGON" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_FLOAT4" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_REFCURSOR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_REGCLASS" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_REGOPER" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_REGOPERATOR" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_REGPROC" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_REGPROCEDURE" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_REGTYPE" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_RELTIME" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_TEXT" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_TID" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_TIMETZ" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_TIME" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_TIMESTAMPTZ" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_TIMESTAMP" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_TINTERVAL" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
<dbType type="_XID" >
|
||||
<talendType type="id_Object" default="true" />
|
||||
</dbType>
|
||||
</dbToTalendTypes>
|
||||
</language>
|
||||
</dbms>
|
||||
|
||||
</mapping>
|
||||
@@ -43,9 +43,9 @@
|
||||
<dbType type="BIT" default="true" />
|
||||
</talendType>
|
||||
<talendType type="id_Byte">
|
||||
<dbType type="TINYINT" default="true" />
|
||||
<dbType type="INT" default="true" />
|
||||
<dbType type="BIGINT" />
|
||||
<dbType type="INT" />
|
||||
<dbType type="TINYINT" />
|
||||
<dbType type="SMALLINT" />
|
||||
</talendType>
|
||||
<talendType type="id_byte[]">
|
||||
@@ -204,8 +204,8 @@
|
||||
<talendType type="id_Date" default="true" />
|
||||
</dbType>
|
||||
<dbType type="TINYINT">
|
||||
<talendType type="id_Byte" default="true" />
|
||||
<talendType type="id_Integer"/>
|
||||
<talendType type="id_Integer" default="true" />
|
||||
<talendType type="id_Byte"/>
|
||||
<talendType type="id_Long"/>
|
||||
<talendType type="id_Short"/>
|
||||
</dbType>
|
||||
|
||||
@@ -49,11 +49,15 @@ tDqReportRun=java.base/java.lang,java.base/java.nio
|
||||
tWebService=java.base/java.lang
|
||||
tWebServiceInput=java.base/java.lang
|
||||
|
||||
tRESTClient=java.base/sun.net.www.protocol.https,java.base/java.net
|
||||
|
||||
# TCK framework
|
||||
TCK_COMMON_ARGS=java.base/java.io,java.base/java.lang.invoke,java.base/java.lang.reflect,java.base/java.lang,java.base/java.net,java.base/java.nio,java.base/java.util,java.base/sun.nio.ch
|
||||
TCK_COMMON_ARGS=java.base/java.io,java.base/java.lang.invoke,java.base/java.lang.reflect,java.base/java.lang,java.base/java.net,java.base/java.nio,java.base/java.util,java.base/sun.nio.ch,java.base/sun.net.www.protocol.https
|
||||
|
||||
# BigData distribution
|
||||
SPARK_3_4_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
|
||||
SPARK_3_3_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
|
||||
SPARK_3_2_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
|
||||
SPARK_3_1_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
|
||||
SPARK_3_0_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
|
||||
SPARK_2_4_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
|
||||
|
||||
@@ -26,26 +26,12 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.jobs.Job;
|
||||
import org.eclipse.jface.dialogs.Dialog;
|
||||
import org.eclipse.jface.dialogs.IDialogConstants;
|
||||
import org.eclipse.jface.dialogs.MessageDialog;
|
||||
import org.eclipse.jface.widgets.WidgetFactory;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.SelectionAdapter;
|
||||
import org.eclipse.swt.events.SelectionEvent;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.layout.GridLayout;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Link;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
import org.talend.commons.report.ItemsReportUtil;
|
||||
import org.talend.commons.utils.io.FilesUtils;
|
||||
import org.talend.commons.report.ReportAccessDialog;
|
||||
import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.model.general.Project;
|
||||
import org.talend.core.model.properties.Item;
|
||||
@@ -175,8 +161,10 @@ public class ItemAnalysisReportManager {
|
||||
boolean generateSuccess = ItemsReportUtil.generateReportFile(reportFile, ANALYSIS_REPORT_HEAD, recordLines);
|
||||
if (generateSuccess) {
|
||||
Display.getDefault().asyncExec(() -> {
|
||||
AnalysisReportAccessDialog accessDialog = new AnalysisReportAccessDialog(
|
||||
ReportAccessDialog accessDialog = new ReportAccessDialog(
|
||||
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
|
||||
Messages.getString("AnalysisReportAccessDialog.shellTitle"),
|
||||
Messages.getString("AnalysisReportAccessDialog.generateSuccess"),
|
||||
reportFile.getAbsolutePath());
|
||||
accessDialog.open();
|
||||
});
|
||||
@@ -240,76 +228,3 @@ public class ItemAnalysisReportManager {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class AnalysisReportAccessDialog extends Dialog {
|
||||
|
||||
private String reportGeneratedFile;
|
||||
|
||||
protected AnalysisReportAccessDialog(Shell parentShell, String reportGeneratedFile) {
|
||||
super(parentShell);
|
||||
this.reportGeneratedFile = reportGeneratedFile;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureShell(Shell newShell) {
|
||||
super.configureShell(newShell);
|
||||
newShell.setText(Messages.getString("AnalysisReportAccessDialog.shellTitle"));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initializeBounds() {
|
||||
getShell().setSize(700, 190);
|
||||
Point location = getInitialLocation(getShell().getSize());
|
||||
getShell().setLocation(location.x, location.y);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Control createDialogArea(Composite parent) {
|
||||
GridLayout layout = new GridLayout();
|
||||
layout.marginWidth = 0;
|
||||
layout.marginHeight = 0;
|
||||
Composite container = WidgetFactory.composite(SWT.NONE).layout(layout).layoutData(new GridData(GridData.FILL_BOTH))
|
||||
.create(parent);
|
||||
applyDialogFont(container);
|
||||
|
||||
Composite composite = new Composite(container, SWT.NONE);
|
||||
GridLayout compositeLayout = new GridLayout();
|
||||
compositeLayout.numColumns = 1;
|
||||
compositeLayout.marginWidth = 0;
|
||||
compositeLayout.marginTop = 8;
|
||||
compositeLayout.marginLeft = 10;
|
||||
composite.setLayout(compositeLayout);
|
||||
Label successMsgLabel = new Label(composite, SWT.NONE);
|
||||
successMsgLabel.setText(Messages.getString("AnalysisReportAccessDialog.generateSuccess"));
|
||||
GridData gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL);
|
||||
successMsgLabel.setLayoutData(gridData);
|
||||
|
||||
Link accessLink = new Link(composite, SWT.NONE);
|
||||
accessLink.setText(Messages.getString("AnalysisReportAccessDialog.completeReportAvailable") + " <a>"
|
||||
+ Messages.getString("AnalysisReportAccessDialog.accessReport") + "</a> ");
|
||||
accessLink.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL));
|
||||
accessLink.addSelectionListener(new SelectionAdapter() {
|
||||
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
File reportFile = new File(reportGeneratedFile);
|
||||
if (reportFile != null && reportFile.exists()) {
|
||||
try {
|
||||
FilesUtils.selectFileInSystemExplorer(reportFile);
|
||||
} catch (Exception excep) {
|
||||
ExceptionHandler.process(excep);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
return container;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createButtonsForButtonBar(Composite parent) {
|
||||
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2023 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.report;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.eclipse.jface.dialogs.Dialog;
|
||||
import org.eclipse.jface.dialogs.IDialogConstants;
|
||||
import org.eclipse.jface.widgets.WidgetFactory;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.SelectionAdapter;
|
||||
import org.eclipse.swt.events.SelectionEvent;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
import org.eclipse.swt.layout.FormAttachment;
|
||||
import org.eclipse.swt.layout.FormData;
|
||||
import org.eclipse.swt.layout.FormLayout;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.layout.GridLayout;
|
||||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
import org.talend.commons.utils.io.FilesUtils;
|
||||
import org.talend.core.runtime.i18n.Messages;
|
||||
|
||||
/**
|
||||
* DOC jding class global comment. Detailled comment
|
||||
*/
|
||||
public class ReportAccessDialog extends Dialog {
|
||||
|
||||
private String shellTitle;
|
||||
|
||||
private String message;
|
||||
|
||||
private String reportGeneratedFile;
|
||||
|
||||
public ReportAccessDialog(Shell parentShell, String shellTitle, String message, String reportGeneratedFile) {
|
||||
super(parentShell);
|
||||
this.shellTitle = shellTitle;
|
||||
this.message = message;
|
||||
this.reportGeneratedFile = reportGeneratedFile;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureShell(Shell newShell) {
|
||||
super.configureShell(newShell);
|
||||
newShell.setText(shellTitle);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initializeBounds() {
|
||||
getShell().setSize(700, 190);
|
||||
Point location = getInitialLocation(getShell().getSize());
|
||||
getShell().setLocation(location.x, location.y);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Control createDialogArea(Composite parent) {
|
||||
GridLayout layout = new GridLayout();
|
||||
layout.marginWidth = 0;
|
||||
layout.marginHeight = 0;
|
||||
Composite container = WidgetFactory.composite(SWT.NONE).layout(layout).layoutData(new GridData(GridData.FILL_BOTH))
|
||||
.create(parent);
|
||||
applyDialogFont(container);
|
||||
|
||||
Composite composite = new Composite(container, SWT.NONE);
|
||||
GridLayout compositeLayout = new GridLayout();
|
||||
compositeLayout.numColumns = 1;
|
||||
compositeLayout.marginWidth = 0;
|
||||
compositeLayout.marginTop = 8;
|
||||
compositeLayout.marginLeft = 10;
|
||||
composite.setLayout(compositeLayout);
|
||||
Label successMsgLabel = new Label(composite, SWT.NONE);
|
||||
successMsgLabel.setText(message);
|
||||
GridData gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL);
|
||||
successMsgLabel.setLayoutData(gridData);
|
||||
|
||||
Composite noteComp = new Composite(composite, SWT.NONE);
|
||||
noteComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
|
||||
noteComp.setLayout(new FormLayout());
|
||||
Label noteLabel = new Label(noteComp, SWT.NONE);
|
||||
noteLabel.setText(Messages.getString("AnalysisReportAccessDialog.completeReportAvailable"));
|
||||
FormData noteLabelFormData = new FormData();
|
||||
noteLabelFormData.bottom = new FormAttachment(100, -5);
|
||||
noteLabelFormData.left = new FormAttachment(0, 0);
|
||||
noteLabel.setLayoutData(noteLabelFormData);
|
||||
Button browseBtn = new Button(noteComp, SWT.NONE);
|
||||
browseBtn.setText(Messages.getString("AnalysisReportAccessDialog.accessBrowse"));
|
||||
FormData linkFormData = new FormData();
|
||||
linkFormData.top = new FormAttachment(0, 0);
|
||||
linkFormData.left = new FormAttachment(noteLabel, 5);
|
||||
browseBtn.setLayoutData(linkFormData);
|
||||
browseBtn.addSelectionListener(new SelectionAdapter() {
|
||||
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
File reportFile = new File(reportGeneratedFile);
|
||||
if (reportFile != null && reportFile.exists()) {
|
||||
try {
|
||||
FilesUtils.selectFileInSystemExplorer(reportFile);
|
||||
} catch (Exception excep) {
|
||||
ExceptionHandler.process(excep);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
return container;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createButtonsForButtonBar(Composite parent) {
|
||||
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -39,6 +39,9 @@ import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.runtime.CoreRuntimePlugin;
|
||||
import org.talend.core.runtime.projectsetting.ProjectPreferenceManager;
|
||||
import org.talend.designer.runprocess.IRunProcessService;
|
||||
import org.talend.utils.JavaVersion;
|
||||
import org.talend.utils.StudioKeysFileCheck;
|
||||
import org.talend.utils.VersionException;
|
||||
|
||||
/**
|
||||
* Utilities around perl stuff. <br/>
|
||||
@@ -248,7 +251,7 @@ public final class JavaUtils {
|
||||
setProjectJavaVserion(javaVersion);
|
||||
applyCompilerCompliance(javaVersion);
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IRunProcessService.class)) {
|
||||
IRunProcessService service = (IRunProcessService) GlobalServiceRegister.getDefault().getService(IRunProcessService.class);
|
||||
IRunProcessService service = GlobalServiceRegister.getDefault().getService(IRunProcessService.class);
|
||||
service.updateProjectPomWithTemplate();
|
||||
}
|
||||
}
|
||||
@@ -284,6 +287,10 @@ public final class JavaUtils {
|
||||
if (version == null) {
|
||||
return defaultCompliance;
|
||||
}
|
||||
JavaVersion ver = new JavaVersion(version);
|
||||
if (ver.getMajor() > 8) {
|
||||
return String.valueOf(ver.getMajor());
|
||||
}
|
||||
if (version.startsWith(JavaCore.VERSION_1_8)) {
|
||||
return JavaCore.VERSION_1_8;
|
||||
}
|
||||
@@ -364,5 +371,39 @@ public final class JavaUtils {
|
||||
monitor.worked(1);
|
||||
}
|
||||
}
|
||||
|
||||
public static void validateJavaVersion() {
|
||||
try {
|
||||
// validate jvm which is used to start studio
|
||||
StudioKeysFileCheck.validateJavaVersion();
|
||||
|
||||
// validate default complier's compliance level
|
||||
IVMInstall install = JavaRuntime.getDefaultVMInstall();
|
||||
String ver = getCompilerCompliance((IVMInstall2) install, JavaCore.VERSION_1_8);
|
||||
if (new JavaVersion(ver).compareTo(new JavaVersion(StudioKeysFileCheck.JAVA_VERSION_MAXIMUM_STRING)) > 0) {
|
||||
VersionException e = new VersionException(VersionException.ERR_JAVA_VERSION_NOT_SUPPORTED,
|
||||
"The maximum Java version supported by Studio is " + StudioKeysFileCheck.JAVA_VERSION_MAXIMUM_STRING + ". Your compiler's compliance level is " + ver);
|
||||
throw e;
|
||||
}
|
||||
} catch (Exception e1) {
|
||||
if (e1 instanceof VersionException) {
|
||||
throw e1;
|
||||
}
|
||||
ExceptionHandler.process(e1);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isJava17() {
|
||||
boolean isJava17 = false;
|
||||
String javaVersion = System.getProperty("java.version");
|
||||
String[] arr = javaVersion.split("[^\\d]+");
|
||||
try {
|
||||
isJava17 = Integer.parseInt(arr[0]) >= 17;
|
||||
} catch (NumberFormatException e) {
|
||||
ExceptionHandler.process(e);
|
||||
isJava17 = false;
|
||||
}
|
||||
return isJava17;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -54,4 +54,6 @@ public interface ILibraryManagerUIService extends IService {
|
||||
public boolean confirmDialog(String originalJarFileName);
|
||||
|
||||
public IConfigModuleDialog getConfigModuleDialog(Shell parentShell, String initValue, boolean allowDetectDependencies);
|
||||
|
||||
public String getLicenseUrlByName(String licenceName);
|
||||
}
|
||||
|
||||
@@ -60,8 +60,6 @@ public interface ITDQRepositoryService extends IService {
|
||||
*/
|
||||
public void notifySQLExplorer(Item... items);
|
||||
|
||||
public void fillMetadata(ConnectionItem connItem);
|
||||
|
||||
public void refresh();
|
||||
|
||||
// Added 20120503 yyin
|
||||
|
||||
@@ -43,6 +43,8 @@ public class PluginChecker {
|
||||
private static final String CDC_PLUGIN_ID = "org.talend.designer.cdc"; //$NON-NLS-1$
|
||||
|
||||
private static final String SAP_WZIARD_PLUGIN_ID = "org.talend.repository.sap"; //$NON-NLS-1$
|
||||
|
||||
private static final String BIGQUERY_WZIARD_PLUGIN_ID = "org.talend.repository.bigquery"; //$NON-NLS-1$
|
||||
|
||||
private static final String EBCDIC_PLUGIN_ID = "org.talend.repository.ebcdic"; //$NON-NLS-1$
|
||||
|
||||
@@ -246,6 +248,10 @@ public class PluginChecker {
|
||||
public static boolean isSAPWizardPluginLoaded() {
|
||||
return isPluginLoaded(SAP_WZIARD_PLUGIN_ID);
|
||||
}
|
||||
|
||||
public static boolean isBigQueryWizardPluginLoaded() {
|
||||
return isPluginLoaded(BIGQUERY_WZIARD_PLUGIN_ID);
|
||||
}
|
||||
|
||||
public static boolean isEBCDICPluginLoaded() {
|
||||
return isPluginLoaded(EBCDIC_PLUGIN_ID);
|
||||
@@ -267,10 +273,6 @@ public class PluginChecker {
|
||||
return isPluginLoaded(MDM_PLUGIN_ID);
|
||||
}
|
||||
|
||||
public static boolean isExchangeSystemLoaded() {
|
||||
return isPluginLoaded(EXCHANGE_SYSTEM_PLUGIN_ID);
|
||||
}
|
||||
|
||||
public static boolean isRulesPluginLoaded() { // added by hyWang
|
||||
return isPluginLoaded(RULES_PLUGIN_ID);
|
||||
}
|
||||
|
||||
@@ -52,6 +52,7 @@ public enum EDatabase4DriverClassName {
|
||||
MYSQL8(EDatabaseTypeName.MYSQL, "com.mysql.cj.jdbc.Driver"), //$NON-NLS-1$
|
||||
MARIADB(EDatabaseTypeName.MYSQL, "org.mariadb.jdbc.Driver"), //$NON-NLS-1$
|
||||
AMAZON_AURORA(EDatabaseTypeName.AMAZON_AURORA, "org.gjt.mm.mysql.Driver"), //$NON-NLS-1$
|
||||
AMAZON_AURORA_3(EDatabaseTypeName.AMAZON_AURORA, "com.mysql.cj.jdbc.Driver"), //$NON-NLS-1$
|
||||
NETEZZA(EDatabaseTypeName.NETEZZA, "org.netezza.Driver"), //$NON-NLS-1$
|
||||
|
||||
ORACLEFORSID(EDatabaseTypeName.ORACLEFORSID, "oracle.jdbc.OracleDriver", "oracle.jdbc.driver.OracleDriver"), //$NON-NLS-1$ //$NON-NLS-2$
|
||||
@@ -65,7 +66,6 @@ public enum EDatabase4DriverClassName {
|
||||
// Take care, PSQL is set as first here since actually the audit will take the first db with the postgresql driver
|
||||
// if change the order, it might break the audit for PSQL.
|
||||
PSQL(EDatabaseTypeName.PSQL, "org.postgresql.Driver"), //$NON-NLS-1$
|
||||
PLUSPSQL(EDatabaseTypeName.PLUSPSQL, "org.postgresql.Driver"), //$NON-NLS-1$
|
||||
GREENPLUM(EDatabaseTypeName.GREENPLUM, "com.pivotal.jdbc.GreenplumDriver"), //$NON-NLS-1$
|
||||
GREENPLUM_PSQL(EDatabaseTypeName.GREENPLUM, "org.postgresql.Driver"), //$NON-NLS-1$
|
||||
SAS(EDatabaseTypeName.SAS, "com.sas.rio.MVADriver"), //$NON-NLS-1$
|
||||
@@ -87,8 +87,8 @@ public enum EDatabase4DriverClassName {
|
||||
// MOD klliu 2010-06-04 bug 12819: upgrade jdbc driver class used in sql explorer
|
||||
TERADATA(EDatabaseTypeName.TERADATA, "com.teradata.jdbc.TeraDriver"), //$NON-NLS-1$
|
||||
|
||||
VERTICA(EDatabaseTypeName.VERTICA, "com.vertica.Driver"), //$NON-NLS-1$
|
||||
VERTICA2(EDatabaseTypeName.VERTICA, "com.vertica.jdbc.Driver"), //$NON-NLS-1$
|
||||
// VERTICA(EDatabaseTypeName.VERTICA, "com.vertica.Driver"), //$NON-NLS-1$
|
||||
VERTICA(EDatabaseTypeName.VERTICA, "com.vertica.jdbc.Driver"), //$NON-NLS-1$
|
||||
|
||||
HIVE(EDatabaseTypeName.HIVE, "org.apache.hadoop.hive.jdbc.HiveDriver"), //$NON-NLS-1$
|
||||
|
||||
|
||||
@@ -118,6 +118,7 @@ public enum EDatabaseTypeName {
|
||||
// General JDBC not support schema defalut
|
||||
GENERAL_JDBC(
|
||||
"General JDBC", "General JDBC", Boolean.FALSE, "JDBC", EDatabaseSchemaOrCatalogMapping.Sid, EDatabaseSchemaOrCatalogMapping.None), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
|
||||
EXASOL(
|
||||
"Exasol", "Exasol", Boolean.TRUE, "Exasol", EDatabaseSchemaOrCatalogMapping.Sid, EDatabaseSchemaOrCatalogMapping.None), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
|
||||
|
||||
@@ -252,6 +252,8 @@ public class ConnParameterKeys {
|
||||
|
||||
public static final String CONN_PARA_KEY_EXECUTOR_MEMORY = "CONN_PARA_KEY_EXECUTOR_MEMORY"; //$NON-NLS-1$
|
||||
|
||||
public static final String CONN_PARA_KEY_EXECUTOR_CORES = "CONN_PARA_KEY_EXECUTOR_CORES";
|
||||
|
||||
public static final String CONN_PARA_KEY_TUNING_PROPERTIES = "CONN_PARA_KEY_TUNING_PROPERTIES"; //$NON-NLS-1$
|
||||
|
||||
/******************************************/
|
||||
@@ -453,6 +455,9 @@ public class ConnParameterKeys {
|
||||
public static final String CONN_PARA_KEY_UNIV_STANDALONE_EXEC_MEMORY="CONN_PARA_KEY_UNIV_STANDALONE_EXEC_MEMORY";
|
||||
public static final String CONN_PARA_KEY_UNIV_STANDALONE_EXEC_CORE="CONN_PARA_KEY_UNIV_STANDALONE_EXEC_CORE";
|
||||
|
||||
|
||||
// Spark Submit Scripts
|
||||
public static final String CONN_PARA_KEY_UNIV_SPARK_SUBMIT_SCRIPT_HOME="CONN_PARA_KEY_UNIV_SPARK_SUBMIT_SCRIPT_HOME";
|
||||
/**
|
||||
* Redshift
|
||||
*/
|
||||
|
||||
@@ -49,10 +49,6 @@ public enum EDatabaseConnTemplate {
|
||||
"jdbc:postgresql://<host>:<port>/<sid>?<property>", //$NON-NLS-1$
|
||||
"5432")), //$NON-NLS-1$
|
||||
|
||||
PLUSPSQL(new DbConnStr(EDatabaseTypeName.PLUSPSQL, //
|
||||
"jdbc:postgresql://<host>:<port>/<sid>?<property>", //$NON-NLS-1$
|
||||
"5432")), //$NON-NLS-1$
|
||||
|
||||
GREENPLUM(new DbConnStr(EDatabaseTypeName.GREENPLUM, //
|
||||
"jdbc:pivotal:greenplum://<host>:<port>;;DatabaseName=<sid>;<property>", //$NON-NLS-1$
|
||||
"5432")), //$NON-NLS-1$
|
||||
@@ -382,7 +378,6 @@ public enum EDatabaseConnTemplate {
|
||||
case ORACLE_OCI:
|
||||
case ORACLE_CUSTOM:
|
||||
case PSQL:
|
||||
case PLUSPSQL:
|
||||
case GREENPLUM:
|
||||
case REDSHIFT:
|
||||
case REDSHIFT_SSO:
|
||||
@@ -426,7 +421,6 @@ public enum EDatabaseConnTemplate {
|
||||
case REDSHIFT_SSO:
|
||||
case SAPHana:
|
||||
case PSQL:
|
||||
case PLUSPSQL:
|
||||
case GREENPLUM:
|
||||
case INGRES:
|
||||
case VECTORWISE:
|
||||
@@ -470,7 +464,6 @@ public enum EDatabaseConnTemplate {
|
||||
case HSQLDB_IN_PROGRESS:
|
||||
case MAXDB:
|
||||
case PSQL:
|
||||
case PLUSPSQL:
|
||||
return true;
|
||||
default:
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import org.talend.core.database.EDatabaseTypeName;
|
||||
*/
|
||||
public class DbVersion4DriversForOracle11 extends DbVersion4Drivers {
|
||||
|
||||
public static final String DRIVER_1_6 = "ojdbc6.jar"; //$NON-NLS-1$
|
||||
public static final String DRIVER_1_6 = "ojdbc6-11.2.0.4.jar"; //$NON-NLS-1$
|
||||
|
||||
public static final String DRIVER_1_5 = "ojdbc5.jar"; //$NON-NLS-1$
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ public enum EDatabaseVersion4Drivers {
|
||||
ACCESS_2007(new DbVersion4Drivers(EDatabaseTypeName.ACCESS, "Access 2007", "Access_2007")), //$NON-NLS-1$ //$NON-NLS-2$
|
||||
// oracle
|
||||
ORACLE_18(new DbVersion4Drivers(new EDatabaseTypeName[] { EDatabaseTypeName.ORACLEFORSID, EDatabaseTypeName.ORACLESN,
|
||||
EDatabaseTypeName.ORACLE_OCI, EDatabaseTypeName.ORACLE_CUSTOM }, "Oracle 18 and above", "ORACLE_18", "ojdbc8-19.3.0.0.jar")),
|
||||
EDatabaseTypeName.ORACLE_OCI, EDatabaseTypeName.ORACLE_CUSTOM }, "Oracle 18 and above", "ORACLE_18", "ojdbc8-19.19.0.0.jar")),
|
||||
ORACLE_12(new DbVersion4Drivers(new EDatabaseTypeName[] { EDatabaseTypeName.ORACLEFORSID, EDatabaseTypeName.ORACLESN,
|
||||
EDatabaseTypeName.ORACLE_OCI, EDatabaseTypeName.ORACLE_CUSTOM }, "Oracle 12 (Deprecated)", "ORACLE_12",
|
||||
"ojdbc7.jar")),
|
||||
@@ -54,12 +54,12 @@ public enum EDatabaseVersion4Drivers {
|
||||
H2(new DbVersion4Drivers(EDatabaseTypeName.H2, "h2-2.1.214.jar")), //$NON-NLS-1$
|
||||
|
||||
//
|
||||
JAVADB_EMBEDED(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_EMBEDED, "derby.jar")), //$NON-NLS-1$
|
||||
JAVADB_EMBEDED(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_EMBEDED, "derby-10.14.2.0.jar")), //$NON-NLS-1$
|
||||
SQLITE(new DbVersion4Drivers(EDatabaseTypeName.SQLITE, "sqlite-jdbc-3.40.0.0.jar")), //$NON-NLS-1$
|
||||
FIREBIRD(new DbVersion4Drivers(EDatabaseTypeName.FIREBIRD, "jaybird-full-2.1.1.jar")), //$NON-NLS-1$
|
||||
FIREBIRD(new DbVersion4Drivers(EDatabaseTypeName.FIREBIRD, "jaybird-2.1.1.jar")), //$NON-NLS-1$
|
||||
TERADATA(new DbVersion4Drivers(EDatabaseTypeName.TERADATA,
|
||||
new String[] { "terajdbc4-17.10.00.27.jar" })), //$NON-NLS-1$
|
||||
JAVADB_DERBYCLIENT(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_DERBYCLIENT, "derbyclient.jar")), //$NON-NLS-1$
|
||||
JAVADB_DERBYCLIENT(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_DERBYCLIENT, "derbyclient-10.14.2.0.jar")), //$NON-NLS-1$
|
||||
NETEZZA(new DbVersion4Drivers(EDatabaseTypeName.NETEZZA, "nzjdbc.jar")), //$NON-NLS-1$
|
||||
INFORMIX(new DbVersion4Drivers(EDatabaseTypeName.INFORMIX, "ifxjdbc.jar")), //$NON-NLS-1$
|
||||
|
||||
@@ -69,9 +69,9 @@ public enum EDatabaseVersion4Drivers {
|
||||
"SAS 9.2", "SAS_9.2", new String[] { "sas.core.jar", "sas.security.sspi.jar", "sas.svc.connection.jar", "reload4j-1.2.22.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
|
||||
SAPHana(new DbVersion4Drivers(EDatabaseTypeName.SAPHana, "HDB 1.0", "HDB_1_0", "ngdbc.jar")), //$NON-NLS-1$
|
||||
// MYSQL, add for 9594
|
||||
MYSQL_8(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MySQL 8", "MYSQL_8", "mysql-connector-java-8.0.18.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
MYSQL_8(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MySQL 8", "MYSQL_8", "mysql-connector-j-8.0.33.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
MYSQL_5(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MySQL 5", "MYSQL_5", "mysql-connector-java-5.1.49.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
MARIADB(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MariaDB", "MARIADB", "mariadb-java-client-2.5.3.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
MARIADB(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MariaDB", "MARIADB", "mariadb-java-client-3.1.4.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
// add for 9594
|
||||
MSSQL(new DbVersion4Drivers(EDatabaseTypeName.MSSQL,"Open source JTDS", "JTDS", "jtds-1.3.1-patch-20190523.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
MSSQL_2012(new DbVersion4Drivers(EDatabaseTypeName.MSSQL,
|
||||
@@ -79,23 +79,23 @@ public enum EDatabaseVersion4Drivers {
|
||||
MSSQL_PROP(new DbVersion4Drivers(EDatabaseTypeName.MSSQL,
|
||||
"Microsoft", "MSSQL_PROP", //$NON-NLS-1$ //$NON-NLS-2$
|
||||
new String[] { "mssql-jdbc.jar", "slf4j-api-1.7.34.jar", "slf4j-reload4j-1.7.34.jar", "msal4j-1.11.0.jar", //$NON-NLS-1$
|
||||
"oauth2-oidc-sdk-9.7.jar", "reload4j-1.2.22.jar", "jackson-core-2.13.4.jar",
|
||||
"jackson-databind-2.13.4.2.jar", "jackson-annotations-2.13.4.jar", "jcip-annotations-1.0-1.jar",
|
||||
"json-smart-2.4.7.jar", "nimbus-jose-jwt-9.22.jar", "accessors-smart-2.4.7.jar", "asm-9.1.jar",
|
||||
"oauth2-oidc-sdk-9.7.jar", "reload4j-1.2.22.jar", "jackson-core-2.14.3.jar",
|
||||
"jackson-databind-2.14.3.jar", "jackson-annotations-2.14.3.jar", "jcip-annotations-1.0-1.jar",
|
||||
"json-smart-2.4.11.jar", "nimbus-jose-jwt-9.22.jar", "accessors-smart-2.4.11.jar", "asm-9.5.jar",
|
||||
"content-type-2.1.jar", "lang-tag-1.5.jar" })),
|
||||
|
||||
VERTICA_9(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 9.X", "VERTICA_9_0", "vertica-jdbc-9.3.1-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
// VERTICA_9(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 9.X (Deprecated)", "VERTICA_9_0", "vertica-jdbc-9.3.1-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
|
||||
//https://mvnrepository.com/artifact/com.vertica.jdbc/vertica-jdbc/12.0.4-0
|
||||
VERTICA_12(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 12.X", "VERTICA_12_0", "vertica-jdbc-12.0.4-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
|
||||
// for bug 0017930
|
||||
GREENPLUM_PSQL(new DbVersion4Drivers(EDatabaseTypeName.GREENPLUM,"PostgreSQL", "POSTGRESQL", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$
|
||||
GREENPLUM(new DbVersion4Drivers(EDatabaseTypeName.GREENPLUM,"Greenplum", "GREENPLUM", "greenplum-5.1.4.000275.jar")), //$NON-NLS-1$
|
||||
// PSQL_V10(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "v10", "V10", "postgresql-42.2.5.jar")),
|
||||
PSQL_V9_X(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "v9 and later", "V9_X", "postgresql-42.2.26.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
PSQL_PRIOR_TO_V9(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "Prior to v9", "PRIOR_TO_V9", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
PSQL_V9_X(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "v9 and later", "V9_X", "postgresql-42.6.0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
PSQL_PRIOR_TO_V9(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "Prior to v9 (Deprecated)", "PRIOR_TO_V9", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
|
||||
PLUSPSQL_PRIOR_TO_V9(new DbVersion4Drivers(EDatabaseTypeName.PLUSPSQL,
|
||||
"Prior to v9", "PRIOR_TO_V9", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
PLUSPSQL_V9_X(new DbVersion4Drivers(EDatabaseTypeName.PLUSPSQL, "v9 and later", "V9_X", "postgresql-42.2.26.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
IBMDB2(new DbVersion4Drivers(EDatabaseTypeName.IBMDB2, new String[] { "db2jcc4.jar", "db2jcc_license_cu.jar", //$NON-NLS-1$ //$NON-NLS-2$
|
||||
"db2jcc_license_cisuz.jar" })), //$NON-NLS-1$
|
||||
IBMDB2ZOS(new DbVersion4Drivers(EDatabaseTypeName.IBMDB2ZOS, new String[] { "db2jcc4.jar", "db2jcc_license_cu.jar", //$NON-NLS-1$ //$NON-NLS-2$
|
||||
@@ -150,13 +150,16 @@ public enum EDatabaseVersion4Drivers {
|
||||
REDSHIFT(new DbVersion4Drivers(EDatabaseTypeName.REDSHIFT, "redshift", "REDSHIFT", //$NON-NLS-1$ //$NON-NLS-2$
|
||||
new String[]{ "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
|
||||
REDSHIFT_SSO(new DbVersion4Drivers(EDatabaseTypeName.REDSHIFT_SSO, "redshift sso", "REDSHIFT_SSO", //$NON-NLS-1$ //$NON-NLS-2$
|
||||
new String[] { "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar", "jackson-core-2.13.4.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
"jackson-databind-2.13.4.2.jar", "jackson-annotations-2.13.4.jar", "httpcore-4.4.13.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
"httpclient-4.5.13.jar", "joda-time-2.8.1.jar", "commons-logging-1.2.jar", "commons-codec-1.14.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
|
||||
new String[] { "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar", "jackson-core-2.14.3.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
"jackson-databind-2.14.3.jar", "jackson-annotations-2.14.3.jar", "httpcore-4.4.13.jar", "httpclient-4.5.13.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
|
||||
"joda-time-2.8.1.jar", "commons-logging-1.2.jar", "commons-codec-1.14.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
"aws-java-sdk-redshift-internal-1.12.x.jar", "aws-java-sdk-core-1.12.315.jar", //$NON-NLS-1$ //$NON-NLS-2$
|
||||
"aws-java-sdk-sts-1.12.315.jar", "aws-java-sdk-redshift-1.12.315.jar", "jmespath-java-1.12.315.jar" })), //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
|
||||
|
||||
AMAZON_AURORA(new DbVersion4Drivers(EDatabaseTypeName.AMAZON_AURORA, "mysql-connector-java-5.1.49.jar")); //$NON-NLS-1$
|
||||
AMAZON_AURORA(new DbVersion4Drivers(EDatabaseTypeName.AMAZON_AURORA, "MySQL 5", "MYSQL_5", //$NON-NLS-1$
|
||||
"mysql-connector-java-5.1.49.jar")),
|
||||
AMAZON_AURORA_3(new DbVersion4Drivers(EDatabaseTypeName.AMAZON_AURORA, "MySQL 8", "MYSQL_8", //$NON-NLS-1$
|
||||
"mysql-connector-j-8.0.33.jar"));
|
||||
|
||||
private DbVersion4Drivers dbVersionBean;
|
||||
|
||||
|
||||
@@ -15,8 +15,10 @@ package org.talend.core.hadoop;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.emf.common.util.EList;
|
||||
import org.eclipse.emf.common.util.EMap;
|
||||
import org.talend.commons.exception.CommonExceptionHandler;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
@@ -25,6 +27,9 @@ import org.talend.core.model.properties.Item;
|
||||
import org.talend.core.model.properties.Property;
|
||||
import org.talend.core.runtime.hd.IDynamicDistributionManager;
|
||||
import org.talend.core.runtime.i18n.Messages;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.NodeType;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.TalendFileFactory;
|
||||
|
||||
/**
|
||||
* created by cmeng on Jul 20, 2015 Detailled comment
|
||||
@@ -145,4 +150,58 @@ public class BigDataBasicUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static String getDistributionByVersion(String version) {
|
||||
if (StringUtils.isEmpty(version))
|
||||
return null;
|
||||
if (version.startsWith("EMR")) {
|
||||
return "AMAZON_EMR";
|
||||
} else if (version.equals("SYNAPSE")) {
|
||||
return "AZURE_SYNAPSE";
|
||||
} else if (version.contains("CDH") || version.contains("CDP")) {
|
||||
return "CLOUDERA";
|
||||
} else if (version.startsWith("Databricks")) {
|
||||
return "DATABRICKS";
|
||||
} else if (version.contains("HDP")) {
|
||||
return "HORTONWORKS";
|
||||
} else if (version.startsWith("MICROSOFT_HD_INSIGHT")) {
|
||||
return "MICROSOFT_HD_INSIGHT";
|
||||
} else if (version.startsWith("SPARK")) {
|
||||
return "SPARK";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void setDistribution(NodeType node, String dbVersionName) {
|
||||
if (node == null || dbVersionName == null) {
|
||||
return;
|
||||
}
|
||||
EList<ElementParameterType> elementParameters = node.getElementParameter();
|
||||
String distribution = null;
|
||||
String dbVersion = null;
|
||||
// Iterate over the item elementParameters in order to find the "DISTRIBUTION" and "SPARK_VERSION"
|
||||
// parameters values.
|
||||
for (int i = 0; i < elementParameters.size(); i++) {
|
||||
ElementParameterType param = elementParameters.get(i);
|
||||
if (dbVersionName.equals(param.getName())) {
|
||||
dbVersion = param.getValue();
|
||||
break;
|
||||
}
|
||||
}
|
||||
try {
|
||||
ElementParameterType property = TalendFileFactory.eINSTANCE.createElementParameterType();
|
||||
distribution = BigDataBasicUtil.getDistributionByVersion(dbVersion);
|
||||
if (distribution != null) {
|
||||
property.setName("DISTRIBUTION"); //$NON-NLS-1$
|
||||
property.setField("CLOSED_LIST"); //$NON-NLS-1$
|
||||
property.setValue(distribution);
|
||||
elementParameters.add(property);
|
||||
} else {
|
||||
ExceptionHandler.log("no matched distribution for version " + dbVersion);//$NON-NLS-1$
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.log(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,8 @@ public class HadoopConstants {
|
||||
public static final String SPARK_MODE_DATAPROC = "DATAPROC";
|
||||
|
||||
public static final String SPARK_MODE_SYNAPSE = "SYNAPSE";
|
||||
|
||||
public static final String SPARK_MODE_HDI = "HDI";
|
||||
|
||||
public static final String FRAMEWORK = "FRAMEWORK";
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import java.util.Map;
|
||||
|
||||
import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.IService;
|
||||
import org.talend.core.model.general.Project;
|
||||
import org.talend.core.runtime.hd.IDistributionsManager;
|
||||
import org.talend.core.runtime.hd.IDynamicDistributionManager;
|
||||
import org.talend.core.runtime.hd.IHDistribution;
|
||||
@@ -132,6 +133,8 @@ public interface IHadoopDistributionService extends IService {
|
||||
|
||||
IDynamicDistributionManager getDynamicDistributionManager();
|
||||
|
||||
void checkAndMigrateDistributionProxyCredential(Project project) throws Exception;
|
||||
|
||||
public static IHadoopDistributionService get() {
|
||||
GlobalServiceRegister gsr = GlobalServiceRegister.getDefault();
|
||||
if (gsr.isServiceRegistered(IHadoopDistributionService.class)) {
|
||||
|
||||
@@ -142,6 +142,8 @@ public enum EHadoopProperties {
|
||||
|
||||
SPARK_EXECUTOR_MEMORY,
|
||||
|
||||
SPARK_EXECUTOR_CORES,
|
||||
|
||||
DATABRICKS_ENDPOINT,
|
||||
|
||||
DATABRICKS_CLOUD_PROVIDER,
|
||||
@@ -212,7 +214,9 @@ public enum EHadoopProperties {
|
||||
|
||||
UNIV_STANDALONE_EXEC_MEMORY,
|
||||
|
||||
UNIV_STANDALONE_EXEC_CORE;
|
||||
UNIV_STANDALONE_EXEC_CORE,
|
||||
|
||||
UNIV_SPARK_SUBMIT_SCRIPT_HOME;
|
||||
|
||||
public String getName() {
|
||||
return this.name();
|
||||
|
||||
@@ -93,8 +93,8 @@ public final class ComponentUtilities {
|
||||
// TODO SML Use getNodeProperty
|
||||
EList elementParameter = node.getElementParameter();
|
||||
Iterator iterator = elementParameter.iterator();
|
||||
for (Object o = iterator.next(); iterator.hasNext(); o = iterator.next()) {
|
||||
ElementParameterType t = (ElementParameterType) o;
|
||||
while (iterator.hasNext()) {
|
||||
ElementParameterType t = (ElementParameterType) iterator.next();
|
||||
if (t.getName().equals(property)) {
|
||||
iterator.remove();
|
||||
}
|
||||
|
||||
@@ -39,6 +39,8 @@ public interface IComponent {
|
||||
String SPARK_JOBLET_STREAMING_PID = "org.talend.designer.sparkstreamingjoblet"; //$NON-NLS-1$
|
||||
|
||||
String PROP_NAME = "NAME"; //$NON-NLS-1$
|
||||
|
||||
String PROP_DESCRIPTION = "DESCRIPTION"; //$NON-NLS-1$
|
||||
|
||||
String PROP_LONG_NAME = "LONG_NAME"; //$NON-NLS-1$
|
||||
|
||||
|
||||
@@ -522,10 +522,16 @@ public class ContextUtils {
|
||||
return itemMap;
|
||||
}
|
||||
|
||||
|
||||
private static Set<String> missingContexts = new HashSet<>();
|
||||
|
||||
public static void clearMissingContextCache() {
|
||||
missingContexts.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* get the repository context item,now contextId can be either joblet node or context node.
|
||||
*/
|
||||
* get the repository context item, now contextId can be either joblet node or context node.
|
||||
*/
|
||||
public static Item getRepositoryContextItemById(String contextId) {
|
||||
if (IContextParameter.BUILT_IN.equals(contextId)) {
|
||||
return null;
|
||||
@@ -533,6 +539,9 @@ public class ContextUtils {
|
||||
if (checkObject(contextId)) {
|
||||
return null;
|
||||
}
|
||||
if (missingContexts.contains(contextId)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
List<ERepositoryObjectType> possibleTypes = new ArrayList<ERepositoryObjectType>();
|
||||
possibleTypes.add(ERepositoryObjectType.CONTEXT);
|
||||
@@ -547,6 +556,8 @@ public class ContextUtils {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
missingContexts.add(contextId);
|
||||
ExceptionHandler.log("Can't find Context item[id=" + contextId + "].");
|
||||
} catch (PersistenceException e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
@@ -857,6 +868,7 @@ public class ContextUtils {
|
||||
ItemContextLink itemContextLink) {
|
||||
Map<String, String> renamedMap = new HashMap<String, String>();
|
||||
Map<String, Item> tempItemMap = new HashMap<String, Item>();
|
||||
clearMissingContextCache();
|
||||
for (ContextType contextType : contextTypeList) {
|
||||
for (Object obj : contextType.getContextParameter()) {
|
||||
if (obj instanceof ContextParameterType) {
|
||||
@@ -919,6 +931,7 @@ public class ContextUtils {
|
||||
*/
|
||||
public static Map<String, String> calculateRenamedMapFromLinkFile(String projectLabel, String itemId,
|
||||
List<IContext> contextList) {
|
||||
clearMissingContextCache();
|
||||
Map<String, String> renamedMap = new HashMap<String, String>();
|
||||
Map<String, Item> idToItemMap = new HashMap<String, Item>();
|
||||
try {
|
||||
@@ -1194,5 +1207,23 @@ public class ContextUtils {
|
||||
}
|
||||
return jobContext;
|
||||
}
|
||||
|
||||
public static boolean isPromptNeeded(List<IContext> contexts, String contextParaName) {
|
||||
for (IContext context : contexts) {
|
||||
List<IContextParameter> list = context.getContextParameterList();
|
||||
if (list != null && list.size() > 0) {
|
||||
for (IContextParameter contextPara : list) {
|
||||
String tempContextParaName = contextPara.getName();
|
||||
if (tempContextParaName.equals(contextParaName)) {
|
||||
if (contextPara.isPromptNeeded()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,8 @@ public class JobContext implements IContext, Cloneable {
|
||||
|
||||
boolean confirmationNeeded;
|
||||
|
||||
boolean hide;
|
||||
|
||||
public JobContext(String name) {
|
||||
this.name = name;
|
||||
if (this.name == null) {
|
||||
@@ -66,6 +68,14 @@ public class JobContext implements IContext, Cloneable {
|
||||
this.confirmationNeeded = confirmationNeeded;
|
||||
}
|
||||
|
||||
public boolean isHide() {
|
||||
return this.hide;
|
||||
}
|
||||
|
||||
public void setHide(boolean hide) {
|
||||
this.hide = hide;
|
||||
}
|
||||
|
||||
public IContext clone() {
|
||||
IContext clonedContext = null;
|
||||
try {
|
||||
@@ -131,14 +141,16 @@ public class JobContext implements IContext, Cloneable {
|
||||
* @return
|
||||
*/
|
||||
public IContextParameter getContextParameter(String sourceId, String paraName) {
|
||||
if (sourceId == null || paraName == null)
|
||||
if (sourceId == null || paraName == null) {
|
||||
return null;
|
||||
}
|
||||
if (contextParameterList != null && contextParameterList.size() > 0) {
|
||||
for (IContextParameter contextParam : contextParameterList) {
|
||||
String tempSouceId = contextParam.getSource();
|
||||
String tempParaName = contextParam.getName();
|
||||
if (sourceId.equals(tempSouceId) && paraName.equals(tempParaName))
|
||||
if (sourceId.equals(tempSouceId) && paraName.equals(tempParaName)) {
|
||||
return contextParam;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@@ -156,8 +168,9 @@ public class JobContext implements IContext, Cloneable {
|
||||
if (contextParameterList != null && contextParameterList.size() > 0) {
|
||||
for (IContextParameter contextParam : contextParameterList) {
|
||||
String tempParaName = contextParam.getName();
|
||||
if (tempParaName.equals(paraName))
|
||||
if (tempParaName.equals(paraName)) {
|
||||
list.add(contextParam);
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
|
||||
@@ -45,6 +45,8 @@ import org.talend.designer.core.model.utils.emf.talendfile.TalendFileFactory;
|
||||
*/
|
||||
public class JobContextManager implements IContextManager {
|
||||
|
||||
private boolean isWrapContextText;
|
||||
|
||||
private IContext defaultContext = new JobContext(IContext.DEFAULT);
|
||||
|
||||
private List<IContext> listContext = new ArrayList<IContext>();
|
||||
@@ -56,6 +58,11 @@ public class JobContextManager implements IContextManager {
|
||||
*/
|
||||
private Map<String, String> nameMap = new HashMap<String, String>();
|
||||
|
||||
/*
|
||||
* record rename context for node
|
||||
*/
|
||||
private Map<String, String> nameMapNode = new HashMap<String, String>();
|
||||
|
||||
private Map<ContextItem, Map<String, String>> repositoryRenamedMap = new HashMap<ContextItem, Map<String, String>>();
|
||||
|
||||
/*
|
||||
@@ -97,6 +104,14 @@ public class JobContextManager implements IContextManager {
|
||||
|
||||
private Map<ContextItem, List<IContext>> renameContextGroupMap = new HashMap<ContextItem, List<IContext>>();
|
||||
|
||||
public boolean isWrapContextText() {
|
||||
return isWrapContextText;
|
||||
}
|
||||
|
||||
public void setWrapContextText(boolean isWrapContextText) {
|
||||
this.isWrapContextText = isWrapContextText;
|
||||
}
|
||||
|
||||
public Map<ContextItem, List<IContext>> getAddContextGroupMap() {
|
||||
return this.addContextGroupMap;
|
||||
}
|
||||
@@ -299,6 +314,7 @@ public class JobContextManager implements IContextManager {
|
||||
}
|
||||
List<ContextItem> contextItemList = ContextUtils.getAllContextItem();
|
||||
boolean setDefault = false;
|
||||
ContextUtils.clearMissingContextCache();
|
||||
for (int i = 0; i < contextTypeList.size(); i++) {
|
||||
contextType = (ContextType) contextTypeList.get(i);
|
||||
String name = contextType.getName();
|
||||
@@ -307,6 +323,7 @@ public class JobContextManager implements IContextManager {
|
||||
}
|
||||
context = new JobContext(name);
|
||||
context.setConfirmationNeeded(contextType.isConfirmationNeeded());
|
||||
context.setHide(contextType.isHide());
|
||||
contextParamList = new ArrayList<IContextParameter>();
|
||||
contextTypeParamList = contextType.getContextParameter();
|
||||
Set<String> paramNamesInCurrentContext = new HashSet<String>();
|
||||
@@ -335,6 +352,8 @@ public class JobContextManager implements IContextManager {
|
||||
} else {
|
||||
contextParam.setType(MetadataTalendType.getDefaultTalendType());
|
||||
}
|
||||
//To avoid encrypt the same value}
|
||||
contextParam.setOriginEncryptedValue(contextParamType.getValue());
|
||||
contextParam.setValue(contextParamType.getRawValue());
|
||||
|
||||
contextParam.setPromptNeeded(contextParamType.isPromptNeeded());
|
||||
@@ -401,6 +420,18 @@ public class JobContextManager implements IContextManager {
|
||||
updateNewParameters(newName, oldName);
|
||||
}
|
||||
|
||||
public void addNameMapForNode(String newName, String oldName) {
|
||||
nameMapNode.put(newName, oldName);
|
||||
}
|
||||
|
||||
public void clearNameMapForNode() {
|
||||
nameMapNode.clear();
|
||||
}
|
||||
|
||||
public Map<String, String> getNameMapNode() {
|
||||
return nameMapNode;
|
||||
}
|
||||
|
||||
public Map<String, String> getNameMap() {
|
||||
return nameMap;
|
||||
}
|
||||
@@ -526,6 +557,7 @@ public class JobContextManager implements IContextManager {
|
||||
|
||||
EList newcontextTypeList = new BasicEList();
|
||||
Map<String, Item> idToItemMap = new HashMap<String, Item>();
|
||||
ContextUtils.clearMissingContextCache();
|
||||
for (int i = 0; i < listContext.size(); i++) {
|
||||
IContext context = listContext.get(i);
|
||||
String contextGroupName = renameGroupContext.get(context);
|
||||
@@ -538,6 +570,7 @@ public class JobContextManager implements IContextManager {
|
||||
}
|
||||
contextType.setName(context.getName());
|
||||
contextType.setConfirmationNeeded(context.isConfirmationNeeded());
|
||||
contextType.setHide(context.isHide());
|
||||
newcontextTypeList.add(contextType);
|
||||
|
||||
EList contextTypeParamList = contextType.getContextParameter();
|
||||
@@ -560,7 +593,10 @@ public class JobContextManager implements IContextManager {
|
||||
contextParamType.setName(contextParam.getName());
|
||||
contextParamType.setPrompt(contextParam.getPrompt());
|
||||
contextParamType.setType(contextParam.getType());
|
||||
//To avoid encrypt the same value
|
||||
contextParamType.setValue(contextParam.getOriginEncryptedValue());
|
||||
contextParamType.setRawValue(contextParam.getValue());
|
||||
contextParam.setOriginEncryptedValue(contextParamType.getValue()); // For origin encrypted value is null or encryption key upgrade
|
||||
contextParamType.setPromptNeeded(contextParam.isPromptNeeded());
|
||||
contextParamType.setComment(contextParam.getComment());
|
||||
if (!contextParam.isBuiltIn()) {
|
||||
|
||||
@@ -46,6 +46,9 @@ public class JobContextParameter implements IContextParameter, Cloneable {
|
||||
String[] valueList;
|
||||
|
||||
String internalId;
|
||||
|
||||
/*This value may dirty, only use to cache encrypted value*/
|
||||
String originEncryptedValue;
|
||||
|
||||
/**
|
||||
* change to save id always for bug 13184.
|
||||
@@ -301,6 +304,15 @@ public class JobContextParameter implements IContextParameter, Cloneable {
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
public String getOriginEncryptedValue() {
|
||||
return originEncryptedValue;
|
||||
}
|
||||
|
||||
|
||||
public void setOriginEncryptedValue(String originEncryptedValue) {
|
||||
this.originEncryptedValue = originEncryptedValue;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
||||
@@ -51,6 +51,7 @@ public abstract class AbstractItemContextLinkService implements IItemContextLink
|
||||
itemContextLink.setItemId(itemId);
|
||||
Map<String, Item> tempCache = new HashMap<String, Item>();
|
||||
if (contextTypeList != null && contextTypeList.size() > 0) {
|
||||
ContextUtils.clearMissingContextCache();
|
||||
for (Object object : contextTypeList) {
|
||||
if (object instanceof ContextType) {
|
||||
ContextType jobContextType = (ContextType) object;
|
||||
|
||||
@@ -206,6 +206,7 @@ public class ContextLinkService {
|
||||
Map<String, Map<String, String>> changedContextParameterId) throws PersistenceException {
|
||||
List<Relation> relationList = RelationshipItemBuilder.getInstance()
|
||||
.getItemsHaveRelationWith(sourceId, RelationshipItemBuilder.LATEST_VERSION, false);
|
||||
ContextUtils.clearMissingContextCache();
|
||||
for (Relation relation : relationList) {
|
||||
String id = relation.getId();
|
||||
IFile linkFile = calContextLinkFile(ProjectManager.getInstance().getCurrentProject().getTechnicalLabel(), id);
|
||||
|
||||
@@ -109,6 +109,10 @@ public interface IMetadataColumn {
|
||||
|
||||
public void setComment(String comment);
|
||||
|
||||
public int getRowNum();
|
||||
|
||||
public void setRowNum(int value);
|
||||
|
||||
public IMetadataColumn clone();
|
||||
|
||||
public IMetadataColumn clone(boolean withCustoms);
|
||||
|
||||
@@ -346,6 +346,15 @@ public class MetadataColumn implements IMetadataColumn, Cloneable {
|
||||
return this.comment;
|
||||
}
|
||||
|
||||
int rowNum = 0;
|
||||
|
||||
public int getRowNum() {
|
||||
return rowNum;
|
||||
};
|
||||
|
||||
public void setRowNum(int value) {
|
||||
this.rowNum = value;
|
||||
}
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
||||
@@ -463,29 +463,31 @@ public final class MetadataTalendType {
|
||||
return list;
|
||||
}
|
||||
|
||||
public static URL getSystemFolderURLOfMappingsFile() throws SystemException {
|
||||
public static File getSystemFolderURLOfMappingsFile() throws SystemException {
|
||||
String dirPath = "/" + INTERNAL_MAPPINGS_FOLDER; //$NON-NLS-1$
|
||||
URL url = null;
|
||||
Path filePath = new Path(dirPath);
|
||||
Bundle b = Platform.getBundle(CoreRuntimePlugin.PLUGIN_ID);
|
||||
if (b != null) {
|
||||
try {
|
||||
// Enumeration<URL> entries = b.findEntries(dirPath, "mapping_*.xml", false);
|
||||
url = FileLocator.toFileURL(FileLocator.find(b, filePath, null));
|
||||
return new File(FileLocator.toFileURL(FileLocator.find(b, filePath, null)).getFile());
|
||||
} catch (IOException e) {
|
||||
throw new SystemException(e);
|
||||
}
|
||||
}
|
||||
return url;
|
||||
return null;
|
||||
}
|
||||
|
||||
public static URL getProjectFolderURLOfMappingsFile() throws SystemException {
|
||||
public static File getProjectFolderURLOfMappingsFile() throws SystemException {
|
||||
try {
|
||||
String dirPath = "/" + INTERNAL_MAPPINGS_FOLDER; //$NON-NLS-1$
|
||||
IProject project = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject());
|
||||
IPath settingPath = new ProjectScope(project).getLocation();
|
||||
File mappingFolder = settingPath.append(dirPath).toFile();
|
||||
return mappingFolder.toURI().toURL();
|
||||
if (!mappingFolder.exists()) {
|
||||
mappingFolder.mkdirs();
|
||||
}
|
||||
return mappingFolder;
|
||||
} catch (Exception e) {
|
||||
throw new SystemException(e);
|
||||
}
|
||||
@@ -592,8 +594,7 @@ public final class MetadataTalendType {
|
||||
|
||||
public static JSONObject getRevisionObject() {
|
||||
try {
|
||||
File revisonFile = new File(MetadataTalendType.getSystemFolderURLOfMappingsFile().getFile(),
|
||||
MetadataTalendType.FILE_MAPPING_REVISION);
|
||||
File revisonFile = new File(getSystemFolderURLOfMappingsFile(), FILE_MAPPING_REVISION);
|
||||
String jsonStr = new String(Files.readAllBytes(revisonFile.toPath()));
|
||||
return new JSONObject(jsonStr);
|
||||
} catch (Exception e) {
|
||||
@@ -605,13 +606,13 @@ public final class MetadataTalendType {
|
||||
public static boolean restoreMappingFiles() throws Exception {
|
||||
List<File> toDelete = new ArrayList<>();
|
||||
JSONObject revision = getRevisionObject();
|
||||
File projectMappingFolder = new File(getProjectFolderURLOfMappingsFile().getFile());
|
||||
File projectMappingFolder = getProjectFolderURLOfMappingsFile();
|
||||
if (projectMappingFolder.exists()) {
|
||||
File[] projectMappingFiles = projectMappingFolder.listFiles(f -> f.getName().matches(MAPPING_FILE_PATTERN));
|
||||
if (projectMappingFiles != null) {
|
||||
for (File file : projectMappingFiles) {
|
||||
if (revision.has(file.getName())) {
|
||||
String sha1 = MetadataTalendType.getSha1OfFile(file);
|
||||
String sha1 = getSha1OfFile(file);
|
||||
if (revision.getJSONObject(file.getName()).has(sha1)) {
|
||||
toDelete.add(file);
|
||||
}
|
||||
@@ -668,9 +669,9 @@ public final class MetadataTalendType {
|
||||
}
|
||||
|
||||
public static List<File> getWorkingMappingFiles() throws SystemException {
|
||||
File projectMappingFolder = new File(getProjectFolderURLOfMappingsFile().getFile());
|
||||
File projectMappingFolder = getProjectFolderURLOfMappingsFile();
|
||||
File[] projectMappingFiles = projectMappingFolder.listFiles(f -> f.getName().matches(MAPPING_FILE_PATTERN));
|
||||
File systemMappingFolder = new File(getSystemFolderURLOfMappingsFile().getFile());
|
||||
File systemMappingFolder = getSystemFolderURLOfMappingsFile();
|
||||
File[] systemMappingFiles = systemMappingFolder.listFiles(f -> f.getName().matches(MAPPING_FILE_PATTERN));
|
||||
if (projectMappingFiles == null || projectMappingFiles.length == 0) {
|
||||
return Arrays.asList(systemMappingFiles);
|
||||
@@ -686,7 +687,7 @@ public final class MetadataTalendType {
|
||||
|
||||
public static String getSha1OfSystemMappingFile(String fileName) {
|
||||
try {
|
||||
return getSha1OfFile(new File(getSystemFolderURLOfMappingsFile().getFile(), fileName));
|
||||
return getSha1OfFile(new File(getSystemFolderURLOfMappingsFile(), fileName));
|
||||
} catch (SystemException e) {
|
||||
ExceptionHandler.process(e);
|
||||
return null;
|
||||
|
||||
@@ -156,6 +156,7 @@ public final class MetadataToolAvroHelper {
|
||||
copyColumnProperties(fb, in);
|
||||
|
||||
fb.prop(DiSchemaConstants.TALEND6_LABEL, label);
|
||||
|
||||
|
||||
Object defaultValue = null;
|
||||
Expression initialValue = in.getInitialValue();
|
||||
@@ -209,6 +210,8 @@ public final class MetadataToolAvroHelper {
|
||||
// FIXME - this one should go away
|
||||
type = AvroUtils._date();
|
||||
}
|
||||
|
||||
defaultValue = null;
|
||||
}
|
||||
// String-ish types.
|
||||
else if (JavaTypesManager.STRING.getId().equals(tt) || JavaTypesManager.FILE.getId().equals(tt)
|
||||
@@ -369,6 +372,7 @@ public final class MetadataToolAvroHelper {
|
||||
*/
|
||||
private static <T extends PropBuilder<T>> PropBuilder<T> copyColumnProperties(PropBuilder<T> builder,
|
||||
org.talend.core.model.metadata.builder.connection.MetadataColumn in) {
|
||||
|
||||
// Properties common to tables and columns.
|
||||
if (in.getId() != null) {
|
||||
builder.prop(DiSchemaConstants.TALEND6_ID, in.getId());
|
||||
@@ -385,6 +389,8 @@ public final class MetadataToolAvroHelper {
|
||||
builder.prop(DiSchemaConstants.TALEND6_IS_READ_ONLY, tv.getValue());
|
||||
}else if(DiSchemaConstants.AVRO_TECHNICAL_KEY.equals(additionalTag)){
|
||||
builder.prop(DiSchemaConstants.AVRO_TECHNICAL_KEY, tv.getValue());
|
||||
}else if(DiSchemaConstants.LOGICAL_TIME_TYPE_AS.equals(additionalTag)) {
|
||||
builder.prop(DiSchemaConstants.LOGICAL_TIME_TYPE_AS, tv.getValue());
|
||||
}else if (tv.getValue() != null) {
|
||||
builder.prop(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES + additionalTag, tv.getValue());
|
||||
}
|
||||
@@ -462,7 +468,7 @@ public final class MetadataToolAvroHelper {
|
||||
TaggedValue tv = TaggedValueHelper.createTaggedValue(DiSchemaConstants.TALEND6_IS_READ_ONLY, prop);
|
||||
table.getTaggedValue().add(tv);
|
||||
}
|
||||
for (String key : in.getJsonProps().keySet()) {
|
||||
for (String key : in.getObjectProps().keySet()) {
|
||||
if (key.startsWith(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES)) {
|
||||
String originalKey = key.substring(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES.length());
|
||||
TaggedValue tv = TaggedValueHelper.createTaggedValue(originalKey, in.getProp(key));
|
||||
@@ -508,7 +514,7 @@ public final class MetadataToolAvroHelper {
|
||||
TaggedValue tv = TaggedValueHelper.createTaggedValue(DiSchemaConstants.TALEND6_IS_READ_ONLY, prop);
|
||||
col.getTaggedValue().add(tv);
|
||||
}
|
||||
for (String key : schema.getJsonProps().keySet()) {
|
||||
for (String key : schema.getObjectProps().keySet()) {
|
||||
if (key.startsWith(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES)) {
|
||||
String originalKey = key.substring(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES.length());
|
||||
TaggedValue tv = TaggedValueHelper.createTaggedValue(originalKey, schema.getProp(key));
|
||||
@@ -626,6 +632,7 @@ public final class MetadataToolAvroHelper {
|
||||
} else if (AvroUtils.isSameType(nonnullable, AvroUtils._float())) {
|
||||
col.setTalendType(JavaTypesManager.FLOAT.getId());
|
||||
} else if (AvroUtils.isSameType(nonnullable, AvroUtils._int())) {
|
||||
|
||||
if (logicalType == LogicalTypes.date()) {
|
||||
col.setTalendType(JavaTypesManager.DATE.getId());
|
||||
TaggedValue tv = TaggedValueHelper.createTaggedValue(DiSchemaConstants.TALEND6_COLUMN_DATE_DATE, "true");
|
||||
@@ -637,6 +644,8 @@ public final class MetadataToolAvroHelper {
|
||||
String logical_time_type_as = field.getProp(DiSchemaConstants.LOGICAL_TIME_TYPE_AS);
|
||||
if(DiSchemaConstants.AS_TALEND_DATE.equals(logical_time_type_as)) {
|
||||
col.setTalendType(JavaTypesManager.DATE.getId());
|
||||
TaggedValue tv2 = TaggedValueHelper.createTaggedValue(DiSchemaConstants.LOGICAL_TIME_TYPE_AS, DiSchemaConstants.AS_TALEND_DATE);
|
||||
col.getTaggedValue().add(tv2);
|
||||
} else {
|
||||
col.setTalendType(JavaTypesManager.INTEGER.getId());
|
||||
}
|
||||
@@ -681,7 +690,7 @@ public final class MetadataToolAvroHelper {
|
||||
TaggedValue tv = TaggedValueHelper.createTaggedValue(DiSchemaConstants.TALEND6_IS_READ_ONLY, prop);
|
||||
col.getTaggedValue().add(tv);
|
||||
}
|
||||
for (String key : field.getJsonProps().keySet()) {
|
||||
for (String key : field.getObjectProps().keySet()) {
|
||||
if (key.startsWith(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES)) {
|
||||
String originalKey = key.substring(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES.length());
|
||||
TaggedValue tv = TaggedValueHelper.createTaggedValue(originalKey, field.getProp(key));
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.talend.core.database.EDatabaseTypeName;
|
||||
import org.talend.core.database.ERedshiftDriver;
|
||||
import org.talend.core.database.conn.ConnParameterKeys;
|
||||
import org.talend.core.database.conn.template.EDatabaseConnTemplate;
|
||||
import org.talend.core.database.conn.version.EDatabaseVersion4Drivers;
|
||||
import org.talend.core.model.metadata.Dbms;
|
||||
import org.talend.core.model.metadata.DiSchemaConstants;
|
||||
import org.talend.core.model.metadata.IConvertionConstants;
|
||||
@@ -51,6 +52,7 @@ import org.talend.core.model.metadata.builder.connection.MDMConnection;
|
||||
import org.talend.core.model.metadata.builder.connection.MetadataColumn;
|
||||
import org.talend.core.model.metadata.builder.connection.MetadataTable;
|
||||
import org.talend.core.model.metadata.builder.connection.SAPBWTable;
|
||||
import org.talend.core.model.metadata.builder.connection.TacokitDatabaseConnection;
|
||||
import org.talend.core.prefs.SSLPreferenceConstants;
|
||||
import org.talend.core.runtime.CoreRuntimePlugin;
|
||||
import org.talend.core.utils.KeywordsValidator;
|
||||
@@ -272,7 +274,7 @@ public final class ConvertionHelper {
|
||||
|
||||
}
|
||||
|
||||
private static String getDriverVersionString(DatabaseConnection dbConn) {
|
||||
public static String getDriverVersionString(DatabaseConnection dbConn) {
|
||||
String dbVersionString = dbConn.getDbVersionString();
|
||||
if (EDatabaseTypeName.REDSHIFT.getDisplayName().equals(dbConn.getDatabaseType())
|
||||
|| EDatabaseTypeName.REDSHIFT_SSO.getDisplayName().equals(dbConn.getDatabaseType())) {
|
||||
@@ -286,6 +288,9 @@ public final class ConvertionHelper {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (EDatabaseTypeName.VERTICA.getDisplayName().equals(dbConn.getDatabaseType())) {
|
||||
dbVersionString = EDatabaseVersion4Drivers.VERTICA_12.getVersionValue();
|
||||
}
|
||||
return dbVersionString;
|
||||
}
|
||||
|
||||
@@ -781,4 +786,17 @@ public final class ConvertionHelper {
|
||||
}
|
||||
return entryString;
|
||||
}
|
||||
|
||||
public static DatabaseConnection fillJDBCParams4TacokitDatabaseConnection(Connection conn) {
|
||||
if (conn instanceof TacokitDatabaseConnection) {
|
||||
TacokitDatabaseConnection tacokitDatabaseConnection = (TacokitDatabaseConnection) (conn);
|
||||
if (tacokitDatabaseConnection.getDbmsId() == null) {
|
||||
String trueDbType = getDbTypeByClassNameAndDriverJar(tacokitDatabaseConnection.getDriverClass(), null);
|
||||
String product = EDatabaseTypeName.getTypeFromDisplayName(trueDbType).getProduct();
|
||||
String mapping = MetadataTalendType.getDefaultDbmsFromProduct(product).getId();
|
||||
tacokitDatabaseConnection.setDbmsId(mapping);
|
||||
}
|
||||
}
|
||||
return (DatabaseConnection) conn;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -20,6 +20,7 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
@@ -47,6 +48,7 @@ import org.talend.core.model.metadata.MultiSchemasUtil;
|
||||
import org.talend.core.model.metadata.builder.ConvertionHelper;
|
||||
import org.talend.core.model.metadata.builder.connection.AdditionalConnectionProperty;
|
||||
import org.talend.core.model.metadata.builder.connection.BRMSConnection;
|
||||
import org.talend.core.model.metadata.builder.connection.BigQueryConnection;
|
||||
import org.talend.core.model.metadata.builder.connection.Concept;
|
||||
import org.talend.core.model.metadata.builder.connection.ConceptTarget;
|
||||
import org.talend.core.model.metadata.builder.connection.Connection;
|
||||
@@ -74,6 +76,7 @@ import org.talend.core.model.metadata.builder.connection.SAPFunctionUnit;
|
||||
import org.talend.core.model.metadata.builder.connection.SalesforceModuleUnit;
|
||||
import org.talend.core.model.metadata.builder.connection.SalesforceSchemaConnection;
|
||||
import org.talend.core.model.metadata.builder.connection.SchemaTarget;
|
||||
import org.talend.core.model.metadata.builder.connection.TacokitDatabaseConnection;
|
||||
import org.talend.core.model.metadata.builder.connection.WSDLParameter;
|
||||
import org.talend.core.model.metadata.builder.connection.WSDLSchemaConnection;
|
||||
import org.talend.core.model.metadata.builder.connection.XMLFileNode;
|
||||
@@ -148,6 +151,10 @@ public class RepositoryToComponentProperty {
|
||||
if (connection instanceof SAPConnection) {
|
||||
return getSAPValue((SAPConnection) connection, value);
|
||||
}
|
||||
|
||||
if (connection instanceof BigQueryConnection) {
|
||||
return getBigQueryValue((BigQueryConnection) connection, value, table);
|
||||
}
|
||||
|
||||
if (connection instanceof SalesforceSchemaConnection) {
|
||||
return getSalesforceSchemaValue((SalesforceSchemaConnection) connection, value, table);
|
||||
@@ -456,6 +463,62 @@ public class RepositoryToComponentProperty {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Object getBigQueryValue(BigQueryConnection connection, String value, IMetadataTable table) {
|
||||
if ("SERVICE_ACCOUNT_CREDENTIALS_FILE".equals(value)) {
|
||||
if (isContextMode(connection, connection.getServiceAccountCredentialsFile())) {
|
||||
return connection.getServiceAccountCredentialsFile();
|
||||
} else {
|
||||
return TalendQuoteUtils.addQuotes(connection.getServiceAccountCredentialsFile());
|
||||
}
|
||||
} else if ("PROJECT_ID".equals(value)) {
|
||||
if (isContextMode(connection, connection.getProjectId())) {
|
||||
return connection.getProjectId();
|
||||
} else {
|
||||
return TalendQuoteUtils.addQuotes(connection.getProjectId());
|
||||
}
|
||||
} else if ("USE_REGION_ENDPOINT".equals(value)) {
|
||||
return connection.isUseRegionEndpoint();
|
||||
} else if ("REGION_ENDPOINT_BQ".equals(value)) {
|
||||
if (isContextMode(connection, connection.getRegionEndpoint())) {
|
||||
return connection.getRegionEndpoint();
|
||||
} else {
|
||||
return TalendQuoteUtils.addQuotes(connection.getRegionEndpoint());
|
||||
}
|
||||
} else if ("DATASET".equals(value)) {
|
||||
if(table!=null) {
|
||||
Map<String, String> properties = table.getAdditionalProperties();
|
||||
if(properties!=null) {
|
||||
String dataSet = properties.get("dataSet");
|
||||
if (isContextMode(connection, dataSet)) {
|
||||
return dataSet;
|
||||
} else {
|
||||
return TalendQuoteUtils.addQuotes(dataSet);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ("QUERY".equals(value)) {
|
||||
if(table!=null) {
|
||||
Map<String, String> properties = table.getAdditionalProperties();
|
||||
if(properties!=null) {
|
||||
String dataSet = properties.get("dataSet");
|
||||
String tableName = table.getLabel();
|
||||
if(dataSet!=null && tableName!=null) {
|
||||
List<IMetadataColumn> columns = table.getListColumns();
|
||||
StringBuilder strBuilder = new StringBuilder();
|
||||
strBuilder.append("SELECT");
|
||||
if(columns!=null) {
|
||||
strBuilder.append(columns.stream().map(column -> column.getOriginalDbColumnName()).collect(Collectors.joining(",", " ", " ")));
|
||||
}
|
||||
strBuilder.append("FROM ").append(dataSet).append('.').append(tableName);
|
||||
return TalendQuoteUtils.addQuotes(strBuilder.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* DOC gcui Comment method "getHL7Value".
|
||||
@@ -972,6 +1035,9 @@ public class RepositoryToComponentProperty {
|
||||
return typeByProduct;
|
||||
}
|
||||
}
|
||||
if (connection instanceof TacokitDatabaseConnection) {
|
||||
return getTacokitDatabaseConnectionValue((TacokitDatabaseConnection)connection, value, table, targetComponent);
|
||||
}
|
||||
if (value.equals("FRAMEWORK_TYPE")) { //$NON-NLS-1$
|
||||
if (isContextMode(connection, databaseType)) {
|
||||
if (databaseType.equals("JavaDB Embeded")) { //$NON-NLS-1$
|
||||
@@ -1091,6 +1157,10 @@ public class RepositoryToComponentProperty {
|
||||
if (dbVersionString != null) {
|
||||
return dbVersionString.toUpperCase();
|
||||
}
|
||||
} else if (EDatabaseConnTemplate.AMAZON_AURORA.getDBDisplayName().equals(databaseType)) {
|
||||
if (dbVersionString != null) {
|
||||
return dbVersionString.toUpperCase();
|
||||
}
|
||||
} else if (EDatabaseTypeName.HIVE.getDisplayName().equals(databaseType)) {
|
||||
return connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HIVE_VERSION);
|
||||
} else if (EDatabaseTypeName.HBASE.getDisplayName().equals(databaseType)) {
|
||||
@@ -1110,7 +1180,6 @@ public class RepositoryToComponentProperty {
|
||||
|| EDatabaseConnTemplate.ORACLE_CUSTOM.getDBDisplayName().equals(databaseType)
|
||||
|| EDatabaseConnTemplate.ORACLEFORSID.getDBDisplayName().equals(databaseType)
|
||||
|| EDatabaseConnTemplate.ORACLESN.getDBDisplayName().equals(databaseType)
|
||||
|| EDatabaseConnTemplate.PLUSPSQL.getDBDisplayName().equals(databaseType)
|
||||
|| EDatabaseConnTemplate.PSQL.getDBDisplayName().equals(databaseType)
|
||||
|| EDatabaseConnTemplate.SAPHana.getDBDisplayName().equals(databaseType)
|
||||
|| EDatabaseConnTemplate.MSSQL.getDBDisplayName().equals(databaseType)) {
|
||||
@@ -1251,7 +1320,7 @@ public class RepositoryToComponentProperty {
|
||||
}
|
||||
return value2;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(value.equals("SUPPORT_NLS")) {
|
||||
return connection.isSupportNLS();
|
||||
@@ -1826,6 +1895,122 @@ public class RepositoryToComponentProperty {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static Object getTacokitDatabaseConnectionValue(TacokitDatabaseConnection connection, String value,
|
||||
IMetadataTable table, String targetComponent) {
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_URL.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_URL.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_URL.equals(value) || "URL".equals(value)) {
|
||||
return getAppropriateValue(connection, connection.getURL());
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_HOST.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_HOST.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_HOST.equals(value)) {
|
||||
return getAppropriateValue(connection, connection.getServerName());
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_PORT.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_PORT.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_PORT.equals(value)) {
|
||||
return getAppropriateValue(connection, connection.getPort());
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DRIVER.equals(value)) {
|
||||
return connection.getDrivers();
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_DRIVER.equals(value) || "DRIVER_JAR".equals(value)) {
|
||||
List<Map<String, Object>> drivers = new ArrayList<Map<String, Object>>();
|
||||
// map to datastore key
|
||||
for (Map<String, Object> map : connection.getDrivers()) {
|
||||
HashMap<String, Object> newMap = new HashMap<String, Object>();
|
||||
for (Map.Entry<String, Object> entry : map.entrySet()) {
|
||||
if (TacokitDatabaseConnection.KEY_DRIVER_PATH.equals(entry.getKey()) || TacokitDatabaseConnection.KEY_DATASTORE_DRIVER_PATH.equals(entry.getKey())) {
|
||||
newMap.put(TacokitDatabaseConnection.KEY_DATASTORE_DRIVER_PATH, entry.getValue());
|
||||
}
|
||||
}
|
||||
drivers.add(newMap);
|
||||
}
|
||||
return drivers;
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_SP_DATASTORE_DRIVER.equals(value)) {
|
||||
List<Map<String, Object>> drivers = new ArrayList<>();
|
||||
for (Map<String, Object> map : connection.getDrivers()) {
|
||||
HashMap<String, Object> newMap = new HashMap<>();
|
||||
for (Map.Entry<String, Object> entry : map.entrySet()) {
|
||||
if (TacokitDatabaseConnection.KEY_DRIVER_PATH.equals(entry.getKey())
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_DRIVER_PATH.equals(entry.getKey())) {
|
||||
newMap.put(TacokitDatabaseConnection.KEY_SP_DATASTORE_DRIVER_PATH, entry.getValue());
|
||||
}
|
||||
}
|
||||
drivers.add(newMap);
|
||||
}
|
||||
return drivers;
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_DRIVER_CLASS.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_DRIVER_CLASS.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_DRIVER_CLASS.equals(value) || "DRIVER_CLASS".equals(value)) {
|
||||
return getAppropriateValue(connection, connection.getDriverClass());
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_USER_ID.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_USER_ID.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_USER_ID.equals(value) || "USERNAME".equals(value)) {
|
||||
return getAppropriateValue(connection, connection.getUsername());
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_PASSWORD.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_PASSWORD.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_PASSWORD.equals(value) || "PASSWORD".equals(value)) {
|
||||
return getAppropriateValue(connection, connection.getRawPassword());
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_DATABASE_MAPPING.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_DATABASE_MAPPING.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_DATABASE_MAPPING.equals(value)) {
|
||||
return getAppropriateValue(connection, connection.getDatabaseMappingFile());
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_DATASOURCE_ALIAS.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_DATASOURCE_ALIAS.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_DATASOURCE_ALIAS.equals(value)) {
|
||||
return getAppropriateValue(connection, connection.getDatasourceAlias());
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_USE_SHARED_DB_CONNECTION.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_USE_SHARED_DB_CONNECTION.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_USE_SHARED_DB_CONNECTION.equals(value)) {
|
||||
return connection.useSharedDBConnection();
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_SHARED_DB_CONNECTION.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_SHARED_DB_CONNECTION.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SHARED_DB_CONNECTION.equals(value)) {
|
||||
return getAppropriateValue(connection, connection.getSharedDBConnectionName());
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_USE_DATASOURCE.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_USE_DATASOURCE.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_USE_DATASOURCE.equals(value)) {
|
||||
return connection.useDatasourceAlias();
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_AUTHENTICATION_TYPE.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_AUTHENTICATION_TYPE.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_AUTHENTICATION_TYPE.equals(value)) {
|
||||
return getAppropriateValue(connection, connection.getAuthenticationType());
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_USE_AUTO_COMMIT.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_USE_AUTO_COMMIT.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_USE_AUTO_COMMIT.equals(value)) {
|
||||
return connection.useAutoCommit();
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_AUTO_COMMIT.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_AUTO_COMMIT.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_AUTO_COMMIT.equals(value)) {
|
||||
return connection.autoCommit();
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_ENABLE_DB_TYPE.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_ENABLE_DB_TYPE.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_ENABLE_DB_TYPE.equals(value)) {
|
||||
return connection.enableDBType();
|
||||
}
|
||||
if (TacokitDatabaseConnection.KEY_DATASTORE_DB_TYPE.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_DB_TYPE.equals(value)
|
||||
|| TacokitDatabaseConnection.KEY_DB_TYPE.equals(value)) {
|
||||
return connection.getDatabaseType();
|
||||
}
|
||||
return connection.getPropertyValue(value);
|
||||
}
|
||||
|
||||
private static String getAppropriateValue(Connection connection, String rawValue) {
|
||||
if (isContextMode(connection, rawValue)) {
|
||||
@@ -1835,17 +2020,6 @@ public class RepositoryToComponentProperty {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* DOC nrousseau Comment method "getDatabaseValue".
|
||||
*
|
||||
* @param connection
|
||||
* @param value
|
||||
* @return
|
||||
*/
|
||||
private static Object getDatabaseValue(DatabaseConnection connection, String value) {
|
||||
return getDatabaseValue(connection, value, null, null);
|
||||
}
|
||||
|
||||
private static boolean isContextMode(Connection connection, String value) {
|
||||
IMetadataManagmentUiService mmService = null;
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IMetadataManagmentUiService.class)) {
|
||||
@@ -3049,7 +3223,7 @@ public class RepositoryToComponentProperty {
|
||||
String paramName) {
|
||||
for (IDragAndDropServiceHandler handler : DragAndDropManager.getHandlers()) {
|
||||
if (handler.canHandle(connection)) {
|
||||
return handler.isGenericRepositoryValue(componentProperties, paramName);
|
||||
return handler.isGenericRepositoryValue(connection, componentProperties, paramName);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -3059,7 +3233,7 @@ public class RepositoryToComponentProperty {
|
||||
String paramName) {
|
||||
for (IDragAndDropServiceHandler handler : DragAndDropManager.getHandlers()) {
|
||||
if (handler.canHandle(connection)) {
|
||||
return handler.getGenericRepositoryValue(componentProperties, paramName);
|
||||
return handler.getGenericRepositoryValue(connection, componentProperties, paramName);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -629,7 +629,7 @@ public final class ElementParameterParser {
|
||||
return processItem.getProperty().getLabel();
|
||||
}
|
||||
// hywang add for 6484
|
||||
else if ("SELECTED_FILE".equals(param.getRepositoryValue())) { //$NON-NLS-1$
|
||||
else if ("SELECTED_FILE".equals(param.calcRepositoryValue())) { //$NON-NLS-1$
|
||||
IElementParameter propertyParam = param.getElement().getElementParameter("PROPERTY:REPOSITORY_PROPERTY_TYPE"); //$NON-NLS-1$
|
||||
if (propertyParam != null && propertyParam.getValue() != null && !propertyParam.getValue().equals("")) { //$NON-NLS-1$
|
||||
try {
|
||||
|
||||
@@ -32,6 +32,10 @@ public interface IContext {
|
||||
|
||||
public void setConfirmationNeeded(boolean confirmationNeeded);
|
||||
|
||||
public boolean isHide();
|
||||
|
||||
public void setHide(boolean hide);
|
||||
|
||||
public List<IContextParameter> getContextParameterList();
|
||||
|
||||
public void setContextParameterList(List<IContextParameter> contextParameterList);
|
||||
|
||||
@@ -75,4 +75,9 @@ public interface IContextParameter {
|
||||
public String getInternalId();
|
||||
|
||||
public void setInternalId(String internalId);
|
||||
|
||||
/*This value may dirty, only use to cache encrypted value*/
|
||||
public String getOriginEncryptedValue();
|
||||
|
||||
public void setOriginEncryptedValue(String originEncryptedValue);
|
||||
}
|
||||
|
||||
@@ -84,10 +84,30 @@ public interface IElementParameter {
|
||||
|
||||
public Object[] getListItemsValue();
|
||||
|
||||
public String getRepositoryValue();
|
||||
public String calcRepositoryValue();
|
||||
|
||||
/**
|
||||
* use {@link #calcRepositoryValue()} instead
|
||||
*/
|
||||
@Deprecated
|
||||
default public String getRepositoryValue() {
|
||||
return calcRepositoryValue();
|
||||
}
|
||||
|
||||
default public String getRawRepositoryValue() {
|
||||
return calcRepositoryValue();
|
||||
}
|
||||
|
||||
public void setRepositoryValue(String repositoryValue);
|
||||
|
||||
default public String getRepositoryValueIf() {
|
||||
return null;
|
||||
}
|
||||
|
||||
default public void setRepositoryValueIf(String repositoryValue) {
|
||||
|
||||
}
|
||||
|
||||
public String getRepositoryProperty();
|
||||
|
||||
public void setRepositoryProperty(String repositoryProperty);
|
||||
@@ -234,4 +254,13 @@ public interface IElementParameter {
|
||||
public void setSerialized(boolean isSerialized);
|
||||
|
||||
public boolean isSelectedFromItemValue();
|
||||
|
||||
/*This value may dirty, only use to cache encrypted value*/
|
||||
public String getOrignEncryptedValue();
|
||||
|
||||
public void setOrignEncryptedValue(String value);
|
||||
|
||||
public void setDescription (String description);
|
||||
|
||||
public String getDescription ();
|
||||
}
|
||||
|
||||
@@ -71,6 +71,9 @@ public interface IProcess2 extends IRepositoryObject, IProcess {
|
||||
@Override
|
||||
void setActivate(boolean b);
|
||||
|
||||
public boolean isRefactoringToJoblet();
|
||||
|
||||
public void refactoringToJoblet(boolean isRefactoring);
|
||||
/**
|
||||
* DOC qzhang Comment method "checkStartNodes".
|
||||
*/
|
||||
|
||||
@@ -729,7 +729,7 @@ public final class ProcessUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
private static boolean isRoute(Property property) {
|
||||
public static boolean isRoute(Property property) {
|
||||
return property!= null && (ERepositoryObjectType.getType(property).equals(ERepositoryObjectType.PROCESS_ROUTE) ||
|
||||
ERepositoryObjectType.getType(property).equals(ERepositoryObjectType.PROCESS_ROUTE_MICROSERVICE));
|
||||
}
|
||||
@@ -768,6 +768,39 @@ public final class ProcessUtils {
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
public static boolean isRouteWithRoutelets(Item item) {
|
||||
if (item!= null && item instanceof ProcessItem) {
|
||||
for (Object obj : ((ProcessItem) item).getProcess().getNode()) {
|
||||
if (obj instanceof NodeType) {
|
||||
if (isRouteletNode((NodeType) obj)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isRouteletNode(NodeType node) {
|
||||
String jobIds = getParameterValue(node.getElementParameter(), "PROCESS_TYPE:PROCESS_TYPE_PROCESS");
|
||||
String jobVersion = getParameterValue(node.getElementParameter(), "PROCESS_TYPE:PROCESS_TYPE_VERSION"); //$NON-NLS-1$
|
||||
ProcessItem processItem = ItemCacheManager.getProcessItem(jobIds, jobVersion);
|
||||
if (processItem != null) {
|
||||
return ERepositoryObjectType.getType(processItem.getProperty()).equals(
|
||||
ERepositoryObjectType.PROCESS_ROUTELET);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String getParameterValue(EList<ElementParameterType> listParamType, String paramName) {
|
||||
for (ElementParameterType pType : listParamType) {
|
||||
if (pType != null && paramName.equals(pType.getName())) {
|
||||
return pType.getValue();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static int getAssertAmount(IProcess process) {
|
||||
int count = 0;
|
||||
@@ -1058,6 +1091,28 @@ public final class ProcessUtils {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isChildRouteProcess(Item item) {
|
||||
|
||||
if (item!= null && item instanceof ProcessItem) {
|
||||
for (Object obj : ((ProcessItem) item).getProcess().getNode()) {
|
||||
if (obj instanceof NodeType) {
|
||||
if (((NodeType) obj).getComponentName().equals("tRouteInput")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
public static boolean isRoutelet(Property p) {
|
||||
if (p != null) {
|
||||
return ERepositoryObjectType.getType(p).equals(ERepositoryObjectType.PROCESS_ROUTELET);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String escapeJava(String input) {
|
||||
return StringEscapeUtils.escapeJava(input);
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.talend.core.IESBService;
|
||||
import org.talend.core.PluginChecker;
|
||||
import org.talend.core.model.general.Project;
|
||||
import org.talend.core.model.properties.BRMSConnectionItem;
|
||||
import org.talend.core.model.properties.BigQueryConnectionItem;
|
||||
import org.talend.core.model.properties.CSVFileConnectionItem;
|
||||
import org.talend.core.model.properties.ConnectionItem;
|
||||
import org.talend.core.model.properties.ContextItem;
|
||||
@@ -68,6 +69,7 @@ import org.talend.core.model.properties.SalesforceSchemaConnectionItem;
|
||||
import org.talend.core.model.properties.SnippetItem;
|
||||
import org.talend.core.model.properties.SnippetVariable;
|
||||
import org.talend.core.model.properties.TDQItem;
|
||||
import org.talend.core.model.properties.TacokitDatabaseConnectionItem;
|
||||
import org.talend.core.model.properties.ValidationRulesConnectionItem;
|
||||
import org.talend.core.model.properties.WSDLSchemaConnectionItem;
|
||||
import org.talend.core.model.properties.XmlFileConnectionItem;
|
||||
@@ -334,10 +336,6 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
|
||||
"SYSTEM_INDICATORS_TEXT_STATISTICS", 97, true, "repository.systemIndicators.textStatistics.alias",
|
||||
new String[] { PROD_DQ }, new String[] {}, false);
|
||||
|
||||
public final static ERepositoryObjectType TDQ_EXCHANGE = new ERepositoryObjectType("repository.tdqExchange", //$NON-NLS-1$
|
||||
"TDQ_Libraries/Exchange", "TDQ_EXCHANGE", 98, true, "repository.tdqExchange.alias", new String[] { PROD_DQ }, //$NON-NLS-1$
|
||||
new String[] {});
|
||||
|
||||
public final static ERepositoryObjectType METADATA_SALESFORCE_MODULE = new ERepositoryObjectType(
|
||||
"repository.metadataSalesforceModule", "METADATA_SALESFORCE_MODULE", 99, true, true, new String[] { PROD_DI }, //$NON-NLS-1$ //$NON-NLS-2$
|
||||
new String[] {}, false);
|
||||
@@ -360,14 +358,17 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
|
||||
|
||||
public final static ERepositoryObjectType METADATA_SAP_TABLE = new ERepositoryObjectType("repository.SAPTable", //$NON-NLS-1$
|
||||
"METADATA_SAP_TABLE", 104, true, true, new String[] { PROD_DI }, new String[] {}, false);
|
||||
|
||||
|
||||
public final static ERepositoryObjectType METADATA_SAP_CONTENT_EXTRACTOR = new ERepositoryObjectType("repository.SAPTable", //$NON-NLS-1$
|
||||
"METADATA_SAP_CONTENT_EXTRACTOR", 105, true, true, new String[] { PROD_DI }, new String[] {}, false);
|
||||
|
||||
|
||||
public final static ERepositoryObjectType METADATA_CON_CALCULATION_VIEW = new ERepositoryObjectType(
|
||||
"repository.metadataCalculationView", "METADATA_CON_CALCULATION_VIEW", 106, true, true, new String[] { PROD_DI },
|
||||
new String[] {}, false);
|
||||
|
||||
public final static ERepositoryObjectType METADATA_SAP_CDS_VIEW = new ERepositoryObjectType("repository.SAPTable", //$NON-NLS-1$
|
||||
"METADATA_SAP_CDS_VIEW", 107, true, true, new String[] { PROD_DI }, new String[] {}, false);
|
||||
|
||||
private String label;
|
||||
|
||||
private String alias;
|
||||
@@ -505,6 +506,8 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
|
||||
public final static ERepositoryObjectType METADATA_FILE_FTP = ERepositoryObjectType.valueOf("METADATA_FILE_FTP");
|
||||
|
||||
public final static ERepositoryObjectType METADATA_SAPCONNECTIONS = ERepositoryObjectType.valueOf("METADATA_SAPCONNECTIONS");
|
||||
|
||||
public final static ERepositoryObjectType METADATA_BIGQUERYCONNECTIONS = ERepositoryObjectType.valueOf("METADATA_BIGQUERYCONNECTIONS");
|
||||
|
||||
public final static ERepositoryObjectType METADATA_FILE_EBCDIC = ERepositoryObjectType.valueOf("METADATA_FILE_EBCDIC");
|
||||
|
||||
@@ -590,6 +593,14 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
|
||||
.valueOf("METADATA_SAP_BW_INFOOBJECT"); //$NON-NLS-1$
|
||||
|
||||
public final static ERepositoryObjectType JDBC = ERepositoryObjectType.valueOf("JDBC"); //$NON-NLS-1$
|
||||
|
||||
public static final ERepositoryObjectType METADATA_TACOKIT_JDBC = ERepositoryObjectType
|
||||
.valueOf("repository.metadata.tacokit.jdbc.jdbcdatastore"); //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* <font color="red">This value may be <b>null</b> if Snowflake is not installed, <b>should add NPE check</b></font>
|
||||
*/
|
||||
public final static ERepositoryObjectType SNOWFLAKE = ERepositoryObjectType.valueOf("Snowflake"); //$NON-NLS-1$
|
||||
|
||||
private static Map<String, ERepositoryObjectType> typeCacheById = new HashMap<String, ERepositoryObjectType>();
|
||||
|
||||
@@ -865,6 +876,8 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
|
||||
return "DB connection"; //$NON-NLS-1$
|
||||
} else if (type == METADATA_SAPCONNECTIONS) {
|
||||
return "SAPconnection"; //$NON-NLS-1$
|
||||
} else if (type == METADATA_BIGQUERYCONNECTIONS) {
|
||||
return "BigQueryconnection"; //$NON-NLS-1$
|
||||
} else if (type == METADATA_FILE_EBCDIC) {
|
||||
return "fileEBCDIC"; //$NON-NLS-1$
|
||||
} else if (type == METADATA_FILE_HL7) {
|
||||
@@ -1071,11 +1084,20 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
|
||||
public Object caseDatabaseConnectionItem(DatabaseConnectionItem object) {
|
||||
return METADATA_CONNECTIONS;
|
||||
}
|
||||
|
||||
public Object caseTacokitDatabaseConnectionItem(TacokitDatabaseConnectionItem object) {
|
||||
return METADATA_TACOKIT_JDBC;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object caseSAPConnectionItem(SAPConnectionItem object) {
|
||||
return METADATA_SAPCONNECTIONS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object caseBigQueryConnectionItem(BigQueryConnectionItem object) {
|
||||
return METADATA_BIGQUERYCONNECTIONS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object caseDelimitedFileConnectionItem(DelimitedFileConnectionItem object) {
|
||||
|
||||
@@ -102,6 +102,7 @@ import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
|
||||
import org.talend.designer.runprocess.ItemCacheManager;
|
||||
import org.talend.repository.model.IProxyRepositoryFactory;
|
||||
import org.talend.repository.model.IRepositoryNode;
|
||||
import org.talend.repository.model.IRepositoryService;
|
||||
import org.talend.repository.model.RepositoryNode;
|
||||
|
||||
@@ -770,6 +771,15 @@ public abstract class RepositoryUpdateManager {
|
||||
updateConnectionContextParam((ConnectionItem) item, citem, valueMap);
|
||||
}
|
||||
}
|
||||
|
||||
List<IRepositoryViewObject> bigqueryConnList = FACTORY.getAll(ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS, true);
|
||||
for (IRepositoryViewObject obj : bigqueryConnList) {
|
||||
Item item = obj.getProperty().getItem();
|
||||
if (item instanceof ConnectionItem) {
|
||||
updateConnectionContextParam((ConnectionItem) item, citem, valueMap);
|
||||
}
|
||||
}
|
||||
|
||||
for (String updateType : UpdateRepositoryHelper.getAllHadoopConnectionTypes()) {
|
||||
List<IRepositoryViewObject> hadoopConnList = FACTORY
|
||||
.getAll(ERepositoryObjectType.valueOf(ERepositoryObjectType.class, updateType), true);
|
||||
@@ -1914,7 +1924,7 @@ public abstract class RepositoryUpdateManager {
|
||||
return updateQueryObject(query, true, false);
|
||||
}
|
||||
|
||||
public static boolean updateQuery(Query query, RepositoryNode node) {
|
||||
public static boolean updateQuery(Query query, IRepositoryNode node) {
|
||||
return updateQueryObject(query, true, false, node);
|
||||
}
|
||||
|
||||
@@ -1956,7 +1966,7 @@ public abstract class RepositoryUpdateManager {
|
||||
return repositoryUpdateManager.doWork(show, onlySimpleShow);
|
||||
}
|
||||
|
||||
private static boolean updateQueryObject(Object parameter, boolean show, boolean onlySimpleShow, RepositoryNode node) {
|
||||
private static boolean updateQueryObject(Object parameter, boolean show, boolean onlySimpleShow, IRepositoryNode node) {
|
||||
Item item = node.getObject().getProperty().getItem();
|
||||
List<Relation> relations = null;
|
||||
if (parameter instanceof Query) {
|
||||
|
||||
@@ -52,9 +52,9 @@ public final class UpdatesConstants {
|
||||
* Category
|
||||
*/
|
||||
|
||||
public static final String CONTEXT = Messages.getString("UpdatesConstants.Context"); //$NON-NLS-1$
|
||||
public static final String CONTEXT = Messages.getString("UpdatesConstants.ContextVariable"); //$NON-NLS-1$
|
||||
|
||||
public static final String CONTEXT_GROUP = Messages.getString("UpdatesConstants.ContextGroup"); //$NON-NLS-1$
|
||||
public static final String CONTEXT_GROUP = Messages.getString("UpdatesConstants.ContextEnvironment"); //$NON-NLS-1$
|
||||
|
||||
public static final String COMPONENT = Messages.getString("UpdatesConstants.Component"); //$NON-NLS-1$
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ public abstract class AbstractDragAndDropServiceHandler implements IDragAndDropS
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGenericRepositoryValue(List<ComponentProperties> componentProperties, String paramName) {
|
||||
public boolean isGenericRepositoryValue(Connection connection, List<ComponentProperties> componentProperties, String paramName) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -71,12 +71,12 @@ public abstract class AbstractDragAndDropServiceHandler implements IDragAndDropS
|
||||
* java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public Object getGenericRepositoryValue(List<ComponentProperties> componentProperties, String paramName) {
|
||||
public Object getGenericRepositoryValue(Connection connection, List<ComponentProperties> componentProperties, String paramName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGenericPropertiesValue(String paramName){
|
||||
public boolean isGenericPropertiesValue(Connection connection, String paramName){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,9 +119,9 @@ public interface IDragAndDropServiceHandler {
|
||||
* @param paramName
|
||||
* @return
|
||||
*/
|
||||
public boolean isGenericRepositoryValue(List<ComponentProperties> componentProperties, String paramName);
|
||||
public boolean isGenericRepositoryValue(Connection connection, List<ComponentProperties> componentProperties, String paramName);
|
||||
|
||||
public Object getGenericRepositoryValue(List<ComponentProperties> componentProperties, String paramName);
|
||||
public Object getGenericRepositoryValue(Connection connection, List<ComponentProperties> componentProperties, String paramName);
|
||||
|
||||
public boolean isGenericPropertiesValue(String paramName);
|
||||
public boolean isGenericPropertiesValue(Connection connection, String paramName);
|
||||
}
|
||||
|
||||
@@ -856,7 +856,8 @@ public final class ParameterValueUtil {
|
||||
if (param != null) {
|
||||
Object docValue = param.getValue();
|
||||
if (docValue != null) {
|
||||
if ((param.getRepositoryValue() != null && param.getRepositoryValue().toUpperCase().contains("PASSWORD") //$NON-NLS-1$
|
||||
String repositoryValue = param.calcRepositoryValue();
|
||||
if ((repositoryValue != null && repositoryValue.toUpperCase().contains("PASSWORD") //$NON-NLS-1$
|
||||
|| EParameterFieldType.isPassword(param.getFieldType()))//
|
||||
&& !ContextParameterUtils.containContextVariables((String) docValue)) {
|
||||
|
||||
|
||||
@@ -27,17 +27,6 @@ public final class TalendPropertiesUtil {
|
||||
return Boolean.parseBoolean(value);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* DOC ggu Comment method "isHideExchange".
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static boolean isHideExchange() {
|
||||
return isEnabled("talend.hide.exchange") || isEnabled("talend.disable.internet"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* DOC ggu Comment method "isHideBuildNumber".
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
// ============================================================================
|
||||
package org.talend.core.nexus;
|
||||
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
@@ -25,9 +27,9 @@ import org.talend.core.runtime.CoreRuntimePlugin;
|
||||
import org.talend.core.runtime.i18n.Messages;
|
||||
import org.talend.core.runtime.projectsetting.ProjectPreferenceManager;
|
||||
import org.talend.core.service.IRemoteService;
|
||||
import org.talend.core.utils.SecurityStorageUtil;
|
||||
import org.talend.repository.model.IProxyRepositoryFactory;
|
||||
import org.talend.repository.model.RepositoryConstants;
|
||||
import org.talend.utils.security.StudioEncryption;
|
||||
|
||||
/**
|
||||
* created by wchen on 2015年6月16日 Detailled comment
|
||||
@@ -81,6 +83,8 @@ public class TalendLibsServerManager {
|
||||
|
||||
public static final String ENABLE_PROXY_SETTING = "nexus.proxy.enable";
|
||||
|
||||
public static final String NEXUS_PROXY_STORAGE_CATEGORY = "org.talend.artifact.proxy.setting";
|
||||
|
||||
public static final String TALEND_LIB_USER = "";//$NON-NLS-1$
|
||||
|
||||
public static final String TALEND_LIB_PASSWORD = "";//$NON-NLS-1$
|
||||
@@ -255,10 +259,14 @@ public class TalendLibsServerManager {
|
||||
boolean enableProxyFlag = prefManager.getBoolean(TalendLibsServerManager.ENABLE_PROXY_SETTING);
|
||||
if (enableProxyFlag) {
|
||||
serverBean.setServer(prefManager.getValue(TalendLibsServerManager.NEXUS_PROXY_URL));
|
||||
serverBean.setUserName(prefManager.getValue(TalendLibsServerManager.NEXUS_PROXY_USERNAME));
|
||||
serverBean.setPassword(StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM).decrypt(prefManager.getValue(TalendLibsServerManager.NEXUS_PROXY_PASSWORD)));
|
||||
serverBean.setRepositoryId(prefManager.getValue(TalendLibsServerManager.NEXUS_PROXY_REPOSITORY_ID));
|
||||
serverBean.setType(prefManager.getValue(TalendLibsServerManager.NEXUS_PROXY_TYPE));
|
||||
String[] credentials = getProxyArtifactCredentials(serverBean.getServer(), serverBean.getRepositoryId(),
|
||||
NEXUS_PROXY_USERNAME, NEXUS_PROXY_PASSWORD);
|
||||
if (credentials != null) {
|
||||
serverBean.setUserName(credentials[0]);
|
||||
serverBean.setPassword(credentials[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotEmpty(serverBean.getServer())) {
|
||||
@@ -267,6 +275,89 @@ public class TalendLibsServerManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String[] getProxyArtifactCredentials(String url, String repositoryId, String usernameKey, String passwordKey) {
|
||||
if (StringUtils.isBlank(url)) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
String path = getStoragePath(url, repositoryId);
|
||||
Map<String, String> storageNodePairs = SecurityStorageUtil.getSecurityStorageNodePairs(path);
|
||||
if (storageNodePairs != null) {
|
||||
String username = storageNodePairs.get(usernameKey);
|
||||
String password = storageNodePairs.get(passwordKey);
|
||||
if (username == null && password == null) {
|
||||
return null;
|
||||
}
|
||||
return new String[] { username, password };
|
||||
}
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void saveProxyArtifactCredentials(String url, String repositoryId, String usernameKey, String username,
|
||||
String passwordKey, String password) {
|
||||
if (StringUtils.isBlank(url)) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
String path = getStoragePath(url, repositoryId);
|
||||
SecurityStorageUtil.saveToSecurityStorage(path, usernameKey, username, false, false);
|
||||
SecurityStorageUtil.saveToSecurityStorage(path, passwordKey, password, true, false);
|
||||
SecurityStorageUtil.flushSecurityStorage();
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void saveProxyArtifactCredentialsUserName(String url, String repositoryId, String usernameKey, String username,
|
||||
boolean flush) {
|
||||
if (StringUtils.isBlank(url)) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
String path = getStoragePath(url, repositoryId);
|
||||
SecurityStorageUtil.saveToSecurityStorage(path, usernameKey, username, false, flush);
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void saveProxyArtifactCredentialsPassword(String url, String repositoryId, String passwordKey, String password,
|
||||
boolean flush) {
|
||||
if (StringUtils.isBlank(url)) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
String path = getStoragePath(url, repositoryId);
|
||||
SecurityStorageUtil.saveToSecurityStorage(path, passwordKey, password, true, flush);
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void flushSecurityStorage() {
|
||||
try {
|
||||
SecurityStorageUtil.flushSecurityStorage();
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
}
|
||||
|
||||
private String getStoragePath(String url, String repositoryId) throws Exception {
|
||||
String node = url;
|
||||
if (StringUtils.isNotBlank(repositoryId)) {
|
||||
if (!url.endsWith("/")) {
|
||||
node = node + "/";
|
||||
}
|
||||
node = node + repositoryId;
|
||||
}
|
||||
node = URLEncoder.encode(node, "UTF-8");
|
||||
String path = NEXUS_PROXY_STORAGE_CATEGORY + "/" + node;
|
||||
return path;
|
||||
}
|
||||
|
||||
public ArtifactRepositoryBean getTalentArtifactServer() {
|
||||
ArtifactRepositoryBean serverBean = getProxyArtifactServer();
|
||||
if (serverBean == null) {
|
||||
|
||||
@@ -15,6 +15,7 @@ package org.talend.core.runtime.evaluator;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang3.StringEscapeUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.talend.core.model.utils.ContextParameterUtils;
|
||||
import org.talend.core.runtime.util.GenericTypeUtils;
|
||||
import org.talend.core.utils.TalendQuoteUtils;
|
||||
@@ -127,6 +128,9 @@ public abstract class AbstractPropertyValueEvaluator implements PropertyValueEva
|
||||
|
||||
if (GenericTypeUtils.isStringType(property)) {
|
||||
if (property.isFlag(Property.Flags.ENCRYPT)) {
|
||||
if (!StringUtils.isEmpty(stringValue)) {
|
||||
stringValue = stringValue.replace("\\\"", "\"");
|
||||
}
|
||||
return TalendQuoteUtils.removeQuotes(stringValue);
|
||||
}
|
||||
return TalendQuoteUtils.removeQuotes(StringEscapeUtils.unescapeJava(stringValue));
|
||||
|
||||
@@ -492,8 +492,8 @@ EUpdateResult.Reload=Reload components
|
||||
EUpdateResult.Rename=Change the name
|
||||
EUpdateResult.Add=Add from repository
|
||||
EUpdateResult.Delete=Delete from repository
|
||||
UpdatesConstants.Context=Context
|
||||
UpdatesConstants.ContextGroup=Context Group
|
||||
UpdatesConstants.ContextVariable=Context variable
|
||||
UpdatesConstants.ContextEnvironment=Context environment
|
||||
UpdatesConstants.Component=Component
|
||||
UpdatesConstants.Joblet=Joblet
|
||||
UpdatesConstants.Spark_Joblet=Spark_Joblet
|
||||
@@ -640,7 +640,7 @@ TalendLibsServerManager.cannotGetUserLibraryServer=Cannot get the user library s
|
||||
MigrationReportAccessDialog.title=Project items migration
|
||||
MigrationReportAccessDialog.migrateSuccess=Project items migrated successfully.
|
||||
MigrationReportAccessDialog.completeReportAvailable=Check the report
|
||||
MigrationReportAccessDialog.accessReport=here
|
||||
MigrationReportAccessDialog.accessBrowse=Browse...
|
||||
MigrationReportAccessDialog.provideAnalysisTool=You can run project analysis now to analyze your migrated project. This experimental tool will generate a report containing:
|
||||
MigrationReportAccessDialog.listOfProblems=- List of items to fix manually.
|
||||
MigrationReportAccessDialog.listItems=- List of items to check.
|
||||
@@ -655,7 +655,7 @@ ItemAnalysisReportManager.Warning.message=Can't run a new analysis now. Wait for
|
||||
AnalysisReportAccessDialog.shellTitle=Project analysis
|
||||
AnalysisReportAccessDialog.generateSuccess=Project analysis completed successfully.
|
||||
AnalysisReportAccessDialog.completeReportAvailable=Check the report
|
||||
AnalysisReportAccessDialog.accessReport=here
|
||||
AnalysisReportAccessDialog.accessBrowse=Browse...
|
||||
AbstractPomTemplateProjectSettingPage.defaultTabLabel=Default
|
||||
AbstractPomTemplateProjectSettingPage.customTabLabel=Custom
|
||||
AbstractPomTemplateProjectSettingPage.previewButton=Preview
|
||||
|
||||
@@ -492,8 +492,8 @@ EUpdateResult.Reload=Recharger les composants
|
||||
EUpdateResult.Rename=Changer le nom
|
||||
EUpdateResult.Add=Ajouter \u00E0 partir du r\u00E9f\u00E9rentiel
|
||||
EUpdateResult.Delete=Supprimer du r\u00E9f\u00E9rentiel
|
||||
UpdatesConstants.Context=Contexte
|
||||
UpdatesConstants.ContextGroup=Groupe de contextes
|
||||
UpdatesConstants.ContextVariable=Variable de contexte
|
||||
UpdatesConstants.ContextEnvironment=Environnement de contexte
|
||||
UpdatesConstants.Component=Composant
|
||||
UpdatesConstants.Joblet=Joblet
|
||||
UpdatesConstants.Spark_Joblet=Spark_Joblet
|
||||
@@ -640,7 +640,7 @@ TalendLibsServerManager.cannotGetUserLibraryServer=Impossible d'obtenir le serve
|
||||
MigrationReportAccessDialog.title=Migration des \u00E9l\u00E9ments du projet
|
||||
MigrationReportAccessDialog.migrateSuccess=Les \u00E9l\u00E9ments du projet ont bien \u00E9t\u00E9 migr\u00E9s.
|
||||
MigrationReportAccessDialog.completeReportAvailable=Consulter le rapport
|
||||
MigrationReportAccessDialog.accessReport=ici
|
||||
MigrationReportAccessDialog.accessBrowse=Parcourir...
|
||||
MigrationReportAccessDialog.provideAnalysisTool=Vous pouvez ex\u00E9cuter une analyse de projet pour analyser votre projet migr\u00E9. Cet outil exp\u00E9rimental va g\u00E9n\u00E9rer un rapport contenant\u00A0:
|
||||
MigrationReportAccessDialog.listOfProblems=- la liste des \u00E9l\u00E9ments \u00E0 corriger manuellement,
|
||||
MigrationReportAccessDialog.listItems=- la liste des \u00E9l\u00E9ments \u00E0 v\u00E9rifier.
|
||||
@@ -655,7 +655,7 @@ ItemAnalysisReportManager.Warning.message=Impossible d'ex\u00E9cuter une analyse
|
||||
AnalysisReportAccessDialog.shellTitle=Analyse du projet
|
||||
AnalysisReportAccessDialog.generateSuccess=Analyse du projet termin\u00E9e.
|
||||
AnalysisReportAccessDialog.completeReportAvailable=Consulter le rapport
|
||||
AnalysisReportAccessDialog.accessReport=ici
|
||||
AnalysisReportAccessDialog.accessBrowse=Parcourir...
|
||||
AbstractPomTemplateProjectSettingPage.defaultTabLabel=Par d\u00E9faut
|
||||
AbstractPomTemplateProjectSettingPage.customTabLabel=Personnalis\u00E9
|
||||
AbstractPomTemplateProjectSettingPage.previewButton=Aper\u00E7u
|
||||
|
||||
@@ -492,8 +492,8 @@ EUpdateResult.Reload=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30EA\u30E
|
||||
EUpdateResult.Rename=\u540D\u524D\u3092\u5909\u66F4
|
||||
EUpdateResult.Add=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u304B\u3089\u8FFD\u52A0
|
||||
EUpdateResult.Delete=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u304B\u3089\u524A\u9664
|
||||
UpdatesConstants.Context=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8
|
||||
UpdatesConstants.ContextGroup=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7
|
||||
UpdatesConstants.ContextVariable=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u5909\u6570
|
||||
UpdatesConstants.ContextEnvironment=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u74B0\u5883
|
||||
UpdatesConstants.Component=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8
|
||||
UpdatesConstants.Joblet=\u30B8\u30E7\u30D6\u30EC\u30C3\u30C8
|
||||
UpdatesConstants.Spark_Joblet=Spark_Joblet
|
||||
@@ -640,7 +640,7 @@ TalendLibsServerManager.cannotGetUserLibraryServer=\u30EA\u30E2\u30FC\u30C8\u7BA
|
||||
MigrationReportAccessDialog.title=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u9805\u76EE\u3092\u79FB\u884C
|
||||
MigrationReportAccessDialog.migrateSuccess=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u9805\u76EE\u304C\u6B63\u3057\u304F\u79FB\u884C\u3055\u308C\u307E\u3057\u305F\u3002
|
||||
MigrationReportAccessDialog.completeReportAvailable=\u30EC\u30DD\u30FC\u30C8\u3092\u30C1\u30A7\u30C3\u30AF
|
||||
MigrationReportAccessDialog.accessReport=\u3053\u3061\u3089
|
||||
MigrationReportAccessDialog.accessBrowse=\u53C2\u7167...
|
||||
MigrationReportAccessDialog.provideAnalysisTool=\u4ECA\u3059\u3050\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206\u6790\u3092\u5B9F\u884C\u3057\u3066\u3001\u79FB\u884C\u3055\u308C\u305F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u5206\u6790\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u8A66\u9A13\u7684\u306A\u30C4\u30FC\u30EB\u306B\u3088\u3063\u3066\u3001\u4EE5\u4E0B\u304C\u542B\u307E\u308C\u308B\u30EC\u30DD\u30FC\u30C8\u304C\u751F\u6210\u3055\u308C\u307E\u3059:
|
||||
MigrationReportAccessDialog.listOfProblems=- \u624B\u52D5\u3067\u4FEE\u6B63\u3059\u308B\u30A2\u30A4\u30C6\u30E0\u306E\u30EA\u30B9\u30C8\u3002
|
||||
MigrationReportAccessDialog.listItems=- \u30C1\u30A7\u30C3\u30AF\u3059\u308B\u30A2\u30A4\u30C6\u30E0\u306E\u30EA\u30B9\u30C8\u3002
|
||||
@@ -655,7 +655,7 @@ ItemAnalysisReportManager.Warning.message=\u65B0\u3057\u3044\u5206\u6790\u3092\u
|
||||
AnalysisReportAccessDialog.shellTitle=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206\u6790
|
||||
AnalysisReportAccessDialog.generateSuccess=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206\u6790\u304C\u6B63\u3057\u304F\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002
|
||||
AnalysisReportAccessDialog.completeReportAvailable=\u30EC\u30DD\u30FC\u30C8\u3092\u30C1\u30A7\u30C3\u30AF
|
||||
AnalysisReportAccessDialog.accessReport=\u3053\u3061\u3089
|
||||
AnalysisReportAccessDialog.accessBrowse=\u53C2\u7167...
|
||||
AbstractPomTemplateProjectSettingPage.defaultTabLabel=\u30C7\u30D5\u30A9\u30EB\u30C8
|
||||
AbstractPomTemplateProjectSettingPage.customTabLabel=\u30AB\u30B9\u30BF\u30E0
|
||||
AbstractPomTemplateProjectSettingPage.previewButton=\u30D7\u30EC\u30D3\u30E5\u30FC
|
||||
|
||||
@@ -492,8 +492,8 @@ EUpdateResult.Reload=\u91CD\u65B0\u52A0\u8F7D\u7EC4\u4EF6
|
||||
EUpdateResult.Rename=\u66F4\u6539\u540D\u79F0
|
||||
EUpdateResult.Add=\u4ECE\u5B58\u50A8\u5E93\u6DFB\u52A0
|
||||
EUpdateResult.Delete=\u4ECE\u5B58\u50A8\u5E93\u4E2D\u5220\u9664
|
||||
UpdatesConstants.Context=\u4E0A\u4E0B\u6587
|
||||
UpdatesConstants.ContextGroup=\u4E0A\u4E0B\u6587\u7EC4
|
||||
UpdatesConstants.ContextVariable=\u4E0A\u4E0B\u6587\u53D8\u91CF
|
||||
UpdatesConstants.ContextEnvironment=\u4E0A\u4E0B\u6587\u73AF\u5883
|
||||
UpdatesConstants.Component=\u7EC4\u4EF6
|
||||
UpdatesConstants.Joblet=Joblet
|
||||
UpdatesConstants.Spark_Joblet=Spark_Joblet
|
||||
@@ -640,7 +640,7 @@ TalendLibsServerManager.cannotGetUserLibraryServer=\u65E0\u6CD5\u4ECE\u8FDC\u7A0
|
||||
MigrationReportAccessDialog.title=\u5DE5\u7A0B\u9879\u76EE\u8FC1\u79FB
|
||||
MigrationReportAccessDialog.migrateSuccess=\u5DE5\u7A0B\u9879\u76EE\u8FC1\u79FB\u6210\u529F\u3002
|
||||
MigrationReportAccessDialog.completeReportAvailable=\u8BF7\u68C0\u67E5\u62A5\u544A
|
||||
MigrationReportAccessDialog.accessReport=\u6B64\u5904
|
||||
MigrationReportAccessDialog.accessBrowse=\u6D4F\u89C8...
|
||||
MigrationReportAccessDialog.provideAnalysisTool=\u60A8\u73B0\u5728\u53EF\u4EE5\u8FD0\u884C\u5DE5\u7A0B\u5206\u6790\u4EE5\u5206\u6790\u8FC1\u79FB\u7684\u5DE5\u7A0B\u3002\u6B64\u5B9E\u9A8C\u6027\u5DE5\u5177\u5C06\u751F\u6210\u4E00\u4EFD\u5206\u6790\u62A5\u544A\uFF0C\u5176\u4E2D\u5305\u542B:
|
||||
MigrationReportAccessDialog.listOfProblems=- \u9700\u8981\u624B\u52A8\u4FEE\u590D\u7684\u9879\u76EE\u6E05\u5355\u3002
|
||||
MigrationReportAccessDialog.listItems=- \u9700\u8981\u68C0\u67E5\u7684\u9879\u76EE\u6E05\u5355\u3002
|
||||
@@ -655,7 +655,7 @@ ItemAnalysisReportManager.Warning.message=\u73B0\u5728\u65E0\u6CD5\u8FD0\u884C\u
|
||||
AnalysisReportAccessDialog.shellTitle=\u5DE5\u7A0B\u5206\u6790
|
||||
AnalysisReportAccessDialog.generateSuccess=\u5DE5\u7A0B\u5206\u6790\u6210\u529F\u5B8C\u6210\u3002
|
||||
AnalysisReportAccessDialog.completeReportAvailable=\u8BF7\u68C0\u67E5\u62A5\u544A
|
||||
AnalysisReportAccessDialog.accessReport=\u6B64\u5904
|
||||
AnalysisReportAccessDialog.accessBrowse=\u6D4F\u89C8...
|
||||
AbstractPomTemplateProjectSettingPage.defaultTabLabel=\u9ED8\u8BA4
|
||||
AbstractPomTemplateProjectSettingPage.customTabLabel=\u81EA\u5B9A\u4E49
|
||||
AbstractPomTemplateProjectSettingPage.previewButton=\u9884\u89C8
|
||||
|
||||
@@ -78,5 +78,7 @@ public interface MavenConstants {
|
||||
static final String PACKAGING_JAR = "jar";
|
||||
|
||||
static final String PACKAGING_POM = "pom";
|
||||
|
||||
static final String PACKAGING_BUNDLE = "bundle";
|
||||
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user