Compare commits

..

2 Commits

Author SHA1 Message Date
hwang
4214d7f282 feature(TUP-24029):[FTP] Connection wizard add timeout property #2684 2019-09-20 11:13:01 +08:00
hwang
bb56131ffb Revert "bugfix(TUP-24029):[FTP] Connection wizard add timeout property (#2684)"
This reverts commit 992e01de37.
2019-09-19 18:16:28 +08:00
589 changed files with 15589 additions and 12887 deletions

View File

@@ -51,17 +51,16 @@
fragment="true"/>
<plugin
id="org.talend.libraries.apache.lucene8"
id="org.talend.libraries.apache.lucene6"
download-size="0"
install-size="0"
version="0.0.0"
unpack="true"/>
version="0.0.0"/>
<plugin
id="org.talend.libraries.apache.lucene4"
download-size="0"
install-size="0"
version="0.0.0"
unpack="true"/>
unpack="false"/>
</feature>

View File

@@ -114,9 +114,6 @@ public class CommonsPlugin implements BundleActivator {
return Boolean.getBoolean("junit_test"); //$NON-NLS-1$
}
public static boolean isTUJTest() {
return "org.talend.rcp.branding.tuj.product".equals(Platform.getProduct().getId()); //$NON-NLS-1$
}
/**
* Answer the file associated with name. This handles the case of running as a plugin and running standalone which

View File

@@ -58,6 +58,3 @@ AS400ResultSet.unknowCloumn=Invalid argument\: unknown column name
AS400ResultSet.parameterIndex=Invalid argument\: parameter index
AS400ResultSet.outofRange=\ is out of range.
ITaCoKitService.exception.multipleInstance=More than one instance found: {0}
TalendProxySelector.exception.badUriMap=Bad uri map: {0}
TalendProxySelector.exception.proxySelectionError=Error occurs when selecting proxy for {0}

View File

@@ -21,23 +21,29 @@ import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import org.apache.commons.codec.binary.Base64;
import org.talend.utils.security.StudioEncryption;
import org.talend.utils.security.AESEncryption;
/**
* DOC chuang class global comment. Detailled comment
*/
public class PasswordEncryptUtil {
public static final String ENCRYPT_KEY = "Encrypt"; //$NON-NLS-1$
public static String ENCRYPT_KEY = "Encrypt"; //$NON-NLS-1$
private static String rawKey = "Talend-Key"; //$NON-NLS-1$
public static String PREFIX_PASSWORD = "ENC:["; //$NON-NLS-1$
public static String POSTFIX_PASSWORD = "]"; //$NON-NLS-1$
private static SecretKey key = null;
private static final SecureRandom SECURERANDOM = new SecureRandom();
private static SecureRandom secureRandom = new SecureRandom();
private static SecretKey getSecretKey() throws Exception {
if (key == null) {
byte rawKeyData[] = StudioEncryption.getKeySource(StudioEncryption.EncryptionKeyName.MIGRATION.toString(), false)
.getKey();
byte rawKeyData[] = rawKey.getBytes();
DESKeySpec dks = new DESKeySpec(rawKeyData);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); //$NON-NLS-1$
key = keyFactory.generateSecret(dks);
@@ -59,7 +65,7 @@ public class PasswordEncryptUtil {
SecretKey key = getSecretKey();
Cipher c = Cipher.getInstance("DES"); //$NON-NLS-1$
c.init(Cipher.ENCRYPT_MODE, key, SECURERANDOM);
c.init(Cipher.ENCRYPT_MODE, key, secureRandom);
byte[] cipherByte = c.doFinal(input.getBytes());
String dec = new String(Base64.encodeBase64(cipherByte));
return dec;
@@ -79,7 +85,7 @@ public class PasswordEncryptUtil {
byte[] dec = Base64.decodeBase64(input.getBytes());
SecretKey key = getSecretKey();
Cipher c = Cipher.getInstance("DES"); //$NON-NLS-1$
c.init(Cipher.DECRYPT_MODE, key, SECURERANDOM);
c.init(Cipher.DECRYPT_MODE, key, secureRandom);
byte[] clearByte = c.doFinal(dec);
return new String(clearByte);
}
@@ -93,7 +99,7 @@ public class PasswordEncryptUtil {
if (input == null) {
return input;
}
return StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.ROUTINE).encrypt(input);
return PREFIX_PASSWORD + AESEncryption.encryptPassword(input) + POSTFIX_PASSWORD;
}
/**

View File

@@ -19,7 +19,6 @@ import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
@@ -193,27 +192,6 @@ public class VersionUtils {
return talendVersion;
}
public static String getTalendPureVersion(String fullProductVersion) {
String version = fullProductVersion;
String[] splitStr = fullProductVersion.split("-"); //$NON-NLS-1$
Pattern pattern = Pattern.compile("((\\d+\\.){2}\\d.*)"); //$NON-NLS-1$
StringBuffer versionStr = new StringBuffer();
boolean find = false;
for (String str : splitStr) {
if (find) {
versionStr.append("-").append(str); //$NON-NLS-1$
}else {
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
find = true;
versionStr.append(str); // $NON-NLS-1$
}
}
}
return getTalendVersion(versionStr.toString());
}
public static String getTalendVersion(String productVersion) {
try {
org.osgi.framework.Version v = new org.osgi.framework.Version(productVersion);

View File

@@ -342,7 +342,7 @@ public class CharsetToolkit {
return (buffer[0] == -2 && buffer[1] == -1);
}
public static String getCharset(File file) {
public static String getCharset(File file){
String charset = "UTF-8";
byte[] fileContent = null;
FileInputStream fin = null;
@@ -350,18 +350,11 @@ public class CharsetToolkit {
fin = new FileInputStream(file.getPath());
fileContent = new byte[(int) file.length()];
fin.read(fileContent);
byte[] data = fileContent;
byte[] data = fileContent;
charset = getCharset(data);
} catch (IOException e) {
charset = "UTF-8";
} finally {
if (fin != null) {
try {
fin.close();
} catch (IOException e) {
// Ignore here
}
}
}
return charset;
}

View File

@@ -49,10 +49,9 @@ public class NetworkUtil {
if ("true".equals(disableInternet)) { //$NON-NLS-1$
return false;
}
HttpURLConnection conn = null;
try {
URL url = new URL(HTTP_NETWORK_URL);
conn = (HttpURLConnection) url.openConnection();
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(4000);
conn.setReadTimeout(4000);
@@ -64,36 +63,9 @@ public class NetworkUtil {
if (strMessage.equals("OK")) { //$NON-NLS-1$
return true;
}
conn.disconnect();
} catch (Exception e) {
return false;
} finally {
conn.disconnect();
}
return true;
}
public static boolean isNetworkValid(String url) {
if (url == null) {
return isNetworkValid();
}
return checkValidWithHttp(url);
}
private static boolean checkValidWithHttp(String urlString) {
HttpURLConnection conn = null;
try {
URL url = new URL(urlString);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(4000);
conn.setReadTimeout(4000);
conn.setRequestMethod("HEAD"); //$NON-NLS-1$
conn.getResponseMessage();
} catch (Exception e) {
// if not reachable , will throw exception(time out/unknown host) .So if catched exception, make it a
// invalid server
return false;
} finally {
conn.disconnect();
}
return true;
}

View File

@@ -13,155 +13,37 @@
package org.talend.commons.utils.network;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import java.net.ProxySelector;
import java.net.SocketAddress;
import java.net.URI;
import java.net.URISyntaxException;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Priority;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.i18n.internal.Messages;
/**
* DOC cmeng class global comment. Detailled comment
*/
public class TalendProxySelector extends ProxySelector {
public static final String PROP_PRINT_LOGS = "talend.studio.proxy.printLogs";
private static final String ECLIPSE_PROXY_SELECTOR = ".EclipseProxySelector"; //$NON-NLS-1$
private static final String PROP_ALLOW_PROXY_REDIRECT = "talend.studio.proxy.allowProxyRedirect";
private static final String PROP_ALLOW_PROXY_REDIRECT_EXCLUDE = "talend.studio.proxy.redirect.whiteList";
private static final String PROP_PROXY_HOST_MAP = "talend.studio.proxy.hostMap";
private static final String PROP_DISABLE_DEFAULT_SELECTOR = "talend.studio.proxy.disableDefaultSelector";
/**
* Example: update.talend.com,socket:http,https:http;nexus.talend.com,socket,http;,socket:http
*/
private static final String PROP_PROXY_MAP_HOST_DEFAULT = "";
/**
* Example: svn.company.com;nexus.company.com
*/
private static final String PROP_ALLOW_PROXY_REDIRECT_EXCLUDE_DEFAULT = "";
private static final String KEY_DEFAULT = ":default:";
private ProxySelector defaultSelector;
final private Map<Object, Collection<IProxySelectorProvider>> selectorProviders;
private Map<String, Map<String, String>> hostMap;
private Set<String> redirectWhiteList;
final private List<IProxySelectorProvider> selectorProviders;
private volatile static TalendProxySelector instance;
private static Object instanceLock = new Object();
private boolean printProxyLog = false;
private boolean allowProxyRedirect = false;
private boolean disableDefaultSelector = false;
private TalendProxySelector(final ProxySelector defaultSelector) {
this.defaultSelector = defaultSelector;
selectorProviders = Collections.synchronizedMap(new HashMap<>());
allowProxyRedirect = Boolean.valueOf(System.getProperty(PROP_ALLOW_PROXY_REDIRECT, Boolean.FALSE.toString()));
disableDefaultSelector = Boolean.valueOf(System.getProperty(PROP_DISABLE_DEFAULT_SELECTOR, Boolean.FALSE.toString()));
printProxyLog = Boolean.valueOf(System.getProperty(PROP_PRINT_LOGS, Boolean.FALSE.toString()));
initHostMap();
initRedirectList();
}
private void initHostMap() {
try {
hostMap = new HashMap<>();
String property = System.getProperty(PROP_PROXY_HOST_MAP, PROP_PROXY_MAP_HOST_DEFAULT);
if (StringUtils.isEmpty(property)) {
return;
}
String[] splits = property.split(";");
for (String split : splits) {
try {
int index = split.indexOf(',');
String uri = split.substring(0, index);
String key = StringUtils.strip(uri);
if (StringUtils.isBlank(key)) {
key = KEY_DEFAULT;
}
key = key.toLowerCase();
Map<String, String> protocolMap = hostMap.get(key);
if (protocolMap == null) {
protocolMap = new HashMap<>();
hostMap.put(key, protocolMap);
}
int protocolMapIndex = index + 1;
String protocolMapStr = split.substring(protocolMapIndex);
String[] entry = protocolMapStr.split(",");
for (String pMap : entry) {
try {
String[] mapEntry = pMap.split(":");
if (mapEntry.length != 2) {
ExceptionHandler.process(
new Exception(Messages.getString("TalendProxySelector.exception.badUriMap", pMap)));
continue;
}
protocolMap.put(mapEntry[0].toLowerCase(), mapEntry[1].toLowerCase());
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
private void initRedirectList() {
try {
redirectWhiteList = new HashSet<>();
String property = System.getProperty(PROP_ALLOW_PROXY_REDIRECT_EXCLUDE, PROP_ALLOW_PROXY_REDIRECT_EXCLUDE_DEFAULT);
if (StringUtils.isEmpty(property)) {
return;
}
String[] split = property.split(";");
for (String host : split) {
host = StringUtils.strip(host);
if (StringUtils.isBlank(host)) {
host = KEY_DEFAULT;
}
redirectWhiteList.add(host);
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
selectorProviders = new ArrayList<>();
}
public static TalendProxySelector getInstance() {
@@ -199,109 +81,8 @@ public class TalendProxySelector extends ProxySelector {
@Override
public List<Proxy> select(final URI uri) {
Set<Proxy> results = new LinkedHashSet<>();
try {
final Set<Proxy> resultFromProviders = getProxysFromProviders(uri);
if (resultFromProviders != null && !resultFromProviders.isEmpty()) {
results.addAll(resultFromProviders);
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
ProxySelector defaultProxySelector = getDefaultProxySelector();
if (defaultProxySelector != null) {
URI newUri = getNewUri(uri);
List<Proxy> defaultProxys = defaultProxySelector.select(newUri);
try {
results.addAll(filterProxys(uri, defaultProxys));
} catch (Exception e) {
results.addAll(defaultProxys);
ExceptionHandler.process(e);
}
}
if (printProxyLog) {
String proxys = results.toString();
ExceptionHandler.log("Selected proxys for " + uri + ", " + proxys);
ExceptionHandler.process(new Exception("Proxy call stacks"), Priority.INFO);
}
return new LinkedList<Proxy>(results);
}
private List<Proxy> filterProxys(final URI uri, List<Proxy> defaultProxys) {
List<Proxy> result = new ArrayList<>();
if (defaultProxys != null && !defaultProxys.isEmpty()) {
for (Proxy proxy : defaultProxys) {
SocketAddress addr = null;
Proxy.Type proxyType = null;
if (proxy != null) {
proxyType = proxy.type();
addr = proxy.address();
}
boolean redirect = true;
if (!allowProxyRedirect) {
String host = uri.getHost();
if (host == null) {
host = "";
}
host = StringUtils.strip(host).toLowerCase();
if (this.redirectWhiteList.contains(host) || this.redirectWhiteList.contains(KEY_DEFAULT)) {
redirect = true;
} else if (Proxy.Type.DIRECT == proxyType
|| (addr != null && StringUtils.equals(uri.getHost(), ((InetSocketAddress) addr).getHostString()))) {
redirect = false;
}
}
if (redirect) {
result.add(proxy);
} else {
result.add(Proxy.NO_PROXY);
}
}
}
return result;
}
private URI getNewUri(URI uri) {
URI newUri = uri;
if (newUri != null) {
String host = newUri.getHost();
Map<String, String> protocolMap = null;
if (StringUtils.isNotBlank(host)) {
protocolMap = hostMap.get(host.toLowerCase());
}
if (protocolMap == null) {
protocolMap = hostMap.get(KEY_DEFAULT);
}
if (protocolMap != null) {
String schema = newUri.getScheme();
if (schema != null) {
String lowercasedProtocol = schema.toLowerCase();
String preferedProtocol = protocolMap.get(lowercasedProtocol);
if (StringUtils.isNotBlank(preferedProtocol)) {
try {
newUri = new URI(preferedProtocol, newUri.getUserInfo(), newUri.getHost(), newUri.getPort(),
newUri.getPath(), newUri.getQuery(), newUri.getFragment());
} catch (URISyntaxException e) {
if (printProxyLog) {
ExceptionHandler.process(new Exception(
Messages.getString("TalendProxySelector.exception.proxySelectionError", newUri), e),
Priority.WARN);
}
}
}
}
}
}
return newUri;
}
private Set<Proxy> getProxysFromProviders(final URI uri) {
final Set<Proxy> resultFromProviders = new LinkedHashSet<>();
Collection<IProxySelectorProvider> providers = getCustomProviders(uri);
final Set<Proxy> resultFromProviders = new HashSet<>();
List<IProxySelectorProvider> providers = getProxySelectorProviders();
if (providers != null) {
providers.stream().forEach(p -> {
if (instance == p) {
@@ -319,79 +100,36 @@ public class TalendProxySelector extends ProxySelector {
}
});
}
return resultFromProviders;
}
List<Proxy> result = new ArrayList<>();
private Collection<IProxySelectorProvider> getCustomProviders(final URI uri) {
Collection<IProxySelectorProvider> providers = Collections.EMPTY_LIST;
Collection<Object> possibleKeys = getPossibleKeys(uri);
for (Object key : possibleKeys) {
providers = this.selectorProviders.get(key);
if (providers != null) {
break;
if (resultFromProviders != null && !resultFromProviders.isEmpty()) {
result.addAll(resultFromProviders);
}
ProxySelector defaultProxySelector = getDefaultProxySelector();
if (defaultProxySelector != null) {
List<Proxy> defaultProxys = defaultProxySelector.select(uri);
if (defaultProxys != null && !defaultProxys.isEmpty()) {
result.addAll(defaultProxys);
}
}
return providers;
}
public PasswordAuthentication getHttpPasswordAuthentication() {
String[] schemas = new String[] { "http", "https" };
for (String schema : schemas) {
String proxyUser = System.getProperty(schema + ".proxyUser");
String proxyPassword = System.getProperty(schema + ".proxyPassword");
if (StringUtils.isNotBlank(proxyUser)) {
char[] pwdChars = new char[0];
if (proxyPassword != null && !proxyPassword.isEmpty()) {
pwdChars = proxyPassword.toCharArray();
}
return new PasswordAuthentication(proxyUser, pwdChars);
}
}
return null;
return result;
}
public boolean addProxySelectorProvider(IProxySelectorProvider provider) {
try {
Object key = provider.getKey();
Collection<IProxySelectorProvider> collection = this.selectorProviders.get(key);
if (collection == null) {
synchronized (this.selectorProviders) {
collection = this.selectorProviders.get(key);
if (collection == null) {
collection = Collections.synchronizedList(new LinkedList<>());
this.selectorProviders.put(key, collection);
}
}
}
collection.add(provider);
return true;
} catch (Exception e) {
ExceptionHandler.process(e);
List<IProxySelectorProvider> proxySelectorProviders = getProxySelectorProviders();
if (!proxySelectorProviders.contains(provider)) {
return proxySelectorProviders.add(provider);
}
return false;
}
public boolean removeProxySelectorProvider(IProxySelectorProvider provider) {
try {
Object key = provider.getKey();
Collection<IProxySelectorProvider> collection = this.selectorProviders.get(key);
if (collection != null) {
synchronized (this.selectorProviders) {
collection = this.selectorProviders.get(key);
if (collection != null) {
collection.remove(provider);
if (collection.isEmpty()) {
this.selectorProviders.remove(key);
}
}
}
}
return true;
} catch (Exception e) {
ExceptionHandler.process(e);
}
return false;
return getProxySelectorProviders().remove(provider);
}
private List<IProxySelectorProvider> getProxySelectorProviders() {
return selectorProviders;
}
public ProxySelector getDefaultProxySelector() {
@@ -404,7 +142,7 @@ public class TalendProxySelector extends ProxySelector {
@Override
public void connectFailed(final URI uri, final SocketAddress sa, final IOException ioe) {
Collection<IProxySelectorProvider> providers = getCustomProviders(uri);
List<IProxySelectorProvider> providers = getProxySelectorProviders();
if (providers != null) {
providers.stream().forEach(p -> {
if (p.canHandle(uri)) {
@@ -419,110 +157,22 @@ public class TalendProxySelector extends ProxySelector {
}
}
public IProxySelectorProvider createDefaultProxySelectorProvider() {
if (disableDefaultSelector) {
return null;
}
return new DefaultProxySelectorProvider(Thread.currentThread());
}
public IProxySelectorProvider createDefaultProxySelectorProvider(String host) {
if (disableDefaultSelector) {
return null;
}
return new DefaultProxySelectorProvider(host);
}
public static Collection<Object> getPossibleKeys(URI uri) {
Collection<Object> possibleKeys = new ArrayList<>();
possibleKeys.add(Thread.currentThread());
if (uri != null) {
String uriHost = uri.getHost();
if (StringUtils.isNotBlank(uriHost)) {
possibleKeys.add(uriHost);
}
}
return possibleKeys;
}
private class DefaultProxySelectorProvider extends AbstractProxySelectorProvider {
private Thread currentThread = null;
private String host = null;
public DefaultProxySelectorProvider(Thread thread) {
this.currentThread = thread;
}
public DefaultProxySelectorProvider(String host) {
this.host = host;
if (StringUtils.isNotBlank(this.host)) {
this.host = this.host.toLowerCase();
}
}
public static abstract class AbstractProxySelectorProvider implements IProxySelectorProvider {
@Override
public Object getKey() {
if (this.currentThread != null) {
return currentThread;
}
if (this.host != null) {
return this.host;
}
return super.getKey();
public void connectFailed(final URI uri, final SocketAddress sa, final IOException ioe) {
// nothing to do
}
@Override
public boolean canHandle(URI uri) {
if (disableDefaultSelector) {
return false;
}
if (currentThread != null && Thread.currentThread() == currentThread) {
return true;
}
if (host != null) {
if (uri == null) {
return false;
}
String uriHost = uri.getHost();
if (StringUtils.isNotBlank(uriHost)) {
return this.host.equals(uriHost.toLowerCase());
}
return false;
}
return false;
}
}
@Override
public List<Proxy> select(URI uri) {
List<Proxy> result = new ArrayList<>();
try {
ProxySelector defaultProxySelector = getDefaultProxySelector();
if (defaultProxySelector != null) {
List<Proxy> defaultProxys = defaultProxySelector.select(uri);
if (defaultProxys != null && !defaultProxys.isEmpty()) {
for (Proxy proxy : defaultProxys) {
SocketAddress addr = null;
Proxy.Type proxyType = null;
if (proxy != null) {
proxyType = proxy.type();
addr = proxy.address();
}
if (Proxy.Type.DIRECT == proxyType || (addr != null
&& StringUtils.equals(uri.getHost(), ((InetSocketAddress) addr).getHostString()))) {
result.add(Proxy.NO_PROXY);
} else {
result.add(proxy);
}
}
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
return result;
}
public static interface IProxySelectorProvider {
boolean canHandle(final URI uri);
List<Proxy> select(final URI uri);
void connectFailed(final URI uri, final SocketAddress sa, final IOException ioe);
}

View File

@@ -215,18 +215,8 @@ public interface IRepositoryFactory {
public void deleteObjectPhysical(Project project, IRepositoryViewObject objToDelete, String version,
boolean fromEmptyRecycleBin, boolean isDeleteOnRemote) throws PersistenceException;
/**
*
* Batch delete the object of the given object list.
*
* @param project - The object's project.
* @param objToDeleteList - The objects list.
* @param isDeleteAllVersion - True: delete all version by object id; False: delete object by id and version.
* @param isDeleteOnRemote
* @throws PersistenceException
*/
public void batchDeleteObjectPhysical(Project project, List<IRepositoryViewObject> objToDeleteList,
boolean isDeleteAllVersion, boolean isDeleteOnRemote) throws PersistenceException;
public void batchDeleteObjectPhysical(Project project, List<IRepositoryViewObject> objToDeleteList, boolean isDeleteOnRemote)
throws PersistenceException;
/**
* Restore a logically deleted object. <code>isDeleted</code> on this object will now returned <code>false</code>.

View File

@@ -774,20 +774,6 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
log.info(Messages.getString("ProxyRepositoryFactory.log.physicalDeletion", str)); //$NON-NLS-1$
}
/*
* (non-Javadoc)
*
* @see
* org.talend.repository.model.IProxyRepositoryFactory#forceBatchDeleteObjectPhysical(org.talend.core.model.general.
* Project, java.util.List, boolean, boolean)
*/
@Override
public void forceBatchDeleteObjectPhysical(Project project, List<IRepositoryViewObject> objToDeleteList,
boolean isDeleteAllVersion, boolean isDeleteOnRemote) throws PersistenceException {
this.repositoryFactoryFromProvider.batchDeleteObjectPhysical(project, objToDeleteList, isDeleteAllVersion,
isDeleteOnRemote);
}
/*
* (non-Javadoc)
*
@@ -946,7 +932,7 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
.getService(IRunProcessService.class);
service.batchDeleteAllVersionTalendJobProject(idList);
}
this.repositoryFactoryFromProvider.batchDeleteObjectPhysical(project, repositoryObjectList, true, false);
this.repositoryFactoryFromProvider.batchDeleteObjectPhysical(project, repositoryObjectList, false);
// save project will handle git/svn update
this.repositoryFactoryFromProvider.saveProject(project);

View File

@@ -97,7 +97,7 @@
<dbType type="CHAR"/>
<dbType type="NCHAR"/>
<dbType type="LONG"/>
<dbType type="CLOB"/>
<dbtype type="CLOB"/>
</talendType>
</talendToDbTypes>
<dbToTalendTypes><!-- Adviced mappings -->

View File

@@ -29,8 +29,6 @@
<dbType type="xs:time" ignoreLen="true" ignorePre="true"/>
<dbType type="xs:decimal" ignoreLen="true" ignorePre="true"/>
<dbType type="xs:QName" ignoreLen="true" ignorePre="true"/>
<dbType type="xs:list" ignoreLen="true" ignorePre="true"/>
<dbType type="xs:union" ignoreLen="true" ignorePre="true"/>
</dbTypes>
<language name="java">
@@ -143,12 +141,6 @@
<dbType type="xs:time">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="xs:list">
<talendType type="id_List" default="true" />
</dbType>
<dbType type="xs:union">
<talendType type="id_Object" default="true" />
</dbType>
</dbToTalendTypes>
</language>
</dbms>

View File

@@ -89,8 +89,6 @@ public interface ILibraryManagerService extends IService {
* @return
*/
public boolean retrieve(String jarNeeded, String pathToStore, IProgressMonitor... monitorWrap);
public boolean retrieve(String jarNeeded, String jarURL, String pathToStore, IProgressMonitor... monitorWrap);
public boolean retrieve(String jarNeeded, String pathToStore, boolean showDialog, IProgressMonitor... monitorWrap);
@@ -208,12 +206,8 @@ public interface ILibraryManagerService extends IService {
*/
public boolean isJarNeedToBeDeployed(File jarFile);
public boolean isSameFile(File f1, File f2);
public void checkModuleStatus(ModuleNeeded module);
public String getJarNameFromMavenuri(String mavenURI);
public void guessMavenRUIFromIndex(File jarFile, Map<String, String> sourceAndMavenUri);
}

View File

@@ -210,9 +210,4 @@ public interface ITDQRepositoryService extends IService {
* @param ruManager: RepositoryUpdateManager
*/
void updateAllContextInAnalysisAndReport(RepositoryUpdateManager ruManager, Object parameter, boolean isUpdated);
/**
* @param chooseContext the context name which want to swtich
*/
void popupSwitchContextFailedMessage(String chooseContext);
}

View File

@@ -47,8 +47,6 @@ public class DatabaseConnStrUtil {
// for match url has :<port> exist
private static final String PATTERN_PORT = "(:\\d{1,5})";
private static final String DATABASE_STRING = "DATABASE=";
private static String getStringReplace(final String init, final String before, final String after,
final boolean supportContext) {
return getStringReplace(init, before, after, supportContext, false);
@@ -129,13 +127,6 @@ public class DatabaseConnStrUtil {
} else {
s = getStringReplace(s, EDatabaseConnVar.PORT.getVariable(), port, supportContext);
}
if (EDatabaseConnTemplate.TERADATA.equals(connStr)) {
if (StringUtils.isNotBlank(sid)) {
s = getStringReplace(s, EDatabaseConnVar.SID.getVariable(), DATABASE_STRING + sid, supportContext);
} else {
s = getStringReplace(s, EDatabaseConnVar.SID.getVariable() + ",", sid, supportContext); //$NON-NLS-1$
}
}
s = getStringReplace(s, EDatabaseConnVar.SID.getVariable(), sid, supportContext);
s = getStringReplace(s, EDatabaseConnVar.SERVICE_NAME.getVariable(), sid, supportContext);
s = getStringReplace(s, EDatabaseConnVar.DATASOURCE.getVariable(), datasource, supportContext);
@@ -574,7 +565,7 @@ public class DatabaseConnStrUtil {
List<ERepositoryObjectType> extraTypes = new ArrayList<>();
IGenericDBService dbService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(IGenericDBService.class)) {
dbService = GlobalServiceRegister.getDefault().getService(IGenericDBService.class);
dbService = (IGenericDBService) GlobalServiceRegister.getDefault().getService(IGenericDBService.class);
}
if (dbService != null) {
extraTypes.addAll(dbService.getExtraTypes());

View File

@@ -166,9 +166,9 @@ public enum EDatabaseVersion4Drivers {
REDSHIFT(new DbVersion4Drivers(EDatabaseTypeName.REDSHIFT, "redshift", "REDSHIFT", //$NON-NLS-1$ //$NON-NLS-2$
"redshift-jdbc42-no-awssdk-1.2.32.1056.jar")), //$NON-NLS-1$
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.32.1056.jar", "aws-java-sdk-1.11.406.jar", "jackson-core-2.9.9.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"jackson-databind-2.9.9.jar", "jackson-annotations-2.9.0.jar", "httpcore-4.4.9.jar", "httpclient-4.5.5.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
"joda-time-2.8.1.jar", "commons-logging-1.1.3.jar", "commons-codec-1.6.jar" })), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new String[] { "redshift-jdbc42-no-awssdk-1.2.32.1056.jar", "aws-java-sdk-1.11.406.jar", "jackson-core-2.9.5.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"jackson-databind-2.9.5.jar", "jackson-annotations-2.9.0.jar", "httpcore-4.4.9.jar", "httpclient-4.5.5.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
"joda-time-2.8.1.jar", "commons-logging-1.1.3.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
AMAZON_AURORA(new DbVersion4Drivers(EDatabaseTypeName.AMAZON_AURORA, "mysql-connector-java-5.1.30-bin.jar")); //$NON-NLS-1$

View File

@@ -60,15 +60,6 @@ public interface IComponent {
public String getOriginalName();
/**
* Only for component display (palette,search)
*
* @return
*/
default public String getDisplayName() {
return getName();
}
public String getLongName();
public String getOriginalFamilyName();

View File

@@ -29,4 +29,5 @@ public interface INexusService extends IService {
ArtifactRepositoryBean getPublishNexusServerBean(String repositoryId);
ArtifactRepositoryBean getArtifactRepositoryFromServer();
}

View File

@@ -45,14 +45,6 @@ public interface ISAPConstant {
public static final String CHANGING = "CHANGING";//$NON-NLS-1$
public static final String PARAMETER_TYPE = "PARAMETER_TYPE";//$NON-NLS-1$
public static final String PARAMETER_TYPE_IMPORT = "IMPORT";//$NON-NLS-1$
public static final String PARAMETER_TYPE_CHANGING = "CHANGING";//$NON-NLS-1$
public static final String PARAMETER_TYPE_TABLES = "TABLES";//$NON-NLS-1$
/*
*
*/

View File

@@ -2845,6 +2845,10 @@ public class RepositoryToComponentProperty {
if (value.equals("USE_ENCODING")) {
return connection.isUseFileNameEncoding();
}
if(value.equals("CONNECTION_TIMEOUT")) {
return connection.getTimeout();
}
if (value.equals("ENCODING")) {
if (isContextMode(connection, connection.getCustomEncode())) {

View File

@@ -39,7 +39,7 @@ public abstract class AbstractNode implements INode {
private ComponentProperties componentProperties;
List<? extends IElementParameter> elementParameters = new ArrayList<IElementParameter>();
List<? extends IElementParameter> elementParameters;
private List<? extends IConnection> outgoingConnections = new ArrayList<IConnection>();

View File

@@ -22,7 +22,6 @@ import org.talend.core.model.components.IComponent;
import org.talend.core.model.metadata.IMetadataColumn;
import org.talend.core.model.metadata.IMetadataTable;
import org.talend.core.model.metadata.MetadataTable;
import org.talend.core.model.process.node.MapperExternalNode;
/**
* Concrete class to instanciate as an AbstractNode for the BigData code generators
@@ -77,9 +76,6 @@ public class BigDataNode extends AbstractNode implements IBigDataNode {
IBigDataNode node = (IBigDataNode) incomingConnections.get(0).getSource();
String requiredOutputType = node.getRequiredOutputType();
return requiredOutputType != null ? requiredOutputType : node.getIncomingType();
} else if (incomingConnections.get(0).getSource() instanceof MapperExternalNode) {
MapperExternalNode node = (MapperExternalNode) incomingConnections.get(0).getSource();
return node.getShouldGenerateDataset() ? "DATASET" : "KEYVALUE";
} else {
// We are on an external node => PairRDD
// TODO Maybe on the futur we need to handle RDD or DataFrame, but this required a big refactoring

View File

@@ -22,7 +22,6 @@ public enum EParameterFieldType {
TEXT,
TEXT_AREA,
PASSWORD,
LICENSEKEY, // xqliu TDQ-17742
MEMO_SQL,
MEMO_PERL,
MEMO_JAVA,

View File

@@ -898,8 +898,7 @@ public final class ProcessUtils {
ERepositoryObjectType itemType = ERepositoryObjectType.getItemType(property.getItem());
// route job
if (itemType != null && (itemType.equals(ERepositoryObjectType.PROCESS_ROUTE)
|| itemType.equals(ERepositoryObjectType.PROCESS_ROUTELET)
|| "CAMEL".equals(process.getComponentsType()))) {
|| itemType.equals(ERepositoryObjectType.PROCESS_ROUTELET))) {
needBeans = true;
}
}

View File

@@ -20,8 +20,4 @@ import org.talend.core.model.process.AbstractExternalNode;
*/
public abstract class MapperExternalNode extends AbstractExternalNode {
public boolean getShouldGenerateDataset() {
return false;
}
}

View File

@@ -575,8 +575,6 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
public final static ERepositoryObjectType METADATA_SAP_BW_INFOOBJECT = ERepositoryObjectType
.valueOf("METADATA_SAP_BW_INFOOBJECT"); //$NON-NLS-1$
public final static ERepositoryObjectType JDBC = ERepositoryObjectType.valueOf("JDBC"); //$NON-NLS-1$
private static Map<String, ERepositoryObjectType> typeCacheById = new HashMap<String, ERepositoryObjectType>();
ERepositoryObjectType(String key, String folder, String type, boolean isStaticNode, int ordinal, String[] products,
@@ -1313,7 +1311,7 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
public boolean addExtraProducts(String[] productsArray) {
if (productsArray != null && productsArray.length > 0) {
if (this.products == null || this.products.length == 0) {
if (this.products == null && this.products.length == 0) {
this.products = productsArray;
} else {
String[] tmp = new String[this.products.length + productsArray.length];

View File

@@ -13,7 +13,6 @@
package org.talend.core.model.routines;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
@@ -32,12 +31,9 @@ import org.osgi.framework.Bundle;
import org.talend.commons.utils.resource.FileExtensions;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ILibraryManagerService;
import org.talend.core.ISVNProviderServiceInCoreRuntime;
import org.talend.core.PluginChecker;
import org.talend.core.model.general.LibraryInfo;
import org.talend.core.nexus.ArtifactRepositoryBean;
import org.talend.core.nexus.TalendLibsServerManager;
import org.talend.core.runtime.maven.MavenArtifact;
import org.talend.core.runtime.maven.MavenConstants;
import org.talend.core.runtime.maven.MavenUrlHelper;
/**
* wchen class global comment. Detailled comment
@@ -100,12 +96,9 @@ public class RoutineLibraryMananger {
try {
URL fileUrl = FileLocator.toFileURL(entry);
if(fileUrl != null){
if (!"file".equals(fileUrl.getProtocol())) throw new IllegalArgumentException();
File file = new File(fileUrl.getFile());
if (needDeploy(fileUrl)) {
URI fileUri = file.toURI();
libManagerService.deploy(fileUri);
}
if (!"file".equals(fileUrl.getProtocol())) throw new IllegalArgumentException();
URI fileUri = new File(fileUrl.getFile()).toURI();
libManagerService.deploy(fileUri);
}
} catch (Exception e) {
log.warn("Cannot deploy: " + bundleName + path);
@@ -121,56 +114,6 @@ public class RoutineLibraryMananger {
}
}
public boolean needDeploy(URL fileUrl) throws IOException, Exception {
File file = new File(fileUrl.getFile());
ILibraryManagerService libManagerService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(ILibraryManagerService.class)) {
libManagerService = (ILibraryManagerService) GlobalServiceRegister.getDefault()
.getService(ILibraryManagerService.class);
}
if (libManagerService != null) {
Map<String, String> sourceAndMavenUri = new HashMap<>();
libManagerService.guessMavenRUIFromIndex(file, sourceAndMavenUri);
String mavUri = null;
boolean isSnapshot = false;
for (String key : sourceAndMavenUri.keySet()) {
if (sourceAndMavenUri.get(key).equals(file.getPath())) {
mavUri = key;
break;
}
}
if (mavUri == null) {
return true;
}
final MavenArtifact parseMvnUrl = MavenUrlHelper.parseMvnUrl(mavUri);
if (parseMvnUrl != null) {
if (parseMvnUrl.getVersion() != null && parseMvnUrl.getVersion().endsWith(MavenConstants.SNAPSHOT)) {
isSnapshot = true;
}
}
TalendLibsServerManager manager = TalendLibsServerManager.getInstance();
ArtifactRepositoryBean customNexusServer = manager.getCustomNexusServer();
File jarFile = null;
try {
jarFile = libManagerService.resolveJar(customNexusServer, mavUri);
} catch (Exception ex) {
// Ignore here
}
boolean exist = (jarFile != null && jarFile.exists());
if (exist) {
if (isSnapshot) {
boolean isSame = libManagerService.isSameFile(jarFile, file);
if (!isSame) {
return true;
}
}
} else {
return true;
}
}
return false;
}
public Map<String, List<LibraryInfo>> getRoutineAndJars() {
if (routineAndJars == null) {
routineAndJars = new HashMap<String, List<LibraryInfo>>();

View File

@@ -684,15 +684,16 @@ public class NodeUtil {
}
List<? extends IConnection> listInConns = node.getIncomingConnections();
if (listInConns != null && listInConns.size() > 0) {
for (IConnection connection : listInConns) {
if (EConnectionType.FLOW_REF != connection.getLineStyle()) {
String retResult = getPrivateConnClassName(connection);
return retResult != null ? retResult : conn.getName();
}
String retResult = getPrivateConnClassName(listInConns.get(0));
if (retResult == null) {
return conn.getName();
} else {
return retResult;
}
}
}
return null;
}
/**

View File

@@ -41,11 +41,11 @@ import org.talend.core.model.process.EParameterFieldType;
import org.talend.core.model.process.IContextParameter;
import org.talend.core.model.process.IElementParameter;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.daikon.security.CryptoHelper;
import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType;
import org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType;
import org.talend.designer.core.model.utils.emf.talendfile.ElementValueType;
import org.talend.repository.ProjectManager;
import org.talend.utils.security.StudioEncryption;
/**
* cli class global comment. Detailled comment
@@ -842,8 +842,7 @@ public final class ParameterValueUtil {
if (contextParam != null) {
String docValue = contextParam.getValue();
if (docValue != null) {
String encryptValue = StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM)
.encrypt(docValue);
String encryptValue = CryptoHelper.getDefault().encrypt(docValue);
if (encryptValue != null) {
return encryptValue;
}
@@ -879,8 +878,7 @@ public final class ParameterValueUtil {
if (param != null) {
Object docValue = param.getValue();
if (docValue != null && docValue instanceof String) {
String encryptValue = StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM)
.encrypt(docValue.toString());
String encryptValue = CryptoHelper.getDefault().encrypt(docValue.toString());
if (encryptValue != null) {
return encryptValue;
}

View File

@@ -12,12 +12,14 @@
// ============================================================================
package org.talend.core.nexus;
import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import java.net.Proxy.Type;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
@@ -35,8 +37,9 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
import org.talend.commons.exception.BusinessException;
import org.talend.commons.utils.network.IProxySelectorProvider;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.utils.network.TalendProxySelector;
import org.talend.commons.utils.network.TalendProxySelector.IProxySelectorProvider;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.runtime.maven.MavenArtifact;
import org.talend.core.runtime.maven.MavenUrlHelper;
@@ -164,7 +167,7 @@ public abstract class HttpClientTransport {
}
}
public static IProxySelectorProvider addProxy(final DefaultHttpClient httpClient, URI requestURI) {
private IProxySelectorProvider addProxy(final DefaultHttpClient httpClient, URI requestURI) {
IProxySelectorProvider proxySelectorProvider = null;
try {
if (Boolean.valueOf(System.getProperty(PROP_PROXY_HTTP_CLIENT_USE_DEFAULT_SETTINGS, Boolean.FALSE.toString()))) {
@@ -182,10 +185,10 @@ public abstract class HttpClientTransport {
}
final Proxy finalProxy = usedProxy;
InetSocketAddress address = (InetSocketAddress) finalProxy.address();
String proxyServer = address.getHostString();
String proxyServer = address.getHostName();
int proxyPort = address.getPort();
TalendProxySelector proxySelector = TalendProxySelector.getInstance();
PasswordAuthentication proxyAuthentication = proxySelector.getHttpPasswordAuthentication();
PasswordAuthentication proxyAuthentication = Authenticator.requestPasswordAuthentication(proxyServer,
address.getAddress(), proxyPort, "Http Proxy", "Http proxy authentication", null);
if (proxyAuthentication != null) {
String proxyUser = proxyAuthentication.getUserName();
if(StringUtils.isNotBlank(proxyUser)){
@@ -200,7 +203,7 @@ public abstract class HttpClientTransport {
}
HttpHost proxyHost = new HttpHost(proxyServer, proxyPort);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxyHost);
proxySelectorProvider = proxySelector.createDefaultProxySelectorProvider();
proxySelectorProvider = createProxySelectorProvider();
}
return proxySelectorProvider;
} finally {
@@ -210,12 +213,61 @@ public abstract class HttpClientTransport {
}
}
public static void removeProxy(IProxySelectorProvider proxySelectorProvider) {
private void removeProxy(IProxySelectorProvider proxySelectorProvider) {
if (proxySelectorProvider != null) {
TalendProxySelector.getInstance().removeProxySelectorProvider(proxySelectorProvider);
}
}
private IProxySelectorProvider createProxySelectorProvider() {
IProxySelectorProvider proxySelectorProvider = new TalendProxySelector.AbstractProxySelectorProvider() {
private Thread currentThread = Thread.currentThread();
@Override
public List<Proxy> select(URI uri) {
// return Collections.EMPTY_LIST;
List<Proxy> newProxys = new ArrayList<>();
if (uri == null) {
return newProxys;
}
String schema = uri.getScheme();
if (schema != null && schema.toLowerCase().startsWith("socket")) { //$NON-NLS-1$
try {
URI newUri = new URI("https", uri.getUserInfo(), uri.getHost(), uri.getPort(), uri.getPath(),
uri.getQuery(), uri.getFragment());
List<Proxy> proxys = TalendProxySelector.getInstance().getDefaultProxySelector().select(newUri);
if (proxys != null && !proxys.isEmpty()) {
newProxys.addAll(proxys);
} else {
newUri = new URI("http", uri.getUserInfo(), uri.getHost(), uri.getPort(), uri.getPath(),
uri.getQuery(), uri.getFragment());
proxys = TalendProxySelector.getInstance().getDefaultProxySelector().select(newUri);
if (proxys != null && !proxys.isEmpty()) {
newProxys.addAll(proxys);
}
}
} catch (URISyntaxException e) {
ExceptionHandler.process(e);
}
}
return newProxys;
}
@Override
public boolean canHandle(URI uri) {
if (Thread.currentThread() == currentThread) {
return true;
}
return false;
}
};
return proxySelectorProvider;
}
public void processResponseCode(HttpResponse response) throws BusinessException {
StatusLine statusLine = response.getStatusLine();
int responseCode = statusLine.getStatusCode();

View File

@@ -29,6 +29,4 @@ public class NexusConstants {
public static final String SNAPSHOTS = "@snapshots";//$NON-NLS-1$
public static final String DISALLOW_RELEASES = "@noreleases";//$NON-NLS-1$
public static final String DYNAMIC_DISTRIBUTION = "https://talend-update.talend.com/nexus/content/groups/dynamicdistribution/";
}

View File

@@ -63,16 +63,6 @@ public class TalendLibsServerManager {
public static final String TALEND_LIB_SERVER = "https://talend-update.talend.com/nexus/";//$NON-NLS-1$
public static final String NEXUS_PROXY_URL = "nexus.proxy.url";
public static final String NEXUS_PROXY_TYPE = "nexus.proxy.type";
public static final String NEXUS_PROXY_USERNAME = "nexus.proxy.username";
public static final String NEXUS_PROXY_PASSWORD = "nexus.proxy.password";
public static final String NEXUS_PROXY_REPOSITORY_ID = "nexus.proxy.repository.id";
public static final String TALEND_LIB_USER = "";//$NON-NLS-1$
public static final String TALEND_LIB_PASSWORD = "";//$NON-NLS-1$
@@ -177,15 +167,12 @@ public class TalendLibsServerManager {
public ArtifactRepositoryBean getTalentArtifactServer() {
ArtifactRepositoryBean serverBean = new ArtifactRepositoryBean();
String nexusType = System.getProperty(NEXUS_PROXY_TYPE);
if (nexusType != null) {
serverBean.setType(nexusType);
}
serverBean.setServer(System.getProperty(NEXUS_PROXY_URL, TALEND_LIB_SERVER));
serverBean.setUserName(System.getProperty(NEXUS_PROXY_USERNAME, TALEND_LIB_USER));
serverBean.setPassword(System.getProperty(NEXUS_PROXY_PASSWORD, TALEND_LIB_PASSWORD));
serverBean.setRepositoryId(System.getProperty(NEXUS_PROXY_REPOSITORY_ID, TALEND_LIB_REPOSITORY));
serverBean.setServer(System.getProperty(KEY_LIB_REPO_URL, TALEND_LIB_SERVER));
serverBean.setUserName(TALEND_LIB_USER);
serverBean.setPassword(TALEND_LIB_PASSWORD);
serverBean.setRepositoryId(TALEND_LIB_REPOSITORY);
serverBean.setOfficial(true);
return serverBean;
}

View File

@@ -24,9 +24,6 @@ import org.osgi.framework.ServiceReference;
import org.osgi.service.cm.ManagedService;
import org.osgi.util.tracker.ServiceTracker;
import org.osgi.util.tracker.ServiceTrackerCustomizer;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.utils.network.IProxySelectorProvider;
import org.talend.commons.utils.network.TalendProxySelector;
import org.talend.core.runtime.CoreRuntimePlugin;
/**
@@ -105,25 +102,10 @@ public class TalendMavenResolver {
}
public static File resolve(String mvnUri) throws IOException {
TalendProxySelector selectorInstance = null;
IProxySelectorProvider proxySelector = null;
try {
try {
selectorInstance = TalendProxySelector.getInstance();
proxySelector = selectorInstance.createDefaultProxySelectorProvider();
if (proxySelector != null) {
selectorInstance.addProxySelectorProvider(proxySelector);
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
return getMavenResolver().resolve(mvnUri);
} catch (IOException e) {
throw ResolverExceptionHandler.hideCredential(e);
} finally {
if (proxySelector != null && selectorInstance != null) {
selectorInstance.removeProxySelectorProvider(proxySelector);
}
}
}

View File

@@ -101,8 +101,6 @@ public interface ITalendCorePrefConstants {
public static final String FORBIDDEN_MAPPING_LENGTH_PREC_LOGIC = "forbidden_mapping_length_prec_logic"; //$NON-NLS-1$
public static final String METADATA_PREFERENCE_PAGE_ENABLE_BASIC = "metadata_preference_page_enable_basic"; //$NON-NLS-1$
public static final String DATA_COLLECTOR_ENABLED = "active_data_collector"; //$NON-NLS-1$
public static final String DATA_COLLECTOR_UPLOAD_PERIOD = "active_data_collector_times"; //$NON-NLS-1$

View File

@@ -24,7 +24,7 @@ public class MavenArtifact implements Cloneable {
private static final char ARTIFACT_SEPARATOR = '-';
private String repositoryUrl, groupId, artifactId, version, type, classifier, description, url, license, licenseUrl,
distribution, username, password, lastUpdated, sha1, md5;
distribution, username, password, lastUpdated;
public String getLastUpdated() {
return this.lastUpdated;
@@ -138,22 +138,6 @@ public class MavenArtifact implements Cloneable {
this.password = password;
}
public String getSha1() {
return sha1;
}
public void setSha1(String sha1) {
this.sha1 = sha1;
}
public String getMd5() {
return md5;
}
public void setMd5(String md5) {
this.md5 = md5;
}
/**
*
* DOC ggu Comment method "getFileName".

View File

@@ -19,7 +19,7 @@ import java.net.URLDecoder;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.Assert;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.utils.security.StudioEncryption;
import org.talend.daikon.security.CryptoHelper;
/**
* DOC ggu class global comment. Detailled comment
@@ -47,6 +47,8 @@ public class MavenUrlHelper {
public static final String USER_PASSWORD_SPLITER = ":";
private static CryptoHelper cryptoHelper;
public static MavenArtifact parseMvnUrl(String mvnUrl) {
return parseMvnUrl(mvnUrl, true);
}
@@ -330,15 +332,19 @@ public class MavenUrlHelper {
return uri;
}
private static CryptoHelper getCryptoHelper() {
if (cryptoHelper == null) {
cryptoHelper = CryptoHelper.getDefault();
}
return cryptoHelper;
}
public static String encryptPassword(String password) {
return StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM).encrypt(password);
return getCryptoHelper().encrypt(password);
}
public static String decryptPassword(String password) {
if (StudioEncryption.hasEncryptionSymbol(password)) {
return StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM).decrypt(password);
}
return password;
return getCryptoHelper().decrypt(password);
}
public static String generateModuleNameByMavenURI(String uri) {

View File

@@ -370,15 +370,6 @@ public class LastGenerationInfo {
}
}
/**
* Clear modules per job cache, not thread safe
*/
public void clearModulesNeededPerJob() {
if (!modulesNeededPerJob.isEmpty()) {
modulesNeededPerJob.clear();
}
}
public void clean() {
modulesNeededPerJob.clear();
routinesNeededPerJob.clear();

View File

@@ -0,0 +1,21 @@
// ============================================================================
//
// Copyright (C) 2006-2019 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.core.service;
import org.talend.core.IService;
public interface IUpdateService extends IService {
boolean checkComponentNexusUpdate();
}

View File

@@ -99,8 +99,6 @@ public interface IJobletProviderService extends IService {
public IEditorPart openJobletItem(JobletProcessItem item);
public boolean isJobletItem(Item item);
public boolean isJobletProcess(IProcess process);
public Action getMoveToJobletAction(IWorkbenchPart part, INode jobletNode, Map<INode, IConnection> nodeMap);

View File

@@ -22,8 +22,8 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.core.prefs.SSLPreferenceConstants;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.daikon.security.CryptoHelper;
import org.talend.daikon.security.SSLContextProvider;
import org.talend.utils.security.StudioEncryption;
/**
*
@@ -34,7 +34,7 @@ public class StudioSSLContextProvider {
private static SSLContext context;
private static final IPreferenceStore STORE = CoreRuntimePlugin.getInstance().getCoreService().getPreferenceStore();
private static final IPreferenceStore store = CoreRuntimePlugin.getInstance().getCoreService().getPreferenceStore();
public static synchronized SSLContext getContext() throws Exception {
if (null == context) {
@@ -44,14 +44,15 @@ public class StudioSSLContextProvider {
}
public static synchronized void buildContext() throws Exception {
String keypath = STORE.getString(SSLPreferenceConstants.KEYSTORE_FILE);
String keypass = STORE.getString(SSLPreferenceConstants.KEYSTORE_PASSWORD);
String keytype = STORE.getString(SSLPreferenceConstants.KEYSTORE_TYPE);
String trustpath = STORE.getString(SSLPreferenceConstants.TRUSTSTORE_FILE);
String trustpass = STORE.getString(SSLPreferenceConstants.TRUSTSTORE_PASSWORD);
String trusttype = STORE.getString(SSLPreferenceConstants.TRUSTSTORE_TYPE);
keypass = StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM).decrypt(keypass);
trustpass = StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM).decrypt(trustpass);
String keypath = store.getString(SSLPreferenceConstants.KEYSTORE_FILE);
String keypass = store.getString(SSLPreferenceConstants.KEYSTORE_PASSWORD);
String keytype = store.getString(SSLPreferenceConstants.KEYSTORE_TYPE);
String trustpath = store.getString(SSLPreferenceConstants.TRUSTSTORE_FILE);
String trustpass = store.getString(SSLPreferenceConstants.TRUSTSTORE_PASSWORD);
String trusttype = store.getString(SSLPreferenceConstants.TRUSTSTORE_TYPE);
CryptoHelper cryptoHelper = CryptoHelper.getDefault();
keypass = cryptoHelper.decrypt(keypass);
trustpass = cryptoHelper.decrypt(trustpass);
try {
if (StringUtils.isEmpty(keypath) && StringUtils.isEmpty(trustpath)) {
context = null;
@@ -87,12 +88,12 @@ public class StudioSSLContextProvider {
private static void changeProperty() {
final IPreferenceStore sslStore = CoreRuntimePlugin.getInstance().getCoreService().getPreferenceStore();
CryptoHelper cryptoHelper = CryptoHelper.getDefault();
String keyStore = sslStore.getString(SSLPreferenceConstants.KEYSTORE_FILE);
if (keyStore != null && !"".equals(keyStore.trim())) {
System.setProperty(SSLPreferenceConstants.KEYSTORE_FILE, keyStore);
System.setProperty(SSLPreferenceConstants.KEYSTORE_PASSWORD,
StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM)
.decrypt(sslStore.getString(SSLPreferenceConstants.KEYSTORE_PASSWORD)));
cryptoHelper.decrypt(sslStore.getString(SSLPreferenceConstants.KEYSTORE_PASSWORD)));
System.setProperty(SSLPreferenceConstants.KEYSTORE_TYPE, sslStore.getString(SSLPreferenceConstants.KEYSTORE_TYPE));
} else {
System.clearProperty(SSLPreferenceConstants.KEYSTORE_FILE);
@@ -103,8 +104,7 @@ public class StudioSSLContextProvider {
if (trustStore != null && !"".equals(trustStore.trim())) {
System.setProperty(SSLPreferenceConstants.TRUSTSTORE_FILE, trustStore);
System.setProperty(SSLPreferenceConstants.TRUSTSTORE_PASSWORD,
StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM)
.decrypt(sslStore.getString(SSLPreferenceConstants.TRUSTSTORE_PASSWORD)));
cryptoHelper.decrypt(sslStore.getString(SSLPreferenceConstants.TRUSTSTORE_PASSWORD)));
System.setProperty(SSLPreferenceConstants.TRUSTSTORE_TYPE, sslStore.getString(SSLPreferenceConstants.TRUSTSTORE_TYPE));
} else {
System.clearProperty(SSLPreferenceConstants.TRUSTSTORE_FILE);

View File

@@ -19,9 +19,8 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
@@ -81,8 +80,6 @@ public abstract class AbstractRoutineSynchronizer implements ITalendSynchronizer
}
private Collection<RoutineItem> getAll(ERepositoryObjectType type, boolean syncRef) throws SystemException {
// init code project
getRunProcessService().getTalendCodeJavaProject(type);
// remove routine with same name in reference project
final Map<String, RoutineItem> beansList = new HashMap<String, RoutineItem>();
for (IRepositoryViewObject obj : getRepositoryService().getProxyRepositoryFactory().getAll(type)) {
@@ -99,37 +96,34 @@ public abstract class AbstractRoutineSynchronizer implements ITalendSynchronizer
return (IRepositoryService) GlobalServiceRegister.getDefault().getService(IRepositoryService.class);
}
private Set<IRepositoryViewObject> getReferencedProjectRoutine(final Map<String, RoutineItem> beansList,
final Project project, ERepositoryObjectType routineType, boolean syncRef) throws SystemException {
// init ref code project
if (syncRef) {
private void getReferencedProjectRoutine(final Map<String, RoutineItem> beansList, final Project project,
ERepositoryObjectType routineType, boolean syncRef) throws SystemException {
List<IRepositoryViewObject> list = getRepositoryService().getProxyRepositoryFactory().getAll(project, routineType);
if (list.size() == 0) {
getRunProcessService().getTalendCodeJavaProject(routineType, project.getTechnicalLabel());
}
Set<IRepositoryViewObject> routines = new HashSet<>();
routines.addAll(getRepositoryService().getProxyRepositoryFactory().getAll(project, routineType));
for (IRepositoryViewObject obj : routines) {
final String key = obj.getProperty().getLabel();
// it does not have a routine with same name
if (!beansList.containsKey(key)) {
beansList.put(key, (RoutineItem) obj.getProperty().getItem());
} else {
for (IRepositoryViewObject obj : list) {
final String key = obj.getProperty().getLabel();
// it does not have a routine with same name
if (!beansList.containsKey(key)) {
beansList.put(key, (RoutineItem) obj.getProperty().getItem());
}
if (syncRef) {
// sync routine
syncRoutine((RoutineItem) obj.getProperty().getItem(), false, true, true);
}
}
}
for (ProjectReference projectReference : project.getProjectReferenceList()) {
routines.addAll(getReferencedProjectRoutine(beansList, new Project(projectReference.getReferencedProject()),
routineType, syncRef));
}
if (syncRef) {
routines.stream().forEach(obj -> {
try {
syncRoutine((RoutineItem) obj.getProperty().getItem(), project.getTechnicalLabel(), true, true);
} catch (SystemException e) {
ExceptionHandler.process(e);
}
});
// sync system routine
syncSystemRoutine(project);
}
return routines;
for (ProjectReference projectReference : project.getProjectReferenceList()) {
getReferencedProjectRoutine(beansList, new Project(projectReference.getReferencedProject()), routineType, syncRef);
}
}
protected void syncSystemRoutine(Project project) throws SystemException {
@@ -142,17 +136,24 @@ public abstract class AbstractRoutineSynchronizer implements ITalendSynchronizer
}
protected IFile getRoutineFile(RoutineItem routineItem) throws SystemException {
return getRoutineFile(routineItem, ProjectManager.getInstance().getCurrentProject().getTechnicalLabel());
return getRoutineFile(routineItem, true);
}
protected IFile getRoutineFile(RoutineItem routineItem, String projectTechName) throws SystemException {
protected IFile getRoutineFile(RoutineItem routineItem, boolean currentProject) throws SystemException {
String projectTechName;
if (currentProject) {
projectTechName = ProjectManager.getInstance().getCurrentProject().getTechnicalLabel();
} else {
projectTechName = ProjectManager.getInstance().getProject(routineItem).getTechnicalLabel();
}
ITalendProcessJavaProject talendProcessJavaProject = getRunProcessService()
.getTalendCodeJavaProject(ERepositoryObjectType.getItemType(routineItem), projectTechName);
if (talendProcessJavaProject == null) {
return null;
}
IFolder routineFolder = talendProcessJavaProject.getSrcSubFolder(null, routineItem.getPackageType());
return routineFolder.getFile(routineItem.getProperty().getLabel() + JavaUtils.JAVA_EXTENSION);
IFile file = routineFolder.getFile(routineItem.getProperty().getLabel() + JavaUtils.JAVA_EXTENSION);
return file;
}
private IFile getProcessFile(ProcessItem item) throws SystemException {
@@ -200,31 +201,30 @@ public abstract class AbstractRoutineSynchronizer implements ITalendSynchronizer
@Override
public void syncRoutine(RoutineItem routineItem, boolean copyToTemp) throws SystemException {
syncRoutine(routineItem, ProjectManager.getInstance().getCurrentProject().getTechnicalLabel(), copyToTemp, false);
syncRoutine(routineItem, true, copyToTemp, false);
}
@Override
public void syncRoutine(RoutineItem routineItem, boolean copyToTemp, boolean forceUpdate) throws SystemException {
syncRoutine(routineItem, ProjectManager.getInstance().getCurrentProject().getTechnicalLabel(), copyToTemp, forceUpdate);
syncRoutine(routineItem, true, copyToTemp, forceUpdate);
}
@Override
public void syncRoutine(RoutineItem routineItem, String projectTechName, boolean copyToTemp, boolean forceUpdate)
throws SystemException {
public void syncRoutine(RoutineItem routineItem, boolean currentProject, boolean copyToTemp, boolean forceUpdate) throws SystemException {
boolean needSync = false;
if (routineItem != null) {
if (forceUpdate || !isRoutineUptodate(routineItem)) {
needSync = true;
} else {
IFile file = getRoutineFile(routineItem, projectTechName);
IFile file = getRoutineFile(routineItem, currentProject);
if (file != null && !file.exists()) {
needSync = true;
}
}
}
if (needSync) {
doSyncRoutine(routineItem, projectTechName, copyToTemp);
if (ProjectManager.getInstance().getCurrentProject().getTechnicalLabel().equals(projectTechName)) {
doSyncRoutine(routineItem, currentProject, copyToTemp);
if (currentProject) {
setRoutineAsUptodate(routineItem);
}
}
@@ -232,14 +232,14 @@ public abstract class AbstractRoutineSynchronizer implements ITalendSynchronizer
public void syncRoutine(RoutineItem routineItem) throws SystemException {
if (routineItem != null) {
doSyncRoutine(routineItem, ProjectManager.getInstance().getCurrentProject().getTechnicalLabel(), true);
doSyncRoutine(routineItem, true, true);
setRoutineAsUptodate(routineItem);
}
}
private void doSyncRoutine(RoutineItem routineItem, String projectTechName, boolean copyToTemp) throws SystemException {
private void doSyncRoutine(RoutineItem routineItem, boolean currentProject, boolean copyToTemp) throws SystemException {
try {
IFile file = getRoutineFile(routineItem, projectTechName);
IFile file = getRoutineFile(routineItem, currentProject);
if (file == null) {
return;
}
@@ -382,7 +382,7 @@ public abstract class AbstractRoutineSynchronizer implements ITalendSynchronizer
@Override
public void syncAllBeansForLogOn() throws SystemException {
for (RoutineItem beanItem : getBeans(true)) {
syncRoutine(beanItem, true, true);
syncRoutine(beanItem, true, true, true);
}
}

View File

@@ -45,8 +45,7 @@ public interface ITalendSynchronizer {
void syncRoutine(RoutineItem routineItem, boolean copyToTemp, boolean forceUpdate) throws SystemException;
void syncRoutine(RoutineItem routineItem, String projectTechName, boolean copyToTemp, boolean forceUpdate)
throws SystemException;
void syncRoutine(RoutineItem routineItem, boolean currentProject, boolean copyToTemp, boolean forceUpdate) throws SystemException;
IFile getFile(Item item) throws SystemException;

View File

@@ -159,8 +159,6 @@ public interface IDesignerCoreService extends IService {
public Set<ModuleNeeded> getNeededLibrariesForProcess(IProcess process, boolean withChildrens);
public Set<ModuleNeeded> getNeededLibrariesForProcessBeforeUpdateLog(IProcess process, boolean withChildrens);
public Set<ModuleNeeded> getNeededModules(INode node, boolean withChildrens);
public void switchToCurContextsView();

View File

@@ -12,7 +12,6 @@
// ============================================================================
package org.talend.designer.runprocess;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
@@ -299,8 +298,6 @@ public interface IProcessor {
String[] getJVMArgs();
Set<ModuleNeeded> getNeededModules(int options);
public void updateModulesAfterSetLog4j(Collection<ModuleNeeded> modulesNeeded);
Set<JobInfo> getBuildChildrenJobs();

View File

@@ -216,8 +216,6 @@ public interface IRunProcessService extends IService {
ITalendProcessJavaProject getTalendJobJavaProject(Property property);
IFolder getCodeSrcFolder(ERepositoryObjectType type, String projectTechName);
ITalendProcessJavaProject getTempJavaProject();
void clearProjectRelatedSettings();
@@ -239,6 +237,4 @@ public interface IRunProcessService extends IService {
public void handleJobDependencyLoop(JobInfo mainJobInfo, List<JobInfo> listJobs, IProgressMonitor progressMonitor)
throws Exception;
public boolean isSelectLog4j2();
}

View File

@@ -200,10 +200,6 @@ public final class ProjectManager {
* return all the referenced projects of current project.
*/
public List<Project> getAllReferencedProjects(boolean force) {
return getAllReferencedProjects(getCurrentProject(), force);
}
public List<Project> getAllReferencedProjects(Project targetProject, boolean force) {
List<Project> allReferencedprojects = new ArrayList<Project>();
if (GlobalServiceRegister.getDefault().isServiceRegistered(IProxyRepositoryService.class)) {
if (this.getCurrentProject() == null) {
@@ -216,7 +212,7 @@ public final class ProjectManager {
IProxyRepositoryFactory factory = service.getProxyRepositoryFactory();
if (factory != null) {
List<org.talend.core.model.properties.Project> rProjects = factory
.getReferencedProjects(targetProject);
.getReferencedProjects(this.getCurrentProject());
if (rProjects != null) {
for (org.talend.core.model.properties.Project p : rProjects) {
Project project = new Project(p);

View File

@@ -461,9 +461,6 @@ public interface IProxyRepositoryFactory {
public void forceDeleteObjectPhysical(IRepositoryViewObject objToDelete, String version, boolean isDeleteOnRemote) throws PersistenceException;
public void forceBatchDeleteObjectPhysical(Project project, List<IRepositoryViewObject> objToDeleteList,
boolean isDeleteAllVersion, boolean isDeleteOnRemote) throws PersistenceException;
public Property getUptodateProperty(Project project, Property property) throws PersistenceException;
public Property getUptodateProperty(Property property) throws PersistenceException;

View File

@@ -35,7 +35,6 @@ import org.talend.core.model.general.ConnectionBean;
import org.talend.utils.json.JSONArray;
import org.talend.utils.json.JSONException;
import org.talend.utils.json.JSONObject;
import org.talend.utils.security.EncryptedProperties;
/**
* DOC hwang class global comment. Detailled comment
@@ -127,8 +126,8 @@ public class ConnectionUserPerReader {
if (!isHaveUserPer()) {
createPropertyFile();
}
try (FileInputStream fi = new FileInputStream(perfile)) {
proper.load(fi);
try {
proper.load(new FileInputStream(perfile));
isRead = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
@@ -177,7 +176,9 @@ public class ConnectionUserPerReader {
}
proper.setProperty("connection.define", usersJsonArray.toString());//$NON-NLS-1$
}
try (FileOutputStream out = new FileOutputStream(perfile)) {
try {
FileOutputStream out = new FileOutputStream(perfile);
proper.store(out, null);
} catch (Exception e) {
e.printStackTrace();
@@ -201,8 +202,9 @@ public class ConnectionUserPerReader {
proper.remove("connection.lastConnection"); //$NON-NLS-1$
}
}
;
try (FileOutputStream out = new FileOutputStream(perfile)) {
FileOutputStream out;
try {
out = new FileOutputStream(perfile);
proper.store(out, null);
} catch (Exception e) {
e.printStackTrace();
@@ -284,7 +286,9 @@ public class ConnectionUserPerReader {
IPreferenceStore prefStore = PlatformUI.getPreferenceStore();
proper.setProperty("connection.readRegistration", Integer.toString(prefStore.getInt("REGISTRATION_TRIES")));
proper.setProperty("connection.readRegistrationDone", Integer.toString(prefStore.getInt("REGISTRATION_DONE")));
try (FileOutputStream out = new FileOutputStream(perfile)) {
try {
FileOutputStream out = new FileOutputStream(perfile);
proper.store(out, null);
} catch (Exception e) {
e.printStackTrace();
@@ -313,7 +317,8 @@ public class ConnectionUserPerReader {
String val = entry.getValue();
proper.setProperty(key, val);
}
try (FileOutputStream out = new FileOutputStream(perfile)) {
try {
FileOutputStream out = new FileOutputStream(perfile);
proper.store(out, null);
} catch (Exception e) {
e.printStackTrace();
@@ -329,7 +334,9 @@ public class ConnectionUserPerReader {
}
IPreferenceStore prefStore = PlatformUI.getPreferenceStore();
proper.setProperty("connection.licenseManagement", Integer.toString(prefStore.getInt("LICENSE_VALIDATION_DONE")));
try (FileOutputStream out = new FileOutputStream(perfile)) {
try {
FileOutputStream out = new FileOutputStream(perfile);
proper.store(out, null);
} catch (Exception e) {
e.printStackTrace();
@@ -355,7 +362,8 @@ public class ConnectionUserPerReader {
this.readProperties();
}
proper.setProperty("connection.installDone", Boolean.TRUE.toString()); //$NON-NLS-1$
try (FileOutputStream out = new FileOutputStream(perfile)) {
try {
FileOutputStream out = new FileOutputStream(perfile);
proper.store(out, null);
} catch (Exception e) {
e.printStackTrace();

View File

@@ -10,11 +10,11 @@
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.utils.security;
package org.talend.repository.ui.login.connections;
import java.util.Properties;
import org.talend.utils.security.StudioEncryption;
import org.talend.daikon.security.CryptoHelper;
/**
@@ -22,10 +22,15 @@ import org.talend.utils.security.StudioEncryption;
*/
public class EncryptedProperties extends Properties {
private CryptoHelper crypto;
public EncryptedProperties() {
crypto = new CryptoHelper("Il faudrait trouver une passphrase plus originale que celle-ci!");
}
public String getProperty(String key) {
try {
return StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM)
.decrypt(super.getProperty(key));
return crypto.decrypt(super.getProperty(key));
} catch (Exception e) {
throw new RuntimeException("Couldn't decrypt property");
}
@@ -33,8 +38,7 @@ public class EncryptedProperties extends Properties {
public synchronized Object setProperty(String key, String value) {
try {
return super.setProperty(key,
StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM).encrypt(value));
return super.setProperty(key, crypto.encrypt(value));
} catch (Exception e) {
throw new RuntimeException("Couldn't encrypt property");
}

View File

@@ -619,6 +619,4 @@ I18nPreferencePage.importBabili=Import Translation from Babili
I18nPreferencePage.restart=Restart
I18nPreferencePage.restartButton=Need to restart to take effect.
I18nPreferencePage.restoreDefault=Restore default
I18nPreferencePage.wait_process=Process will hold on several minutes, please wait...
MetadataPreferencePage.EnableBasic.name=Enable Basic Authentication Header
MetadataPreferencePage.MessageDialog.Restart=Will restart the studio to apply this setting. \nAre you sure?
I18nPreferencePage.wait_process=Process will hold on several minutes, please wait...

View File

@@ -17,7 +17,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.EMap;
import org.eclipse.gef.commands.Command;
@@ -153,8 +152,8 @@ public class RepositoryChangeMetadataForSAPBapi extends Command {
String uinqueTableName = node.getProcess().generateUniqueConnectionName(
MultiSchemasUtil.getConnectionBaseName(newMetadatTable.getLabel()));
String type = getType(newMetadatTable, isInput);
if (type == null) {
String paramType = getParamType(newMetadatTable, isInput);
if (paramType == null) {
return;
}
if (selectionIndex != null && selectionIndex < paramValues.size()) {
@@ -166,19 +165,18 @@ public class RepositoryChangeMetadataForSAPBapi extends Command {
paramValues.add(valueMap);
}
valueMap.put(ISAPConstant.NAME, TalendQuoteUtils.addQuotes(newMetadatTable.getLabel()));
valueMap.put(ISAPConstant.TYPE, type);
valueMap.put(ISAPConstant.TYPE, paramType);
valueMap.put(ISAPConstant.FIELD_SCHEMA, uinqueTableName);
if (isInput) {
valueMap.put(ISAPConstant.PARENT_ROW, ""); //$NON-NLS-1$
String inputParameterType = getInputParameterType(functionUnit, newMetadatTable);
if (StringUtils.isBlank(inputParameterType)) {
inputParameterType = ISAPConstant.PARAMETER_TYPE_IMPORT;
if (functionUnit != null && functionUnit.getParamData() != null
&& functionUnit.getParamData().getInputRoot() != null) {
for (SAPFunctionParameter param : functionUnit.getParamData().getInputRoot().getChildren()) {
if (param.getName().equals(newMetadatTable.getTableName())) {
valueMap.put(ISAPConstant.CHANGING, param.isChanging());
}
}
}
valueMap.put(ISAPConstant.PARAMETER_TYPE, inputParameterType);
valueMap.put(ISAPConstant.CHANGING, ISAPConstant.PARAMETER_TYPE_CHANGING.equals(inputParameterType));
Map<String, String> properties = newMetadatTable.getAdditionalProperties();
if (properties != null) {
properties.put(ISINPUT, TRUE);
@@ -197,37 +195,7 @@ public class RepositoryChangeMetadataForSAPBapi extends Command {
}
}
private String getInputParameterType(SAPFunctionUnit funcUnit, IMetadataTable newMetadatTable) {
String parameterType = "";
if (funcUnit != null && funcUnit.getParamData() != null && funcUnit.getParamData().getInputRoot() != null) {
SAPFunctionParameter foundParam = null;
String tableName = newMetadatTable.getTableName();
for (SAPFunctionParameter param : funcUnit.getParamData().getInputRoot().getChildren()) {
if (tableName.equals(param.getName())) {
foundParam = param;
break;
}
}
if (foundParam != null) {
if (foundParam.isChanging()) {
parameterType = ISAPConstant.PARAMETER_TYPE_CHANGING;
} else {
if (ISAPConstant.PARAM_TABLE.equals(foundParam.getType())) {
if (foundParam.isTableResideInTables()) {
parameterType = ISAPConstant.PARAMETER_TYPE_TABLES;
} else {
parameterType = ISAPConstant.PARAMETER_TYPE_IMPORT;
}
} else {
parameterType = ISAPConstant.PARAMETER_TYPE_IMPORT;
}
}
}
}
return parameterType;
}
private String getType(IMetadataTable table, boolean isInput) {
private String getParamType(IMetadataTable table, boolean isInput) {
if (functionUnit == null) {
return null;
}

View File

@@ -1,9 +1,5 @@
package org.talend.core.ui.preference.metadata;
import java.io.File;
import java.util.Properties;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IntegerFieldEditor;
@@ -11,20 +7,13 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.core.prefs.ITalendCorePrefConstants;
import org.talend.core.ui.CoreUIPlugin;
import org.talend.core.ui.i18n.Messages;
import org.talend.core.ui.utils.PluginUtil;
public class MetadataPrecisionPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
IntegerFieldEditor xmlColumnsLimit;
private static final String DISABLED_SCHEMES_KEY = "jdk.http.auth.tunneling.disabledSchemes";
public MetadataPrecisionPage() {
setPreferenceStore(CoreUIPlugin.getDefault().getPreferenceStore());
}
@@ -41,9 +30,6 @@ public class MetadataPrecisionPage extends FieldEditorPreferencePage implements
textControl.setToolTipText("Set the maximum number of schema table columns the xml metadata support. ");
xmlColumnsLimit.setValidRange(1, Short.MAX_VALUE);
addField(xmlColumnsLimit);
addField(new BooleanFieldEditor(ITalendCorePrefConstants.METADATA_PREFERENCE_PAGE_ENABLE_BASIC,
Messages.getString("MetadataPreferencePage.EnableBasic.name"), getFieldEditorParent()));
}
public void init(IWorkbench workbench) {
@@ -53,29 +39,7 @@ public class MetadataPrecisionPage extends FieldEditorPreferencePage implements
public boolean performOk() {
getPreferenceStore().setValue(ITalendCorePrefConstants.MAXIMUM_AMOUNT_OF_COLUMNS_FOR_XML, xmlColumnsLimit.getIntValue());
boolean stored = getPreferenceStore().getBoolean(ITalendCorePrefConstants.METADATA_PREFERENCE_PAGE_ENABLE_BASIC);
boolean ok = super.performOk();
boolean checked = getPreferenceStore().getBoolean(ITalendCorePrefConstants.METADATA_PREFERENCE_PAGE_ENABLE_BASIC);
if (stored != checked) {
try {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
boolean confirm = MessageDialog.openConfirm(window.getShell(), "Confirm", //$NON-NLS-1$
Messages.getString("MetadataPreferencePage.MessageDialog.Restart")); //$NON-NLS-1$
File configFile = PluginUtil.getStudioConfigFile();
Properties configProperties = PluginUtil.readProperties(configFile);
if (checked) {
configProperties.setProperty(DISABLED_SCHEMES_KEY, "");
} else {
configProperties.remove(DISABLED_SCHEMES_KEY);
}
PluginUtil.saveProperties(configFile, configProperties, null);
if (confirm) {
PlatformUI.getWorkbench().restart();
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
return ok;
return super.performOk();
}
}

View File

@@ -18,8 +18,8 @@ import org.talend.core.GlobalServiceRegister;
import org.talend.core.prefs.ITalendCorePrefConstants;
import org.talend.core.ui.CoreUIPlugin;
import org.talend.core.ui.branding.IBrandingService;
import org.talend.daikon.security.CryptoHelper;
import org.talend.daikon.token.TokenGenerator;
import org.talend.utils.security.StudioEncryption;
import us.monoid.json.JSONObject;
@@ -47,7 +47,7 @@ public class DefaultTokenCollector extends AbstractTokenCollector {
}
public static String calcUniqueId() {
return TokenGenerator.generateMachineToken((src) -> StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM).encrypt(src));
return TokenGenerator.generateMachineToken(new CryptoHelper(CryptoHelper.PASSPHRASE));
}
/*

View File

@@ -12,18 +12,11 @@
// ============================================================================
package org.talend.core.ui.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URL;
import java.util.Properties;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.URIUtil;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
@@ -111,28 +104,4 @@ public class PluginUtil {
}
return part.getEditorSite().getId();
}
public static File getStudioConfigFile() throws Exception {
URL configLocation = new URL("platform:/config/config.ini"); //$NON-NLS-1$
URL fileUrl = FileLocator.toFileURL(configLocation);
return URIUtil.toFile(new URI(fileUrl.getProtocol(), fileUrl.getPath(), fileUrl.getQuery()));
}
public static Properties readProperties(final File config) {
final Properties configuration = new Properties();
try (final InputStream stream = new FileInputStream(config)) {
configuration.load(stream);
} catch (final IOException e) {
throw new IllegalArgumentException(e);
}
return configuration;
}
public static void saveProperties(final File config, Properties prop, String comment) {
try (FileOutputStream oFile = new FileOutputStream(config)) {
prop.store(oFile, comment);
}catch(final IOException e) {
throw new IllegalArgumentException(e);
}
}
}

View File

@@ -15,10 +15,7 @@ package org.talend.core.services;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.osgi.service.prefs.BackingStoreException;
import org.talend.commons.exception.PersistenceException;
@@ -57,9 +54,6 @@ public interface ICoreTisService extends IService {
public void downLoadAndInstallUpdates(String userName, String password, String adminUrl) throws Exception;
public void downLoadAndInstallUpdates(IProgressMonitor monitor, String userName, String password, String adminUrl)
throws Exception;
public boolean isLicenseExpired();
public boolean isTheSameType(String userName, String password, String adminUrl);
@@ -72,10 +66,4 @@ public interface ICoreTisService extends IService {
public void updateConfiguratorBundles(File configFile, File tempConfigFile) throws IOException;
Map<String, String> getExtraBundleInfo4Patch(File featureIndexFile) throws IOException;
Map<String, String> getDropBundleInfo() throws IOException;
Set<String> getComponentBlackList();
}

View File

@@ -64,8 +64,6 @@ import org.talend.core.language.LanguageManager;
import org.talend.core.model.components.ComponentCategory;
import org.talend.core.model.components.EComponentType;
import org.talend.core.model.components.IComponent;
import org.talend.core.model.components.IComponentsFactory;
import org.talend.core.model.components.IComponentsService;
import org.talend.core.model.general.ModuleNeeded;
import org.talend.core.model.general.Project;
import org.talend.core.model.metadata.IMetadataColumn;
@@ -83,7 +81,6 @@ import org.talend.core.model.process.JobInfo;
import org.talend.core.model.process.ProcessUtils;
import org.talend.core.model.process.ReplaceNodesInProcessProvider;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.JobletProcessItem;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.Property;
import org.talend.core.model.relationship.Relation;
@@ -616,55 +613,28 @@ public class ProcessorUtilities {
return processor;
}
public static boolean checkLoopDependencies(Relation mainJobInfo, Map<String, String> idToLastestVersionMap)
private static boolean checkLoopDependencies(Relation mainJobInfo, Map<String, String> idToLastestVersionMap)
throws ProcessorException {
List<Relation> itemsJobRelatedTo = getItemsRelation(mainJobInfo, idToLastestVersionMap);
List<Relation> relationChecked = new ArrayList<>();
relationChecked.add(mainJobInfo);
return checkLoopDependencies(mainJobInfo, mainJobInfo, itemsJobRelatedTo, relationChecked, idToLastestVersionMap);
return checkLoopDependencies(mainJobInfo, itemsJobRelatedTo, relationChecked, idToLastestVersionMap);
}
private static boolean checkLoopDependencies(Relation mainRelation, Relation currentRelation,
List<Relation> itemsJobRelatedTo,
private static boolean checkLoopDependencies(Relation mainRelation, List<Relation> itemsJobRelatedTo,
List<Relation> relationChecked, Map<String, String> idToLastestVersionMap) throws ProcessorException {
boolean hasDependency = false;
for (Relation relation : itemsJobRelatedTo) {
try {
// means the tRunjob deactivate, or one of the specific version tRunjon deactivate, skip
Map<String, Set<String>> actTrunjobHM = getActivateTRunjobMap(currentRelation.getId(),
currentRelation.getVersion());
if (actTrunjobHM.get(relation.getId()) == null
|| !actTrunjobHM.get(relation.getId()).contains(relation.getVersion())) {
continue;
}
} catch (Exception e) {
throw new ProcessorException(e);
}
hasDependency = relation.getId().equals(mainRelation.getId())
&& relation.getVersion().equals(mainRelation.getVersion());
if (!hasDependency) {
List<Relation> itemsChildJob = getItemsRelation(relation, idToLastestVersionMap);
if (!relationChecked.contains(relation)) {
relationChecked.add(relation);
hasDependency = checkLoopDependencies(mainRelation, relation, itemsChildJob, relationChecked,
idToLastestVersionMap);
hasDependency = checkLoopDependencies(mainRelation, itemsChildJob, relationChecked, idToLastestVersionMap);
}
if (!hasDependency) {
for (Relation childRelation : itemsChildJob) {
try {
// means the tRunjob deactivate, or one of the specific version tRunjon deactivate, skip
Map<String, Set<String>> activateTRunjobMap = getActivateTRunjobMap(relation.getId(),
relation.getVersion());
if (activateTRunjobMap.get(childRelation.getId()) == null
|| !activateTRunjobMap.get(childRelation.getId()).contains(childRelation.getVersion())) {
continue;
}
} catch (Exception e) {
throw new ProcessorException(e);
}
hasDependency = checkLoopDependencies(childRelation, idToLastestVersionMap);
if (hasDependency) {
break;
@@ -680,133 +650,6 @@ public class ProcessorUtilities {
return hasDependency;
}
private static Map<String, Set<String>> getActivateTRunjobMap(String id, String version) throws PersistenceException {
Map<String, Set<String>> actTrunjobHM = new HashMap<String, Set<String>>();
ProcessType processType = null;
try {
IRepositoryViewObject currentJobObject = ProxyRepositoryFactory.getInstance().getSpecificVersion(id, version, true);
if (currentJobObject != null) {
Item item = currentJobObject.getProperty().getItem();
if (item instanceof ProcessItem) {
processType = ((ProcessItem) item).getProcess();
} else if (item instanceof JobletProcessItem) {
processType = ((JobletProcessItem) item).getJobletProcess();
}
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
if (processType != null) {
List<Project> allProjects = new ArrayList<Project>();
allProjects.add(ProjectManager.getInstance().getCurrentProject());
allProjects.addAll(ProjectManager.getInstance().getAllReferencedProjects());
List<String> jobletsComponentsList = new ArrayList<String>();
IComponentsFactory componentsFactory = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(IComponentsService.class)) {
IComponentsService compService = (IComponentsService) GlobalServiceRegister.getDefault()
.getService(IComponentsService.class);
if (compService != null) {
componentsFactory = compService.getComponentsFactory();
for (IComponent component : componentsFactory.readComponents()) {
if (component.getComponentType() == EComponentType.JOBLET) {
jobletsComponentsList.add(component.getName());
}
}
}
}
String jobletPaletteType = null;
String frameWork = processType.getFramework();
if (StringUtils.isBlank(frameWork)) {
jobletPaletteType = ComponentCategory.CATEGORY_4_DI.getName();
} else if (frameWork.equals(HadoopConstants.FRAMEWORK_SPARK)) {
jobletPaletteType = ComponentCategory.CATEGORY_4_SPARK.getName();
} else if (frameWork.equals(HadoopConstants.FRAMEWORK_SPARK_STREAMING)) {
jobletPaletteType = ComponentCategory.CATEGORY_4_SPARKSTREAMING.getName();
}
for (Object nodeObject : processType.getNode()) {
NodeType node = (NodeType) nodeObject;
// not tRunjob && not joblet then continue
if (!node.getComponentName().equals("tRunJob") && !jobletsComponentsList.contains(node.getComponentName())) { // $NON-NLS-1$
continue;
}
boolean nodeActivate = true;
String processIds = null;
String processVersion = null;
for (Object elementParam : node.getElementParameter()) {
ElementParameterType elemParamType = (ElementParameterType) elementParam;
if ("PROCESS:PROCESS_TYPE_PROCESS".equals(elemParamType.getName())) { // $NON-NLS-1$
processIds = elemParamType.getValue();
if (StringUtils.isNotBlank(processIds)) {
for (String jobId : processIds.split(ProcessorUtilities.COMMA)) {
if (actTrunjobHM.get(jobId) == null) {
actTrunjobHM.put(jobId, new HashSet<String>());
}
}
}
} else if ("PROCESS:PROCESS_TYPE_VERSION".equals(elemParamType.getName()) // $NON-NLS-1$
|| "PROCESS_TYPE_VERSION".equals(elemParamType.getName())) { // $NON-NLS-1$
processVersion = elemParamType.getValue();
} else if ("ACTIVATE".equals(elemParamType.getName())) { // $NON-NLS-1$
nodeActivate = Boolean.parseBoolean(elemParamType.getValue());
}
}
if (nodeActivate) {
if (StringUtils.isNotBlank(processIds)) {
for (String jobId : processIds.split(ProcessorUtilities.COMMA)) {
String actualVersion = processVersion;
if (RelationshipItemBuilder.LATEST_VERSION.equals(processVersion)) {
for (Project project : allProjects) {
IRepositoryViewObject lastVersion = null;
lastVersion = ProxyRepositoryFactory.getInstance().getLastVersion(project, jobId);
if (lastVersion != null) {
actualVersion = lastVersion.getVersion();
break;
}
}
}
if (actTrunjobHM.get(jobId) != null) {
actTrunjobHM.get(jobId).add(actualVersion);
}
}
} else if (componentsFactory != null && jobletPaletteType != null) {
// for joblet
IComponent cc = componentsFactory.get(node.getComponentName(), jobletPaletteType);
if (GlobalServiceRegister.getDefault().isServiceRegistered(IJobletProviderService.class)) {
IJobletProviderService jobletService = (IJobletProviderService) GlobalServiceRegister.getDefault()
.getService(IJobletProviderService.class);
Property property = jobletService.getJobletComponentItem(cc);
if (property != null && StringUtils.isNotBlank(property.getId())) {
String jobletId = property.getId();
if (actTrunjobHM.get(jobletId) == null) {
actTrunjobHM.put(jobletId, new HashSet<String>());
}
String actualVersion = processVersion;
if (RelationshipItemBuilder.LATEST_VERSION.equals(processVersion)) {
for (Project project : allProjects) {
IRepositoryViewObject lastVersion = null;
lastVersion = ProxyRepositoryFactory.getInstance().getLastVersion(project, jobletId);
if (lastVersion != null) {
actualVersion = lastVersion.getVersion();
break;
}
}
}
actTrunjobHM.get(jobletId).add(actualVersion);
}
}
}
}
}
}
return actTrunjobHM;
}
private static List<Relation> getItemsRelation(Relation mainJobInfo, Map<String, String> idToLastestVersionMap) throws ProcessorException {
List<Relation> itemsJobRelatedTo = new ArrayList<Relation>();
try {
@@ -2773,32 +2616,20 @@ public class ProcessorUtilities {
}
public static boolean isEsbJob(IProcess process) {
return isEsbJob(process, false);
}
public static boolean isEsbJob(IProcess process, boolean checkCurrentProcess) {
if (process instanceof IProcess2) {
Set<JobInfo> infos = ProcessorUtilities.getChildrenJobInfo(((IProcess2) process).getProperty().getItem(), false);
if (checkCurrentProcess) {
for (INode n : process.getGraphicalNodes()) {
if (isEsbComponentName(n.getComponent().getName())) {
for (JobInfo jobInfo : infos) {
ProcessType processType = jobInfo.getProcessItem().getProcess();
EList<NodeType> nodes = processType.getNode();
for (NodeType nodeType : nodes) {
if (isEsbComponentName(nodeType.getComponentName())) {
return true;
}
}
} else {
Set<JobInfo> infos = ProcessorUtilities.getChildrenJobInfo(((IProcess2) process).getProperty().getItem(), false);
for (JobInfo jobInfo : infos) {
ProcessType processType = jobInfo.getProcessItem().getProcess();
EList<NodeType> nodes = processType.getNode();
for (NodeType nodeType : nodes) {
if (isEsbComponentName(nodeType.getComponentName())) {
return true;
}
}
}
}
return false;
}

View File

@@ -277,9 +277,6 @@ public class ATreeNode {
* @throws OdaException
*/
public void setDataType(String type) throws OdaException {
if (type == null) {
type = "";
}
originalDataType = new String(type);
this.dataType = getDataType(type);
}

View File

@@ -43,10 +43,8 @@ import org.eclipse.xsd.XSDImport;
import org.eclipse.xsd.XSDModelGroup;
import org.eclipse.xsd.XSDParticle;
import org.eclipse.xsd.XSDSchema;
import org.eclipse.xsd.XSDSimpleTypeDefinition;
import org.eclipse.xsd.XSDTerm;
import org.eclipse.xsd.XSDTypeDefinition;
import org.eclipse.xsd.XSDVariety;
import org.eclipse.xsd.impl.XSDNamedComponentImpl;
import org.eclipse.xsd.util.XSDConstants;
import org.eclipse.xsd.util.XSDResourceImpl;
@@ -357,15 +355,12 @@ public class XSDPopulationUtil2 implements IXSDPopulationUtil {
}
}
if (!resolvedAsComplex) {
XSDTypeDefinition typeDefinition = xsdElementDeclarationParticle.getTypeDefinition();
String dataType = typeDefinition.getQName();
String dataType = xsdElementDeclarationParticle.getTypeDefinition().getQName();
if (!XSDConstants
.isSchemaForSchemaNamespace(typeDefinition.getTargetNamespace())
&& typeDefinition.getBaseType() != null) {
if (!"xs:anySimpleType".equals(typeDefinition.getBaseType().getQName())) {
dataType = typeDefinition.getBaseType().getQName();
} else if (typeDefinition instanceof XSDSimpleTypeDefinition) {
dataType = getVarietyType(((XSDSimpleTypeDefinition) typeDefinition).getVariety());
.isSchemaForSchemaNamespace(xsdElementDeclarationParticle.getTypeDefinition().getTargetNamespace())
&& xsdElementDeclarationParticle.getTypeDefinition().getBaseType() != null) {
if (!"xs:anySimpleType".equals(xsdElementDeclarationParticle.getTypeDefinition().getBaseType().getQName())) {
dataType = xsdElementDeclarationParticle.getTypeDefinition().getBaseType().getQName();
}
}
partNode.setDataType(dataType);
@@ -383,16 +378,6 @@ public class XSDPopulationUtil2 implements IXSDPopulationUtil {
}
}
private String getVarietyType(XSDVariety variety) {
String dataType = "xs:anyType";
if (XSDVariety.LIST_LITERAL.equals(variety)) {
dataType = "xs:list";
} else if (XSDVariety.UNION_LITERAL.equals(variety)) {
dataType = "xs:union";
}
return dataType;
}
private void handleOptionalAttribute(ATreeNode node, XSDParticle xsdParticle) {
if (node == null || xsdParticle == null || xsdParticle.getElement() == null) {
return;
@@ -500,17 +485,6 @@ public class XSDPopulationUtil2 implements IXSDPopulationUtil {
}
if (xsdTypeDefinition instanceof XSDComplexTypeDefinition) {
addComplexTypeDetails(xsdSchema, node, xsdTypeDefinition, prefix, namespace, "/" + elementName + "/");
} else if (xsdTypeDefinition instanceof XSDSimpleTypeDefinition) {
String dataType = xsdTypeDefinition.getQName();
if (!XSDConstants.isSchemaForSchemaNamespace(xsdTypeDefinition.getTargetNamespace())
&& xsdTypeDefinition.getBaseType() != null) {
if (!"xs:anySimpleType".equals(xsdTypeDefinition.getBaseType().getQName())) {
dataType = xsdTypeDefinition.getBaseType().getQName();
} else if (xsdTypeDefinition instanceof XSDSimpleTypeDefinition) {
dataType = getVarietyType(((XSDSimpleTypeDefinition) xsdTypeDefinition).getVariety());
}
}
node.setDataType(dataType);
}
List<String> namespaceList = new ArrayList(namespaceToPrefix.keySet());
Collections.reverse(namespaceList);
@@ -591,11 +565,7 @@ public class XSDPopulationUtil2 implements IXSDPopulationUtil {
particleToTreeNode.clear();
}
if (rootNodes.isEmpty()) {
return null;
} else {
return rootNodes.get(0);
}
return rootNodes.get(0);
}
private void addSubstitutionDetails(XSDSchema xsdSchema, ATreeNode parentNode, XSDElementDeclaration elementDeclaration,
@@ -790,14 +760,11 @@ public class XSDPopulationUtil2 implements IXSDPopulationUtil {
ATreeNode childNode = new ATreeNode();
childNode.setValue(attributeDeclarationName);
childNode.setType(ATreeNode.ATTRIBUTE_TYPE);
XSDSimpleTypeDefinition typeDefinition = xsdAttributeDeclaration.getTypeDefinition();
String dataType = typeDefinition.getQName();
XSDTypeDefinition baseType = typeDefinition.getBaseType();
if (!XSDConstants.isSchemaForSchemaNamespace(typeDefinition.getTargetNamespace())) {
String dataType = xsdAttributeDeclaration.getTypeDefinition().getQName();
XSDTypeDefinition baseType = xsdAttributeDeclaration.getTypeDefinition().getBaseType();
if (!XSDConstants.isSchemaForSchemaNamespace(xsdAttributeDeclaration.getTypeDefinition().getTargetNamespace())) {
if (baseType != null && !"xs:anySimpleType".equals(baseType.getQName())) { //$NON-NLS-1$
dataType = baseType.getQName();
} else if (typeDefinition instanceof XSDSimpleTypeDefinition) {
dataType = getVarietyType(((XSDSimpleTypeDefinition) typeDefinition).getVariety());
}
}
if (dataType != null && dataType.length() > 0) {

View File

@@ -1,34 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/wagon-http-lightweight.jar" sourcepath="D:/.m2/repository/org/apache/maven/wagon/wagon-http-lightweight/3.0.0/wagon-http-lightweight-3.0.0-sources.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-transport-file.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-transport-http.jar"/>
<classpathentry exported="true" kind="lib" path="lib/wagon-file.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jsoup.jar"/>
<classpathentry exported="true" kind="lib" path="lib/wagon-http-shared.jar"/>
<classpathentry exported="true" kind="lib" path="lib/wagon-http.jar"/>
<classpathentry exported="true" kind="lib" path="lib/commons-codec.jar"/>
<classpathentry exported="true" kind="lib" path="lib/httpclient.jar"/>
<classpathentry exported="true" kind="lib" path="lib/httpcore.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jcl-over-slf4j.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-api.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-connector-basic.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-impl.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-spi.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-transport-classpath.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-transport-wagon.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-util.jar"/>
<classpathentry exported="true" kind="lib" path="lib/plexus-utils.jar"/>
<classpathentry exported="true" kind="lib" path="lib/slf4j-api.jar"/>
<classpathentry exported="true" kind="lib" path="lib/wagon-provider-api.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-aether-provider-3.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-model-3.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-model-builder-3.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-repository-metadata-3.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/plexus-interpolation-1.19.jar"/>
<classpathentry exported="true" kind="lib" path="lib/plexus-utils-3.0.17.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/commons-codec.jar"/>
<classpathentry exported="true" kind="lib" path="lib/httpclient.jar"/>
<classpathentry exported="true" kind="lib" path="lib/httpcore.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jcl-over-slf4j.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-api.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-connector-basic.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-impl.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-spi.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-transport-classpath.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-transport-file.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-transport-http.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-transport-wagon.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-resolver-util.jar"/>
<classpathentry exported="true" kind="lib" path="lib/plexus-utils.jar"/>
<classpathentry exported="true" kind="lib" path="lib/slf4j-api.jar"/>
<classpathentry exported="true" kind="lib" path="lib/wagon-provider-api.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-aether-provider-3.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-model-3.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-model-builder-3.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/maven-repository-metadata-3.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/plexus-interpolation-1.19.jar"/>
<classpathentry exported="true" kind="lib" path="lib/plexus-utils-3.0.17.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@@ -26,18 +26,13 @@ Bundle-ClassPath: .,
lib/maven-resolver-impl.jar,
lib/maven-resolver-spi.jar,
lib/maven-resolver-transport-classpath.jar,
lib/maven-resolver-transport-file.jar,
lib/maven-resolver-transport-http.jar,
lib/maven-resolver-transport-wagon.jar,
lib/maven-resolver-util.jar,
lib/plexus-utils.jar,
lib/slf4j-api.jar,
lib/wagon-provider-api.jar,
lib/jsoup.jar,
lib/wagon-http-shared.jar,
lib/wagon-http.jar,
lib/wagon-file.jar,
lib/maven-resolver-transport-file.jar,
lib/maven-resolver-transport-http.jar,
lib/wagon-http-lightweight.jar
lib/wagon-provider-api.jar
Export-Package: org.talend.designer.maven.aether,
org.talend.designer.maven.aether.comparator,
org.talend.designer.maven.aether.node,

View File

@@ -2,11 +2,4 @@ source.. = src/main/java/
output.. = target/classes/
bin.includes = META-INF/,\
.,\
lib/,\
lib/jsoup.jar,\
lib/wagon-http-shared.jar,\
lib/wagon-http.jar,\
lib/wagon-file.jar,\
lib/maven-resolver-transport-file.jar,\
lib/maven-resolver-transport-http.jar,\
lib/wagon-http-lightweight.jar
lib/

View File

@@ -11,7 +11,6 @@
<packaging>eclipse-plugin</packaging>
<properties>
<maven.resolver.version>1.3.1</maven.resolver.version>
<wagon.version>3.0.0</wagon.version>
</properties>
<dependencies>
@@ -46,25 +45,10 @@
<version>${maven.resolver.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-file</artifactId>
<version>${wagon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http</artifactId>
<version>${wagon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http-lightweight</artifactId>
<version>${wagon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-transport-file</artifactId>
<version>${maven.resolver.version}</version>
</dependency>
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-transport-http</artifactId>

View File

@@ -17,21 +17,24 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.codehaus.plexus.PlexusContainerException;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
import org.eclipse.aether.deployment.DeployRequest;
import org.eclipse.aether.impl.DefaultServiceLocator;
import org.eclipse.aether.repository.Authentication;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
import org.eclipse.aether.spi.connector.transport.TransporterFactory;
import org.eclipse.aether.transport.file.FileTransporterFactory;
import org.eclipse.aether.transport.http.HttpTransporterFactory;
import org.eclipse.aether.util.artifact.SubArtifact;
import org.eclipse.aether.util.listener.ChainedRepositoryListener;
import org.eclipse.aether.util.listener.ChainedTransferListener;
import org.eclipse.aether.util.repository.AuthenticationBuilder;
import org.talend.designer.maven.aether.util.MavenLibraryResolverProvider;
import org.talend.designer.maven.aether.util.TalendAetherProxySelector;
/**
* created by wchen on Aug 10, 2017 Detailled comment
@@ -41,19 +44,34 @@ public class RepositorySystemFactory {
private static Map<LocalRepository, DefaultRepositorySystemSession> sessions = new HashMap<LocalRepository, DefaultRepositorySystemSession>();
private static DefaultRepositorySystemSession newRepositorySystemSession(String localRepositoryPath)
throws PlexusContainerException {
private static RepositorySystem system;
private static RepositorySystem newRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
exception.printStackTrace();
}
});
return locator.getService(RepositorySystem.class);
}
private static DefaultRepositorySystemSession newRepositorySystemSession(String localRepositoryPath) {
LocalRepository localRepo = new LocalRepository(localRepositoryPath);
DefaultRepositorySystemSession repositorySystemSession = sessions.get(localRepo);
if (repositorySystemSession == null) {
repositorySystemSession = MavenRepositorySystemUtils.newSession();
repositorySystemSession
.setLocalRepositoryManager(
MavenLibraryResolverProvider.newRepositorySystem().newLocalRepositoryManager(repositorySystemSession,
localRepo));
.setLocalRepositoryManager(system.newLocalRepositoryManager(repositorySystemSession, localRepo));
repositorySystemSession.setTransferListener(new ChainedTransferListener());
repositorySystemSession.setRepositoryListener(new ChainedRepositoryListener());
repositorySystemSession.setProxySelector(new TalendAetherProxySelector());
}
return repositorySystemSession;
@@ -63,7 +81,9 @@ public class RepositorySystemFactory {
String userName, String password, String groupId, String artifactId, String classifier, String extension,
String version) throws Exception {
DefaultRepositorySystemSession session = null;
RepositorySystem system = MavenLibraryResolverProvider.newRepositorySystem();
if (system == null) {
system = newRepositorySystem();
}
session = newRepositorySystemSession(localRepository);
DeployRequest deployRequest = new DeployRequest();
@@ -87,7 +107,6 @@ public class RepositorySystemFactory {
Authentication auth = new AuthenticationBuilder().addUsername(userName).addPassword(password).build();
RemoteRepository distRepo = new RemoteRepository.Builder(repositoryId, "default", repositoryUrl).setAuthentication(auth)
.build();
distRepo = new RemoteRepository.Builder(distRepo).setProxy(new TalendAetherProxySelector().getProxy(distRepo)).build();
deployRequest.setRepository(distRepo);

View File

@@ -36,11 +36,10 @@ import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.collection.CollectRequest;
import org.eclipse.aether.collection.DependencySelector;
import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
import org.eclipse.aether.graph.DefaultDependencyNode;
import org.eclipse.aether.graph.Exclusion;
import org.eclipse.aether.impl.DefaultServiceLocator;
import org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator;
import org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider;
import org.eclipse.aether.repository.Authentication;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.RemoteRepository;
@@ -49,6 +48,10 @@ import org.eclipse.aether.resolution.ArtifactRequest;
import org.eclipse.aether.resolution.ArtifactResult;
import org.eclipse.aether.resolution.VersionRangeRequest;
import org.eclipse.aether.resolution.VersionRangeResult;
import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
import org.eclipse.aether.spi.connector.transport.TransporterFactory;
import org.eclipse.aether.transport.file.FileTransporterFactory;
import org.eclipse.aether.transport.http.HttpTransporterFactory;
import org.eclipse.aether.util.artifact.JavaScopes;
import org.eclipse.aether.util.graph.selector.AndDependencySelector;
import org.eclipse.aether.util.graph.selector.OptionalDependencySelector;
@@ -108,11 +111,11 @@ public class DynamicDistributionAetherUtils {
RepositorySystem repoSystem = null;
if (multiThread) {
repoSystem = MavenLibraryResolverProvider.newRepositorySystemForResolver();
repoSystem = newRepositorySystem();
} else {
repoSystem = repoSystemMap.get(key);
if (repoSystem == null) {
repoSystem = MavenLibraryResolverProvider.newRepositorySystemForResolver();
repoSystem = newRepositorySystem();
repoSystemMap.put(key, repoSystem);
}
}
@@ -149,7 +152,6 @@ public class DynamicDistributionAetherUtils {
builder = builder.setAuthentication(auth);
}
RemoteRepository central = builder.build();
central = new RemoteRepository.Builder(central).setProxy(new TalendAetherProxySelector().getProxy(central)).build();
CollectRequest collectRequest = new CollectRequest();
collectRequest.setRoot(dependency);
@@ -281,7 +283,7 @@ public class DynamicDistributionAetherUtils {
if (monitor == null) {
monitor = new DummyDynamicMonitor();
}
RepositorySystem repSystem = MavenLibraryResolverProvider.newRepositorySystemForResolver();
RepositorySystem repSystem = newRepositorySystem();
RepositorySystemSession repSysSession = newSession(repSystem, localPath, monitor);
updateDependencySelector((DefaultRepositorySystemSession) repSysSession, monitor);
@@ -305,7 +307,6 @@ public class DynamicDistributionAetherUtils {
builder = builder.setAuthentication(auth);
}
RemoteRepository central = builder.build();
central = new RemoteRepository.Builder(central).setProxy(new TalendAetherProxySelector().getProxy(central)).build();
VersionRangeRequest verRangeRequest = new VersionRangeRequest();
verRangeRequest.addRepository(central);
@@ -328,7 +329,7 @@ public class DynamicDistributionAetherUtils {
if (monitor == null) {
monitor = new DummyDynamicMonitor();
}
RepositorySystem repSystem = MavenLibraryResolverProvider.newRepositorySystemForResolver();
RepositorySystem repSystem = newRepositorySystem();
RepositorySystemSession repSysSession = newSession(repSystem, localPath, monitor);
updateDependencySelector((DefaultRepositorySystemSession) repSysSession, monitor);
@@ -352,7 +353,6 @@ public class DynamicDistributionAetherUtils {
builder = builder.setAuthentication(auth);
}
RemoteRepository central = builder.build();
central = new RemoteRepository.Builder(central).setProxy(new TalendAetherProxySelector().getProxy(central)).build();
VersionRangeRequest verRangeRequest = new VersionRangeRequest();
verRangeRequest.addRepository(central);
@@ -411,13 +411,21 @@ public class DynamicDistributionAetherUtils {
// }
// }
private static RepositorySystem newRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
return locator.getService(RepositorySystem.class);
}
private static RepositorySystemSession newSession(RepositorySystem system, String repositoryPath, IDynamicMonitor monitor)
throws CoreException {
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
LocalRepository localRepo = new LocalRepository(repositoryPath);
session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo));
session.setProxySelector(new TalendAetherProxySelector());
updateDependencySelector(session, monitor);

View File

@@ -12,25 +12,12 @@
// ============================================================================
package org.talend.designer.maven.aether.util;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
import org.apache.commons.lang3.StringUtils;
import org.apache.maven.model.License;
import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.apache.maven.wagon.Wagon;
import org.apache.maven.wagon.providers.file.FileWagon;
import org.apache.maven.wagon.providers.http.HttpWagon;
import org.apache.maven.wagon.providers.http.LightweightHttpWagonAuthenticator;
import org.apache.maven.wagon.providers.http.LightweightHttpsWagon;
import org.codehaus.plexus.DefaultPlexusContainer;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.PlexusContainerException;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
@@ -38,8 +25,6 @@ import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
import org.eclipse.aether.impl.DefaultServiceLocator;
import org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator;
import org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider;
import org.eclipse.aether.repository.Authentication;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.RemoteRepository;
@@ -49,12 +34,9 @@ import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
import org.eclipse.aether.spi.connector.transport.TransporterFactory;
import org.eclipse.aether.transport.file.FileTransporterFactory;
import org.eclipse.aether.transport.http.HttpTransporterFactory;
import org.eclipse.aether.transport.wagon.WagonTransporterFactory;
import org.eclipse.aether.util.repository.AuthenticationBuilder;
import org.eclipse.m2e.core.MavenPlugin;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.core.nexus.ArtifactRepositoryBean;
import org.talend.core.nexus.NexusConstants;
import org.talend.core.nexus.TalendLibsServerManager;
import org.talend.core.runtime.maven.MavenArtifact;
@@ -66,17 +48,10 @@ public class MavenLibraryResolverProvider {
private RepositorySystem defaultRepoSystem;
private RepositorySystem dynamicRepoSystem;
private RepositorySystemSession defaultRepoSystemSession;
private RepositorySystemSession dynamicRepoSystemSession;
private RemoteRepository defaultRemoteRepository = null;
private RemoteRepository dynamicRemoteRepository = null;
private static MavenLibraryResolverProvider instance;
public static MavenLibraryResolverProvider getInstance() {
@@ -95,11 +70,9 @@ public class MavenLibraryResolverProvider {
return instance;
}
private MavenLibraryResolverProvider() throws PlexusContainerException {
defaultRepoSystem = newRepositorySystemForResolver();
dynamicRepoSystem = newRepositorySystemForResolver();
private MavenLibraryResolverProvider() {
defaultRepoSystem = newRepositorySystem();
defaultRepoSystemSession = newSession(defaultRepoSystem, getLocalMVNRepository());
dynamicRepoSystemSession = newSession(dynamicRepoSystem, getLocalMVNRepository());
ArtifactRepositoryBean talendServer = TalendLibsServerManager.getInstance().getTalentArtifactServer();
if (talendServer.getUserName() == null && talendServer.getPassword() == null) {
defaultRemoteRepository = new RemoteRepository.Builder("talend", "default", talendServer.getRepositoryURL()).build(); //$NON-NLS-1$ //$NON-NLS-2$
@@ -109,108 +82,55 @@ public class MavenLibraryResolverProvider {
defaultRemoteRepository = new RemoteRepository.Builder("talend", "default", talendServer.getRepositoryURL()) //$NON-NLS-1$ //$NON-NLS-2$
.setAuthentication(authentication).build();
}
defaultRemoteRepository = new RemoteRepository.Builder(defaultRemoteRepository)
.setProxy(new TalendAetherProxySelector().getProxy(defaultRemoteRepository)).build();
Authentication authentication = new AuthenticationBuilder().addUsername("studio-dl-client").addPassword(
"studio-dl-client")
.build();
String serverUrl = talendServer.getServer();
if (!serverUrl.endsWith(NexusConstants.SLASH)) {
serverUrl += NexusConstants.SLASH;
}
dynamicRemoteRepository = new RemoteRepository.Builder("talend2", "default",
NexusConstants.DYNAMIC_DISTRIBUTION).setAuthentication(authentication).build();
dynamicRemoteRepository = new RemoteRepository.Builder(dynamicRemoteRepository)
.setProxy(new TalendAetherProxySelector().getProxy(dynamicRemoteRepository)).build();
}
public ArtifactResult resolveArtifact(MavenArtifact aritfact, boolean is4Parent) throws Exception {
ArtifactRequest artifactRequest = new ArtifactRequest();
public ArtifactResult resolveArtifact(MavenArtifact aritfact) throws Exception {
RemoteRepository remoteRepo = getRemoteRepositroy(aritfact);
artifactRequest.addRepository(remoteRepo);
if (is4Parent) {
artifactRequest.addRepository(dynamicRemoteRepository);
}
Artifact artifact = new DefaultArtifact(aritfact.getGroupId(), aritfact.getArtifactId(), aritfact.getClassifier(),
aritfact.getType(), aritfact.getVersion());
ArtifactRequest artifactRequest = new ArtifactRequest();
artifactRequest.addRepository(remoteRepo);
artifactRequest.setArtifact(artifact);
ArtifactResult result = null;
if (is4Parent) {
result = dynamicRepoSystem.resolveArtifact(dynamicRepoSystemSession, artifactRequest);
} else {
result = defaultRepoSystem.resolveArtifact(defaultRepoSystemSession, artifactRequest);
}
ArtifactResult result = defaultRepoSystem.resolveArtifact(defaultRepoSystemSession, artifactRequest);
return result;
}
public Map<String, Object> resolveDescProperties(MavenArtifact aritfact, boolean is4Parent) throws Exception {
public Map<String, Object> resolveDescProperties(MavenArtifact aritfact) throws Exception {
Map<String, Object> properties = null;
MavenArtifact clonedArtifact = aritfact.clone();
clonedArtifact.setType("pom"); //$NON-NLS-1$
ArtifactResult result = resolveArtifact(clonedArtifact, is4Parent);
ArtifactResult result = resolveArtifact(clonedArtifact);
if (result != null && result.isResolved()) {
properties = new HashMap<String, Object>();
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(new FileReader(result.getArtifact().getFile()));
// Model model = MavenPlugin.getMavenModelManager().readMavenModel(result.getArtifact().getFile());
Model model = MavenPlugin.getMavenModelManager().readMavenModel(result.getArtifact().getFile());
if (model != null) {
properties.put("type", model.getPackaging()); //$NON-NLS-1$
int licenseCount = 0;
properties.put("license.count", model.getLicenses().size()); //$NON-NLS-1$
if (model.getLicenses() != null) {
for (int i = 0; i < model.getLicenses().size(); i++) {
License license = model.getLicenses().get(i);
if (StringUtils.isNotBlank(license.getName()) || StringUtils.isNotBlank(license.getUrl())) {
properties.put("license." + i + ".name", license.getName()); //$NON-NLS-1$//$NON-NLS-2$
properties.put("license." + i + ".url", license.getUrl()); //$NON-NLS-1$ //$NON-NLS-2$
properties.put("license." + i + ".comments", license.getComments()); //$NON-NLS-1$ //$NON-NLS-2$
properties.put("license." + i + ".distribution", license.getDistribution()); //$NON-NLS-1$ //$NON-NLS-2$
licenseCount++;
}
properties.put("license." + i + ".name", license.getName()); //$NON-NLS-1$//$NON-NLS-2$
properties.put("license." + i + ".url", license.getUrl()); //$NON-NLS-1$ //$NON-NLS-2$
properties.put("license." + i + ".comments", license.getComments()); //$NON-NLS-1$ //$NON-NLS-2$
properties.put("license." + i + ".distribution", license.getDistribution()); //$NON-NLS-1$ //$NON-NLS-2$
}
}
properties.put("license.count", licenseCount); //$NON-NLS-1$
Parent parent = model.getParent();
if (parent != null) {
properties.put("parent.groupId", parent.getGroupId());
properties.put("parent.version", parent.getVersion());
properties.put("parent.artifactId", parent.getArtifactId());
} else {
properties.remove("parent.groupId");
properties.remove("parent.version");
properties.remove("parent.artifactId");
}
}
}
return properties;
}
public RemoteRepository getRemoteRepositroy(MavenArtifact aritfact) {
RemoteRepository remoteRepository = null;
Consumer<RemoteRepository> update = null;
if (aritfact != null && aritfact.getRepositoryUrl() != null) {
if (urlToRepositoryMap.containsKey(aritfact.getRepositoryUrl())) {
remoteRepository = urlToRepositoryMap.get(aritfact.getRepositoryUrl());
} else {
remoteRepository = buildRemoteRepository(aritfact);
urlToRepositoryMap.put(aritfact.getRepositoryUrl(), remoteRepository);
return urlToRepositoryMap.get(aritfact.getRepositoryUrl());
}
update = (r) -> urlToRepositoryMap.put(aritfact.getRepositoryUrl(), r);
} else {
remoteRepository = defaultRemoteRepository;
update = (r) -> defaultRemoteRepository = r;
RemoteRepository repository = buildRemoteRepository(aritfact);
urlToRepositoryMap.put(aritfact.getRepositoryUrl(), repository);
return repository;
}
try {
remoteRepository = new RemoteRepository.Builder(remoteRepository)
.setProxy(defaultRepoSystemSession.getProxySelector().getProxy(remoteRepository)).build();
update.accept(remoteRepository);
} catch (Exception e) {
ExceptionHandler.process(e);
}
return remoteRepository;
return defaultRemoteRepository;
}
private RemoteRepository buildRemoteRepository(MavenArtifact aritfact) {
@@ -223,53 +143,15 @@ public class MavenLibraryResolverProvider {
repository = new RemoteRepository.Builder("talend", "default", aritfact.getRepositoryUrl()) //$NON-NLS-1$ //$NON-NLS-2$
.setAuthentication(authentication).build();
}
repository = new RemoteRepository.Builder(repository).setProxy(new TalendAetherProxySelector().getProxy(repository))
.build();
return repository;
}
public static RepositorySystem newRepositorySystem() throws PlexusContainerException {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
// TUP-24695 change to wagon transporters
locator.addService(TransporterFactory.class, WagonTransporterFactory.class);
PlexusContainer pc = new DefaultPlexusContainer();
LightweightHttpsWagon https = new LightweightHttpsWagon();
https.setAuthenticator(new LightweightHttpWagonAuthenticator());
pc.addComponent(https, Wagon.class, "https");
pc.addComponent(new HttpWagon(), Wagon.class, "http");
pc.addComponent(new FileWagon(), Wagon.class, "file");
WagonTransporterFactory tf = (WagonTransporterFactory) locator.getService(TransporterFactory.class);
tf.setWagonConfigurator(new PlexusWagonConfigurator(pc));
tf.setWagonProvider(new PlexusWagonProvider(pc));
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
exception.printStackTrace();
}
});
return locator.getService(RepositorySystem.class);
}
public static RepositorySystem newRepositorySystemForResolver() {
private RepositorySystem newRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
exception.printStackTrace();
}
});
return locator.getService(RepositorySystem.class);
}
@@ -278,7 +160,6 @@ public class MavenLibraryResolverProvider {
LocalRepository localRepo = new LocalRepository( /* "target/local-repo" */target);
session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo));
session.setProxySelector(new TalendAetherProxySelector());
return session;
}

View File

@@ -1,98 +0,0 @@
// ============================================================================
//
// Copyright (C) 2006-2019 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.designer.maven.aether.util;
import org.eclipse.aether.repository.Authentication;
import org.eclipse.aether.repository.Proxy;
import org.eclipse.aether.repository.ProxySelector;
import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.util.repository.AuthenticationBuilder;
import org.eclipse.aether.util.repository.DefaultProxySelector;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.utils.network.TalendProxySelector;
/**
* DOC cmeng class global comment. Detailled comment
*/
public class TalendAetherProxySelector implements ProxySelector {
private boolean isTalendDebug = false;
public TalendAetherProxySelector() {
isTalendDebug = Boolean.valueOf(System.getProperty(TalendProxySelector.PROP_PRINT_LOGS, "false"));
}
@Override
public Proxy getProxy(RemoteRepository repository) {
/**
* Update each time in case the settings are changed
*/
Proxy proxy = createProxySelector().getProxy(repository);
if (isTalendDebug) {
try {
if (repository != null) {
String proxyStr = "";
if (proxy != null) {
proxyStr = proxy.getType() + " " + proxy.toString() + ", proxy user: "
+ (proxy.getAuthentication() != null ? "..." : "<empty>");
}
ExceptionHandler.log("Aether proxy> host: " + repository.getHost() + ", proxy: " + proxyStr);
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
return proxy;
}
private DefaultProxySelector createProxySelector() {
DefaultProxySelector proxySelector = new DefaultProxySelector();
javaDefaultProxy(proxySelector);
return proxySelector;
}
private void javaDefaultProxy(DefaultProxySelector proxySelector) {
String[] schemas = new String[] { "http", "https" };
for (String schema : schemas) {
Proxy proxy = createProxy(schema);
if (proxy != null) {
proxySelector.add(proxy, System.getProperty(schema + ".nonProxyHosts"));
}
}
}
private org.eclipse.aether.repository.Proxy createProxy(String schema) {
String proxyHost = System.getProperty(schema + ".proxyHost");
if (proxyHost == null) {
return null;
}
String proxyUser = System.getProperty(schema + ".proxyUser");
String proxyPassword = System.getProperty(schema + ".proxyPassword");
int proxyPort = Integer.parseInt(System.getProperty(schema + ".proxyPort", "8080"));
Authentication authentication = createAuthentication(proxyUser, proxyPassword);
org.eclipse.aether.repository.Proxy proxyObj = new org.eclipse.aether.repository.Proxy(schema, proxyHost, proxyPort,
authentication);
return proxyObj;
}
private Authentication createAuthentication(String proxyUser, String proxyPassword) {
Authentication authentication = null;
if (proxyUser != null) {
authentication = new AuthenticationBuilder().addUsername(proxyUser).addPassword(proxyPassword).build();
}
return authentication;
}
}

View File

@@ -50,7 +50,7 @@
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-cbor</artifactId>
<version>${m2.fasterxml.jackson.version}</version>
<version>2.9.9</version>
</dependency>
<!-- Required by commons-lang-2.6.pom -->
<dependency>

View File

@@ -18,7 +18,4 @@
<module>surefire/pom.xml</module>
<module>zip/pom.xml</module>
</modules>
<properties>
<m2.fasterxml.jackson.version>2.10.1</m2.fasterxml.jackson.version>
</properties>
</project>

View File

@@ -10,7 +10,7 @@
<artifactId>studio-tacokit-dependencies</artifactId>
<packaging>pom</packaging>
<properties>
<tacokit.components.version>1.3.2-SNAPSHOT</tacokit.components.version>
<tacokit.components.version>1.3.0-SNAPSHOT</tacokit.components.version>
</properties>
<repositories>
<repository>

View File

@@ -11,7 +11,7 @@
<packaging>pom</packaging>
<properties>
<tcomp.version>1.1.15</tcomp.version>
<tcomp.version>1.1.10</tcomp.version>
<slf4j.version>1.7.25</slf4j.version>
</properties>

View File

@@ -14,7 +14,6 @@ package org.talend.designer.maven.ui;
import java.util.Dictionary;
import java.util.Hashtable;
import java.util.Set;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -119,17 +118,6 @@ public class MavenUIService implements IMavenUIService {
String studioUserSettingsFile = MavenPlugin.getMavenConfiguration().getUserSettingsFile();
// apply the user settings to MavenResolver
Dictionary<String, String> props = new Hashtable<String, String>();
Set<Object> keySet = System.getProperties().keySet();
if (keySet != null) {
for (Object keyObj : keySet) {
if (keyObj instanceof String) {
String key = keyObj.toString();
if (key.startsWith("org.ops4j.pax.url.mvn.")) {
props.put(key, System.getProperty(key));
}
}
}
}
if (studioUserSettingsFile != null && !"".equals(studioUserSettingsFile)) {
// change back to use the user settings after Pax-url-eather fix the space bug
props.put("org.ops4j.pax.url.mvn.settings", studioUserSettingsFile);

View File

@@ -294,25 +294,20 @@ public class M2eUserSettingForTalendLoginTask extends AbstractLoginTask {
boolean isLocal = isLocalRepository();
IPath localRepoPath = null;
if (!isLocal) {
String customMavenRepoistory = System.getProperty("maven.local.repository");
if (customMavenRepoistory != null) {
localRepoPath = new Path(customMavenRepoistory);
} else {
String mvnHome = System.getenv("M2_HOME"); //$NON-NLS-1$
if (mvnHome == null) {
mvnHome = System.getenv("MAVEN_HOME"); //$NON-NLS-1$
}
if (StringUtils.isNotBlank(mvnHome)) {
File globalSettings = new File(mvnHome).toPath().resolve("conf").resolve("settings.xml").toFile(); //$NON-NLS-1$ //$NON-NLS-2$
if (globalSettings.exists()) {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = builder.parse(globalSettings);
Node node = document.getElementsByTagName("localRepository").item(0); //$NON-NLS-1$
if (node != null) {
String repoPath = node.getTextContent();
if (StringUtils.isNotBlank(repoPath)) {
localRepoPath = new Path(repoPath);
}
String mvnHome = System.getenv("M2_HOME"); //$NON-NLS-1$
if (mvnHome == null) {
mvnHome = System.getenv("MAVEN_HOME"); //$NON-NLS-1$
}
if (StringUtils.isNotBlank(mvnHome)) {
File globalSettings = new File(mvnHome).toPath().resolve("conf").resolve("settings.xml").toFile(); //$NON-NLS-1$ //$NON-NLS-2$
if (globalSettings.exists()) {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = builder.parse(globalSettings);
Node node = document.getElementsByTagName("localRepository").item(0); //$NON-NLS-1$
if (node != null) {
String repoPath = node.getTextContent();
if (StringUtils.isNotBlank(repoPath)) {
localRepoPath = new Path(repoPath);
}
}
}

View File

@@ -22,15 +22,4 @@
<dependencies>
<!-- codes' dependencies -->
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>

View File

@@ -16,7 +16,6 @@ import static org.talend.designer.maven.model.TalendJavaProjectConstants.*;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -75,7 +74,6 @@ import org.talend.core.runtime.services.IFilterService;
import org.talend.core.ui.ITestContainerProviderService;
import org.talend.designer.core.ICamelDesignerCoreService;
import org.talend.designer.maven.launch.MavenPomCommandLauncher;
import org.talend.designer.maven.model.MavenSystemFolders;
import org.talend.designer.maven.model.TalendJavaProjectConstants;
import org.talend.designer.maven.model.TalendMavenConstants;
import org.talend.designer.maven.template.MavenTemplateManager;
@@ -113,6 +111,9 @@ public class AggregatorPomsHelper {
throws Exception {
IFile pomFile = getProjectRootPom();
if (force || !pomFile.exists()) {
if (model == null) {
model = getCodeProjectTemplateModel();
}
PomUtil.savePom(monitor, model, pomFile);
}
}
@@ -123,7 +124,8 @@ public class AggregatorPomsHelper {
if (pomFile != null && pomFile.exists()) {
Model oldModel = MavenPlugin.getMavenModelManager().readMavenModel(pomFile);
List<Profile> profiles = oldModel.getProfiles().stream()
.filter(profile -> matchModuleProfile(profile.getId(), projectTechName)).collect(Collectors.toList());
.filter(profile -> StringUtils.startsWithIgnoreCase(profile.getId(), projectTechName))
.collect(Collectors.toList());
newModel.setModules(oldModel.getModules());
newModel.getProfiles().addAll(profiles);
}
@@ -296,12 +298,11 @@ public class AggregatorPomsHelper {
if (PomIdsHelper.useProfileModule()) {
List<Profile> profiles = collectRefProjectProfiles(references);
Iterator<Profile> iterator = model.getProfiles().listIterator();
while (iterator.hasNext()) {
Profile profile = iterator.next();
if (matchModuleProfile(profile.getId(), projectTechName)) {
iterator.forEachRemaining(profile -> {
if (StringUtils.startsWithIgnoreCase(profile.getId(), projectTechName)) {
iterator.remove();
}
}
});
model.getProfiles().addAll(profiles);
} else {
List<String> refPrjectModules = new ArrayList<>();
@@ -312,12 +313,11 @@ public class AggregatorPomsHelper {
});
List<String> modules = model.getModules();
Iterator<String> iterator = modules.listIterator();
while (iterator.hasNext()) {
String modulePath = iterator.next();
iterator.forEachRemaining(modulePath -> {
if (modulePath.startsWith("../../")) { //$NON-NLS-1$
iterator.remove();
}
}
});
modules.addAll(refPrjectModules);
}
createRootPom(model, true, monitor);
@@ -494,10 +494,6 @@ public class AggregatorPomsHelper {
return null;
}
public IFolder getCodeSrcFolder(ERepositoryObjectType codeType) {
return getCodeFolder(codeType).getFolder(MavenSystemFolders.JAVA.getPath());
}
public IFolder getProcessFolder(ERepositoryObjectType type) {
return getProjectPomsFolder().getFolder(DIR_JOBS).getFolder(type.getFolder());
}
@@ -718,7 +714,7 @@ public class AggregatorPomsHelper {
if (!needUpdateRefProjectModules()) {
Model model = MavenPlugin.getMavenModelManager().readMavenModel(getProjectRootPom());
List<Profile> profiles = model.getProfiles();
return profiles.stream().filter(profile -> matchModuleProfile(profile.getId(), projectTechName))
return profiles.stream().filter(profile -> StringUtils.startsWithIgnoreCase(profile.getId(), projectTechName))
.collect(Collectors.toList());
}
if (references == null) {
@@ -793,13 +789,7 @@ public class AggregatorPomsHelper {
monitor.beginTask("", size); //$NON-NLS-1$
// project pom
monitor.subTask("Synchronize project pom"); //$NON-NLS-1$
Model model = getCodeProjectTemplateModel();
if (PomIdsHelper.useProfileModule()) {
model.getProfiles().addAll(collectRefProjectProfiles(null));
} else {
model.getModules().addAll(collectRefProjectModules(null));
}
createRootPom(model, true, monitor);
createRootPom(null, true, monitor);
installRootPom(true);
monitor.worked(1);
if (monitor.isCanceled()) {
@@ -853,7 +843,13 @@ public class AggregatorPomsHelper {
// sync project pom again with all modules.
monitor.subTask("Synchronize project pom with modules"); //$NON-NLS-1$
collectCodeModules(modules);
model.getModules().addAll(modules);
Model model = getCodeProjectTemplateModel();
if (PomIdsHelper.useProfileModule()) {
model.getProfiles().addAll(collectRefProjectProfiles(null));
} else {
modules.addAll(collectRefProjectModules(null));
}
model.setModules(modules);
createRootPom(model, true, monitor);
installRootPom(true);
monitor.worked(1);
@@ -912,12 +908,6 @@ public class AggregatorPomsHelper {
return MavenTemplateManager.getCodeProjectTemplateModel(parameters);
}
public static boolean matchModuleProfile(String profileId, String projectTechName) {
// FIXME get profile id from extension point.
List<String> otherProfiles = Arrays.asList("docker", "cloud-publisher", "nexus"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return !otherProfiles.contains(profileId) && StringUtils.startsWithIgnoreCase(profileId, projectTechName + "_");
}
private static IRunProcessService getRunProcessService() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IRunProcessService.class)) {
IRunProcessService runProcessService =

View File

@@ -167,7 +167,6 @@ public class ProcessorDependenciesManager {
if (modulesNeeded.isEmpty()) {
modulesNeeded = processor.getNeededModules(TalendProcessOptionConstants.MODULES_WITH_JOBLET);
}
processor.updateModulesAfterSetLog4j(modulesNeeded);
neededLibraries.addAll(modulesNeeded);
// add testcase modules

View File

@@ -69,7 +69,13 @@ public class ProjectPomManager {
if (monitor == null) {
monitor = new NullProgressMonitor();
}
new AggregatorPomsHelper().createRootPom(monitor);
Model projectModel = MODEL_MANAGER.readMavenModel(projectPomFile);
Model templateModel = MavenTemplateManager.getCodeProjectTemplateModel();
for (String module : projectModel.getModules()) {
templateModel.addModule(module);
}
PomUtil.savePom(monitor, templateModel, projectPomFile);
}
/**

View File

@@ -220,29 +220,6 @@ public abstract class AbstractMavenProcessorPom extends CreateMavenBundleTemplat
MavenArtifact mvnArtifact = MavenUrlHelper.parseMvnUrl(module.getMavenUri());
include.setValue(mvnArtifact.getGroupId() + ":" + mvnArtifact.getArtifactId()); //$NON-NLS-1$
}
//removing digital signatures from uber jar
Xpp3Dom filters = new Xpp3Dom("filters"); //$NON-NLS-1$
Xpp3Dom filter = new Xpp3Dom("filter"); //$NON-NLS-1$
Xpp3Dom artifact = new Xpp3Dom("artifact"); //$NON-NLS-1$
artifact.setValue("*:*");
Xpp3Dom filterExcludes = new Xpp3Dom("excludes"); //$NON-NLS-1$
Xpp3Dom excludeSF = new Xpp3Dom("exclude");
excludeSF.setValue("META-INF/*.SF");
Xpp3Dom excludeDSA = new Xpp3Dom("exclude");
excludeDSA.setValue("META-INF/*.DSA");
Xpp3Dom excludeRSA = new Xpp3Dom("exclude");
excludeRSA.setValue("META-INF/*.RSA");
filterExcludes.addChild(excludeSF);
filterExcludes.addChild(excludeDSA);
filterExcludes.addChild(excludeRSA);
filter.addChild(artifact);
filter.addChild(filterExcludes);
filters.addChild(filter);
configuration.addChild(filters);
plugins.add(shade);
}
}

View File

@@ -523,8 +523,8 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
}
}
final Map<String, Object> templateParameters = PomUtil.getTemplateParameters(property);
String batContent = MavenTemplateManager.getProjectSettingValue(IProjectSettingPreferenceConstants.TEMPLATE_BAT,
templateParameters);
String batContent = MavenTemplateManager
.getProjectSettingValue(IProjectSettingPreferenceConstants.TEMPLATE_BAT, templateParameters);
batContent = StringUtils
.replaceEach(batContent,
new String[] { "${talend.job.jvmargs}", "${talend.job.bat.classpath}", "${talend.job.class}",
@@ -532,8 +532,8 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
new String[] { jvmArgsStr.toString().trim(), getWindowsClasspath(), jobClass,
windowsScriptAdditionValue.toString() });
String shContent = MavenTemplateManager.getProjectSettingValue(IProjectSettingPreferenceConstants.TEMPLATE_SH,
templateParameters);
String shContent = MavenTemplateManager
.getProjectSettingValue(IProjectSettingPreferenceConstants.TEMPLATE_SH, templateParameters);
shContent = StringUtils
.replaceEach(shContent,
new String[] { "${talend.job.jvmargs}", "${talend.job.sh.classpath}", "${talend.job.class}",
@@ -541,8 +541,8 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
new String[] { jvmArgsStr.toString().trim(), getUnixClasspath(), jobClass,
unixScriptAdditionValue.toString() });
String psContent = MavenTemplateManager.getProjectSettingValue(IProjectSettingPreferenceConstants.TEMPLATE_PS,
templateParameters);
String psContent = MavenTemplateManager
.getProjectSettingValue(IProjectSettingPreferenceConstants.TEMPLATE_PS, templateParameters);
psContent = StringUtils
.replaceEach(psContent,
new String[] { "${talend.job.jvmargs.ps1}", "${talend.job.ps1.classpath}",
@@ -871,32 +871,29 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
IMaven maven = MavenPlugin.getMaven();
ArtifactRepository repository = maven.getLocalRepository();
Node filesNode = document.getElementsByTagName("files").item(0);
// TESB-27614:NPE while building a route
if (filesNode != null) {
for (Entry<String, Set<Dependency>> entry : duplicateDependencies.entrySet()) {
Set<Dependency> dependencies = entry.getValue();
for (Dependency dependency : dependencies) {
String sourceLocation = maven
.getArtifactPath(repository, dependency.getGroupId(), dependency.getArtifactId(),
dependency.getVersion(), dependency.getType(), dependency.getClassifier());
Path path = new File(repository.getBasedir()).toPath().resolve(sourceLocation);
sourceLocation = path.toString();
String destName = path.getFileName().toString();
Node fileNode = document.createElement("file");
filesNode.appendChild(fileNode);
Node sourcesNode = document.createElement("source");
sourcesNode.setTextContent(sourceLocation);
fileNode.appendChild(sourcesNode);
Node outputDirNode = document.createElement("outputDirectory");
outputDirNode.setTextContent("lib");
fileNode.appendChild(outputDirNode);
Node destNameNode = document.createElement("destName");
destNameNode.setTextContent(destName);
fileNode.appendChild(destNameNode);
}
for (Entry<String, Set<Dependency>> entry : duplicateDependencies.entrySet()) {
Set<Dependency> dependencies = entry.getValue();
for (Dependency dependency : dependencies) {
String sourceLocation = maven
.getArtifactPath(repository, dependency.getGroupId(), dependency.getArtifactId(),
dependency.getVersion(), dependency.getType(), dependency.getClassifier());
Path path = new File(repository.getBasedir()).toPath().resolve(sourceLocation);
sourceLocation = path.toString();
String destName = path.getFileName().toString();
Node fileNode = document.createElement("file");
filesNode.appendChild(fileNode);
Node sourcesNode = document.createElement("source");
sourcesNode.setTextContent(sourceLocation);
fileNode.appendChild(sourcesNode);
Node outputDirNode = document.createElement("outputDirectory");
outputDirNode.setTextContent("lib");
fileNode.appendChild(outputDirNode);
Node destNameNode = document.createElement("destName");
destNameNode.setTextContent(destName);
fileNode.appendChild(destNameNode);
}
}
} catch (CoreException e) {

View File

@@ -123,9 +123,7 @@ public class CreateMavenJobletPom extends AbstractMavenProcessorPom {
@Override
protected void addDependencies(Model model) {
try {
if (ERepositoryObjectType.JOBLET == ERepositoryObjectType.getType(getJobProcessor().getProperty())) {
getProcessorDependenciesManager().updateDependencies(null, model);
}
getProcessorDependenciesManager().updateDependencies(null, model);
addChildrenDependencies(model.getDependencies());
} catch (ProcessorException e) {
ExceptionHandler.process(e);

View File

@@ -152,13 +152,11 @@ public class CreateMavenStandardJobOSGiPom extends CreateMavenJobPom {
model.addProperty("talend.job.finalName", "${talend.job.name}-bundle-${project.version}");
Build build = model.getBuild();
if (GlobalServiceRegister.getDefault().isServiceRegistered(IESBService.class)) {
IESBService service = (IESBService) GlobalServiceRegister.getDefault().getService(IESBService.class);
IESBService service = (IESBService) GlobalServiceRegister.getDefault().getService(IESBService.class);
if (isServiceOperation || service.isRESTService((ProcessItem) getJobProcessor().getProperty().getItem())
|| isRouteOperation(getJobProcessor().getProperty())) {
build.addPlugin(addSkipDockerMavenPlugin());
}
if (isServiceOperation || service.isRESTService((ProcessItem) getJobProcessor().getProperty().getItem())
|| isRouteOperation(getJobProcessor().getProperty())) {
build.addPlugin(addSkipDockerMavenPlugin());
}
if (isServiceOperation) {
@@ -285,25 +283,25 @@ public class CreateMavenStandardJobOSGiPom extends CreateMavenJobPom {
List<IRepositoryViewObject> serviceRepoList = null;
boolean isDataServiceOperation = false;
if (GlobalServiceRegister.getDefault().isServiceRegistered(IESBService.class)) {
IESBService service = (IESBService) GlobalServiceRegister.getDefault().getService(IESBService.class);
try {
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
serviceRepoList = factory.getAll(ERepositoryObjectType.valueOf(ERepositoryObjectType.class, "SERVICES"));
for (IRepositoryViewObject serviceItem : serviceRepoList) {
if (service != null) {
List<String> jobIds = service.getSerivceRelatedJobIds(serviceItem.getProperty().getItem());
if (jobIds.contains(property.getId())) {
isDataServiceOperation = true;
break;
}
IESBService service = (IESBService) GlobalServiceRegister.getDefault().getService(IESBService.class);
try {
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
serviceRepoList = factory.getAll(ERepositoryObjectType.valueOf(ERepositoryObjectType.class, "SERVICES"));
for (IRepositoryViewObject serviceItem : serviceRepoList) {
if (service != null) {
List<String> jobIds = service.getSerivceRelatedJobIds(serviceItem.getProperty().getItem());
if (jobIds.contains(property.getId())) {
isDataServiceOperation = true;
break;
}
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
return isDataServiceOperation;
@@ -313,33 +311,32 @@ public class CreateMavenStandardJobOSGiPom extends CreateMavenJobPom {
List<IRepositoryViewObject> routeRepoList = null;
boolean isRouteOperation = false;
if (GlobalServiceRegister.getDefault().isServiceRegistered(IESBService.class)) {
IESBService service = (IESBService) GlobalServiceRegister.getDefault().getService(IESBService.class);
IESBService service = (IESBService) GlobalServiceRegister.getDefault().getService(IESBService.class);
try {
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
routeRepoList = factory.getAll(ERepositoryObjectType.valueOf(ERepositoryObjectType.class, "ROUTE"));
try {
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
routeRepoList = factory.getAll(ERepositoryObjectType.valueOf(ERepositoryObjectType.class, "ROUTE"));
for (IRepositoryViewObject routeItem : routeRepoList) {
if (service != null) {
for (IRepositoryViewObject routeItem : routeRepoList) {
if (service != null) {
List<Relation> relations = RelationshipItemBuilder.getInstance().getItemsRelatedTo(routeItem.getId(),
routeItem.getVersion(), RelationshipItemBuilder.JOB_RELATION);
for (Relation relation : relations) {
if (relation.getType() == RelationshipItemBuilder.JOB_RELATION) {
if (relation.getId().equals(property.getId())) {
isRouteOperation = true;
}
List<Relation> relations = RelationshipItemBuilder.getInstance().getItemsRelatedTo(routeItem.getId(),
routeItem.getVersion(), RelationshipItemBuilder.JOB_RELATION);
for (Relation relation : relations) {
if (relation.getType() == RelationshipItemBuilder.JOB_RELATION) {
if (relation.getId().equals(property.getId())) {
isRouteOperation = true;
}
}
}
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
return isRouteOperation;
}
}

View File

@@ -1,4 +1,5 @@
output.. = bin/
bin.includes = META-INF/,\
.,\
lib/,\
plugin.xml

Some files were not shown because too many files have changed in this diff Show More