Compare commits

..

21 Commits

Author SHA1 Message Date
bhe-talendbj
3275b29f35 fix(TUP-29165): Add cache for all of current project nodes (#3827)
* fix(TUP-29165): Add cache for all of current project nodes

* fix(TUP-29165): Add cache for loaded nodes

* fix(TUP-29165): Not cache emfproject

* fix(TUP-29165): add projectlabel to key

* fix(TUP-29165): add object as key
2020-11-30 16:44:52 +08:00
kjwang
9746ff6a27 Kjwang/feat tup 28891 temp folder (#3799) (#3884)
* TUP-28891:Shared Studio: Check which functions will write data into
folder "temp" of Studio installation folder from code
https://jira.talendforge.org/browse/TUP-28891
2020-11-27 16:47:50 +08:00
vdrokov
cdc7c347f3 TESB-31128: Talend 731 Regeression : VIEW with quotes give compilation error for Camel components (#3879) 2020-11-27 10:23:52 +02:00
hzhao-talendbj
e290c02662 chore(TUP-29372): try remove ant re-export and and back the export package (#3881)
* try remove ant re-export and and back the export package

* try to ignore the optional dependencies

* try remove ant require bundle

* add include groupid

* try add require for org.talend.common.ui.runtime
2020-11-27 10:05:06 +08:00
bkatiukhov
5fd5de914f TESB-30620 Fix custom component in route subjob (#3877)
Co-authored-by: bohdan.katiukhov <bohdan.katiukhov@KBP1-LHP-A00322.synapse.com>
2020-11-26 16:30:26 +02:00
apoltavtsev
a272a2a124 fix(TESB-31177): Compile error if configure 'Use Custom GroupId' for parent job 2020-11-26 09:11:41 +01:00
hzhao-talendbj
8c93621b9c chore(TUP-29399): try excluson and add dependency (#3873)
* try excluson and add dependency

* change
2020-11-25 11:35:21 +08:00
hzhao-talendbj
cf0b077343 chore(TUP-29372): remove ant (#3857)
* remove ant

* add org.apache.ant require

* remove ant required bundle and set to apache and re-export
2020-11-24 15:32:01 +08:00
Chao MENG
796e0983a2 fix(TUP-28314): Talend Studio - Git Pull and Merge not showing branches (#3835)
https://jira.talendforge.org/browse/TUP-28314
2020-11-24 09:49:56 +08:00
hzhao-talendbj
6bd8346ac8 remove xmlsec-2.1.0 (#3869) 2020-11-23 18:42:41 +08:00
hzhao-talendbj
8440e7ac6d chore(TUP-29379): remove cve jars (#3861)
* remove cve jars

* change to artifactItem to avoid extra jars
2020-11-23 18:39:29 +08:00
wang wei
caf54e3d2b fix(TDI-44910): add memsql mapping (#3757) (#3867) 2020-11-23 17:40:17 +08:00
hzhao-talendbj
6fc753cc5e change message key (#3854) 2020-11-23 17:01:52 +08:00
vdrokov
615da11dc4 TESB-30468: Upgrade to Apache Karaf 4.2.10 (#3797)
Co-authored-by: SunChaoqun <csun@talend.com>
2020-11-23 16:30:40 +08:00
hzhao-talendbj
6fa44bc4f9 fix(TUP-29149): add override method to remove db name (#3837)
* add override method to remove db name

* fix junit failed
2020-11-23 12:07:54 +08:00
Zhiwei Xue
64497228d2 fix(TUP-29360): Missing log4j2 jar on user routines (#3858) (#3868)
* fix(TUP-29360): Missing log4j2 jar on user routines

* fix(TUP-29360): fix switch log4j level problem
2020-11-20 17:32:10 +08:00
cbadillo1603
4a07807638 fix(TBD-11038): The distribution AMAZON_EMR with the version APACHE_2_4_0_EMR doesn't exist (#3694) (#3859)
* fix(TBD-11038): The distribution AMAZON_EMR with the version APACHE_2_4_0_EMR doesn't exist

* fix(TBD-11038): The distribution AMAZON_EMR with the version APACHE_2_4_0_EMR doesn't exist

* fix(TBD-11038): The distribution AMAZON_EMR with the version APACHE_2_4_0_EMR doesn't exist
2020-11-20 09:33:53 +01:00
Chao MENG
31de5521c1 chore(TUP-28935): fix null project in RepositoryContext (#3866)
* chore: fix null project in RepositoryContext

* chore: fix null project in RepositoryContext
2020-11-20 14:03:16 +08:00
apoltavtsev
3cc844081c fix(TESB-29553, TESB-31088) Could not generate ctalenjob microservice jar 2020-11-19 09:32:06 +01:00
apoltavtsev
03314aeee8 feat(TESB-29949) Pass the data source to a job using a context variable 2020-11-19 09:31:33 +01:00
bhe-talendbj
8117cfc1bb fix(TUP-29227): set default prompt value if it is null (#3856) 2020-11-19 15:45:16 +08:00
49 changed files with 690 additions and 163 deletions

View File

@@ -10,7 +10,8 @@ Require-Bundle: org.eclipse.core.runtime,
org.apache.log4j,
org.talend.libraries.apache,
org.talend.commons.runtime,
org.talend.libraries.ui
org.talend.libraries.ui,
org.apache.ant
Export-Package:
org.talend.commons.ui.runtime,
org.talend.commons.ui.runtime.exception,

View File

@@ -108,5 +108,9 @@ public interface FileConstants {
String BLUEPRINT_FOLDER_NAME = "OSGI-INF/blueprint"; //$NON-NLS-1$
String SPRING_FOLDER_NAME = "META-INF/spring"; //$NON-NLS-1$
String TALEND_FOLDER_NAME = "TALEND-INF"; //$NON-NLS-1$
String MAVEN_FOLDER_NAME = "MAVEN-INF";
}

View File

@@ -135,6 +135,7 @@ import org.talend.core.runtime.repository.item.ItemProductKeys;
import org.talend.core.runtime.services.IGenericWizardService;
import org.talend.core.runtime.services.IMavenUIService;
import org.talend.core.runtime.util.ItemDateParser;
import org.talend.core.runtime.util.SharedStudioUtils;
import org.talend.core.service.ICoreUIService;
import org.talend.cwm.helper.SubItemHelper;
import org.talend.cwm.helper.TableHelper;
@@ -1798,9 +1799,12 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
* @throws PersistenceException
*/
private void emptyTempFolder(Project project) throws PersistenceException {
String str = (System.getProperty("eclipse.home.location") + "temp").substring(5);
FilesUtils.deleteFolder(new File(str), false);
try {
String str = SharedStudioUtils.getTempFolderPath().toPortableString();
FilesUtils.deleteFolder(new File(str), false);
}catch (Exception ex) {
ExceptionHandler.process(ex);
}
long start = System.currentTimeMillis();
IProject fsProject = ResourceUtils.getProject(project);
IFolder folder = ResourceUtils.getFolder(fsProject, RepositoryConstants.TEMP_DIRECTORY, false);

View File

@@ -123,7 +123,8 @@ Require-Bundle: org.eclipse.jdt.core,
org.apache.servicemix.bundles.avro,
jackson-core-asl,
org.talend.libraries.jackson,
org.eclipse.m2e.core
org.eclipse.m2e.core,
org.talend.libraries.apache.common
Bundle-Activator: org.talend.core.runtime.CoreRuntimePlugin
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .,

View File

@@ -0,0 +1,288 @@
<?xml version="1.0"?>
<mapping>
<dbms product="SINGLESTORE" id="singlestore_id" label="Mapping SingleStore"
default="true">
<dbTypes>
<dbType type="BOOL" ignoreLen="true" ignorePre="true" />
<dbType type="BOOLEAN" ignoreLen="true" ignorePre="true" />
<dbType type="BIGINT" ignorePre="true"/>
<dbType type="BIGINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="BINARY" ignorePre="true"/>
<dbType type="BIT" ignorePre="true" />
<dbType type="BLOB" ignoreLen="true" ignorePre="true" />
<dbType type="CHAR" defaultLength="200" ignorePre="true"/>
<dbType type="DATE" ignoreLen="true" ignorePre="true" />
<dbType type="DATETIME" ignoreLen="true" ignorePre="false" />
<dbType type="DECIMAL" defaultLength="20" defaultPrecision="10" preBeforelen="false"/>
<dbType type="DOUBLE" defaultLength="20" defaultPrecision="10"/>
<dbType type="DOUBLE UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="ENUM" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT" defaultPrecision="2"/>
<dbType type="FLOAT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="GEOGRAPHY" ignoreLen="true" ignorePre="true" />
<dbType type="GEOGRAPHYPOINT" ignoreLen="true" ignorePre="true" />
<dbType type="INT" ignorePre="true" />
<dbType type="INT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="INTEGER" ignorePre="true" />
<dbType type="INTEGER UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="LONGTEXT" ignoreLen="true" ignorePre="true" />
<dbType type="LONGBLOB" ignoreLen="true" ignorePre="true"/>
<dbType type="MEDIUMBLOB" ignoreLen="true" ignorePre="true" />
<dbType type="MEDIUMINT" ignorePre="true" />
<dbType type="MEDIUMINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="MEDIUMTEXT" ignoreLen="true" ignorePre="true" />
<dbType type="SMALLINT" ignorePre="true" />
<dbType type="SMALLINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="SET" ignoreLen="true" ignorePre="true" />
<dbType type="TEXT" ignoreLen="true" ignorePre="true" />
<dbType type="TIME" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMP" ignoreLen="true" ignorePre="false" />
<dbType type="TINYBLOB" ignoreLen="true" ignorePre="true" />
<dbType type="TINYINT" ignorePre="true" />
<dbType type="TINYINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="TINYTEXT" ignoreLen="true" ignorePre="true" />
<dbType type="VARBINARY" ignorePre="true" />
<dbType type="VARCHAR" default="true" defaultLength="100" ignorePre="true"/>
<dbType type="YEAR" ignorePre="true"/>
<dbType type="JSON" ignoreLen="true" ignorePre="true"/>
</dbTypes>
<language name="java">
<talendToDbTypes><!-- Adviced mappings -->
<talendType type="id_List"/>
<talendType type="id_Boolean">
<dbType type="BOOL" default="true" />
</talendType>
<talendType type="id_Byte">
<dbType type="TINYINT" default="true" />
<dbType type="BIGINT" />
<dbType type="INT" />
<dbType type="MEDIUMINT" />
<dbType type="SMALLINT" />
</talendType>
<talendType type="id_byte[]">
<dbType type="VARBINARY" default="true" />
<dbType type="BINARY" />
<dbType type="BIT" />
<dbType type="BLOB" />
<dbType type="LONGBLOB" />
<dbType type="MEDIUMBLOB" />
<dbType type="TINYBLOB" />
</talendType>
<talendType type="id_Character">
<dbType type="CHAR" default="true" />
<dbType type="VARCHAR"/>
</talendType>
<talendType type="id_Date">
<dbType type="DATE" />
<dbType type="DATETIME" default="true" />
<dbType type="TIME" />
<dbType type="YEAR" />
<dbType type="TIMESTAMP" />
</talendType>
<talendType type="id_BigDecimal">
<dbType type="DECIMAL" default="true" />
<dbType type="FLOAT"/>
<dbType type="DOUBLE" />
</talendType>
<talendType type="id_Double">
<dbType type="DOUBLE" default="true" />
<dbType type="FLOAT"/>
<dbType type="DECIMAL" />
</talendType>
<talendType type="id_Float">
<dbType type="FLOAT" default="true" />
<dbType type="DOUBLE"/>
<dbType type="DECIMAL" />
</talendType>
<talendType type="id_Integer">
<dbType type="INT" default="true" />
<dbType type="BIGINT" />
</talendType>
<talendType type="id_Long">
<dbType type="BIGINT" default="true" />
</talendType>
<talendType type="id_Object">
<dbType type="BLOB" default="true"/>
<dbType type="ENUM" />
<dbType type="GEOGRAPHY" />
<dbType type="GEOGRAPHYPOINT" />
<dbType type="MEDIUMINT" />
<dbType type="LONGBLOB" />
<dbType type="MEDIUMBLOB" />
<dbType type="SET" />
<dbType type="TINYBLOB" />
</talendType>
<talendType type="id_Short">
<dbType type="SMALLINT" default="true" />
<dbType type="INT" />
<dbType type="BIGINT"/>
<dbType type="MEDIUMINT" />
</talendType>
<talendType type="id_String">
<dbType type="VARCHAR" default="true" />
<dbType type="LONGTEXT"/>
<dbType type="MEDIUMTEXT" />
<dbType type="TEXT" />
<dbType type="TINYTEXT" />
<dbType type="CHAR" />
<dbType type="JSON" />
</talendType>
</talendToDbTypes>
<dbToTalendTypes>
<dbType type="BOOL">
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BOOLEAN">
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BIGINT">
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="BINARY">
<talendType type="id_byte[]" />
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BIT">
<talendType type="id_byte[]" />
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BLOB">
<talendType type="id_byte[]" default="true" />
<talendType type="id_Object" />
</dbType>
<dbType type="CHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="DATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="DATETIME">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="DECIMAL">
<talendType type="id_Float"/>
<talendType type="id_Double"/>
<talendType type="id_BigDecimal" default="true"/>
</dbType>
<dbType type="DOUBLE">
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="ENUM">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="FLOAT">
<talendType type="id_Float" default="true" />
<talendType type="id_Double"/>
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="GEOGRAPHY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="GEOGRAPHYPOINT">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="JSON">
<talendType type="id_String" default="true" />
<talendType type="id_Object" />
</dbType>
<dbType type="INT">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
</dbType>
<dbType type="INTEGER">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
</dbType>
<dbType type="LONGTEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="LONGBLOB">
<talendType type="id_byte[]" default="true" />
<talendType type="id_Object" />
</dbType>
<dbType type="MEDIUMBLOB">
<talendType type="id_byte[]" default="true" />
<talendType type="id_Object" />
</dbType>
<dbType type="MEDIUMINT">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
</dbType>
<dbType type="MEDIUMTEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="SMALLINT">
<talendType type="id_Short" default="true" />
<talendType type="id_Long"/>
<talendType type="id_Integer"/>
</dbType>
<dbType type="SET">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="TEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="TIME">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIMESTAMP">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TINYBLOB">
<talendType type="id_byte[]" default="true" />
<talendType type="id_Object" />
</dbType>
<dbType type="TINYINT">
<talendType type="id_Byte" default="true" />
<talendType type="id_Integer"/>
<talendType type="id_Long"/>
<talendType type="id_Short"/>
</dbType>
<dbType type="TINYTEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="VARBINARY">
<talendType type="id_byte[]" default="true" />
</dbType>
<dbType type="VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="YEAR">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="BIGINT UNSIGNED" >
</dbType>
<dbType type="DOUBLE UNSIGNED" >
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="FLOAT UNSIGNED" >
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="INT UNSIGNED" >
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="INTEGER UNSIGNED" >
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="MEDIUMINT UNSIGNED" >
<talendType type="id_Integer" default="true" />
<talendType type="id_Long" />
</dbType>
<dbType type="SMALLINT UNSIGNED" >
<talendType type="id_Integer" default="true" />
<talendType type="id_Long" />
</dbType>
<dbType type="TINYINT UNSIGNED" >
<talendType type="id_Short" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Long" />
</dbType>
</dbToTalendTypes>
</language>
</dbms>
</mapping>

View File

@@ -126,6 +126,8 @@ public class PluginChecker {
public static final String BDEE_PLUGIN_ID = "org.talend.designer.bigdata"; //$NON-NLS-1$
public static final String BD_ROUTINE_PLUGIN_ID = "org.talend.designer.routines.bigdata"; //$NON-NLS-1$
public static final String DOCKER_PLUGIN_ID = "org.talend.designer.docker"; //$NON-NLS-1$
public static final String HELP_DI_EE_PLUGIN_ID = "org.talend.help.dataprep"; //$NON-NLS-1$
@@ -366,6 +368,10 @@ public class PluginChecker {
return isPluginLoaded(ESBSE_PLUGIN_ID);
}
public static boolean isBigdataRoutineLoaded() {
return isPluginLoaded(BD_ROUTINE_PLUGIN_ID);
}
public static String getBundlePath(String bundleName) {
String bundlePath = ""; //$NON-NLS-1$
Bundle refBundle = Platform.getBundle(bundleName);

View File

@@ -81,6 +81,11 @@ public final class ComponentUtilities {
public static void setNodeValue(NodeType node, String name, String value) {
ElementParameterType property = getNodeProperty(node, name);
if (property == null) {
throw new IllegalArgumentException( "The component node "+node.getComponentName()+" doesn't have the property "+name );
}
property.setValue(value);
}

View File

@@ -320,7 +320,8 @@ public class JobContextManager implements IContextManager {
contextParam = new JobContextParameter();
contextParam.setContext(context);
contextParam.setName(contextParamType.getName());
contextParam.setPrompt(contextParamType.getPrompt());
contextParam.setPrompt(
contextParamType.getPrompt() == null ? (contextParamType.getName() + "?") : contextParamType.getPrompt());
contextParam.setInternalId(contextParamType.getInternalId());
originalParamerters.add(contextParam.getName());
boolean exists = true;

View File

@@ -60,6 +60,7 @@ import org.talend.designer.core.model.utils.emf.talendfile.RoutinesParameterType
import org.talend.designer.runprocess.ItemCacheManager;
import org.talend.repository.ProjectManager;
import org.talend.repository.model.IProxyRepositoryFactory;
import org.apache.commons.text.StringEscapeUtils;
/**
* DOC bqian class global comment. Detailled comment
@@ -1004,8 +1005,6 @@ public final class ProcessUtils {
return false;
}
public static boolean isChildRouteProcess(IProcess process) {
List n = process.getNodesOfType("tRouteInput");
if (n!=null && n.size()!=0) {
@@ -1013,4 +1012,8 @@ public final class ProcessUtils {
}
return false;
}
public static String escapeJava(String input) {
return StringEscapeUtils.escapeJava(input);
}
}

View File

@@ -108,4 +108,13 @@ public class SharedStudioUtils {
File extchangeFolder = new File (componentFolder, path.toOSString());
return extchangeFolder;
}
public static IPath getTempFolderPath() {
if (SharedStudioUtils.isSharedStudioMode()) {
Path wsPath = new Path(Platform.getInstanceLocation().getURL().getPath());
return wsPath.append("temp");
} else {
return new Path(System.getProperty("user.dir")).append("temp");
}
}
}

View File

@@ -20,6 +20,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.WeakHashMap;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.resources.IFile;
@@ -94,6 +95,8 @@ public final class ProjectManager {
private Set<Project> tempProjects;
private WeakHashMap<IRepositoryViewObject, Boolean> cachedObjects = new WeakHashMap<IRepositoryViewObject, Boolean>();
private ProjectManager() {
beforeLogonRecords = new HashSet<String>();
logonRecords = new HashSet<String>();
@@ -451,9 +454,15 @@ public final class ProjectManager {
if (object == null) {
return true;
}
if (cachedObjects.containsKey(object)) {
return cachedObjects.get(object);
}
org.talend.core.model.properties.Project emfProject = getProject(object.getProperty().getItem());
org.talend.core.model.properties.Project curProject = curP.getEmfProject();
return emfProject.equals(curProject);
boolean ret = emfProject.equals(curProject);
cachedObjects.put(object, ret);
return ret;
} else {
IProjectRepositoryNode root = node.getRoot();

View File

@@ -24,6 +24,7 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorPart;
import org.talend.core.IService;
import org.talend.core.model.components.IComponentsFactory;
import org.talend.core.model.general.ModuleNeeded;
import org.talend.core.model.general.Project;
import org.talend.core.model.metadata.builder.connection.DatabaseConnection;
import org.talend.core.model.process.IContextManager;
@@ -144,4 +145,8 @@ public interface IRepositoryService extends IService {
public void setShouldCheckRepoViewCommonNavigatorDirty(IRepositoryView repView, boolean shouldFlag);
boolean isProjectLevelLog4j2();
List<ModuleNeeded> getLog4j2Modules();
}

View File

@@ -562,10 +562,10 @@ ContextBuiltinToRepositoryCommand.addRelation=A context variable by the same nam
ContextModifyCommand.label=Modify Context
MetadataExportXmlCommand.title=Warning
MetadataExportXmlCommand.message=Warning: this file already exist, do you want to override it?
RoutinesFunctionProposal.Description=Description: {0}\n
RoutinesFunctionProposal.CreatedBy=Created By: {1}\n\n
RoutinesFunctionProposal.ReturnType=Return Type: {2}\n
RoutinesFunctionProposal.VariableName=Example: {3}\n\n
RoutinesFunctionProposal.Description.v1=Description: {0}\n
RoutinesFunctionProposal.CreatedBy.v1=Created By: {1}\n\n
RoutinesFunctionProposal.ReturnType.v1=Return Type: {2}\n
RoutinesFunctionProposal.VariableName.v1=Example: {3}\n\n
RoutinesFunctionProposal.User=User
RoutinesFunctionProposal.System=System
NodeReturnProposal.Description=Description: {0} : {1}\n\n
@@ -574,10 +574,10 @@ NodeReturnProposal.Type=Type: {3}\n
NodeReturnProposal.Availability=Availability: {4}\n
NodeReturnProposal.VariableName=Variable Name: {5}\n
ContextParameterProposal.NoCommentAvaiable=No Comment Available
ContextParameterProposal.Description=Description: {0}
ContextParameterProposal.ContextVariable=Context Variable: {1}
ContextParameterProposal.Type=Type: {2}
ContextParameterProposal.VariableName=Variable Name: {3}
ContextParameterProposal.Description.v1=Description: {0}
ContextParameterProposal.ContextVariable.v1=Context Variable: {1}
ContextParameterProposal.Type.v1=Type: {2}
ContextParameterProposal.VariableName.v1=Variable Name: {3}
ArchiveFileExportOperationFullPath.cannotCreateDir=unable to create directory '{0}'
WorkingSetConfigurationDialog_new_label=&New...
WorkingSetConfigurationDialog_edit_label=&Edit...

View File

@@ -80,7 +80,7 @@ public class ContextParameterProposal implements IContentProposal {
MessageFormat format = new MessageFormat(getDescriptionMessagePattern());
if (contextParameter.getContext() != null) {
Object[] replaceArgs = new Object[] { desc, contextParameter.getContext().getName(), contextParameter.getType(),
contextParameter.getName() };
contextParameter.getValue() };
return format.format(replaceArgs);
}
return desc;
@@ -88,10 +88,10 @@ public class ContextParameterProposal implements IContentProposal {
}
private String getDescriptionMessagePattern() {
String message = Messages.getString("ContextParameterProposal.Description") + "\n\n"; //$NON-NLS-1$ //$NON-NLS-2$
message += Messages.getString("ContextParameterProposal.ContextVariable") + "\n\n"; //$NON-NLS-1$ //$NON-NLS-2$
message += Messages.getString("ContextParameterProposal.Type") + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
message += Messages.getString("ContextParameterProposal.VariableName") + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
String message = Messages.getString("ContextParameterProposal.Description.v1") + "\n\n"; //$NON-NLS-1$ //$NON-NLS-2$
message += Messages.getString("ContextParameterProposal.ContextVariable.v1") + "\n\n"; //$NON-NLS-1$ //$NON-NLS-2$
message += Messages.getString("ContextParameterProposal.Type.v1") + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
message += Messages.getString("ContextParameterProposal.VariableName.v1") + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
return message;
}

View File

@@ -74,10 +74,10 @@ public class RoutinesFunctionProposal implements IContentProposal {
*/
@Override
public String getDescription() {
String message = Messages.getString("RoutinesFunctionProposal.Description");
message += Messages.getString("RoutinesFunctionProposal.CreatedBy");
message += Messages.getString("RoutinesFunctionProposal.ReturnType");
message += Messages.getString("RoutinesFunctionProposal.VariableName");
String message = Messages.getString("RoutinesFunctionProposal.Description.v1");
message += Messages.getString("RoutinesFunctionProposal.CreatedBy.v1");
message += Messages.getString("RoutinesFunctionProposal.ReturnType.v1");
message += Messages.getString("RoutinesFunctionProposal.VariableName.v1");
MessageFormat format = new MessageFormat(message);
Object[] args = new Object[] { function.getDescription(),

View File

@@ -12,6 +12,7 @@
// ============================================================================
package org.talend.core;
import org.apache.logging.log4j.message.ThreadDumpMessage;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.preference.IPreferenceStore;
@@ -208,4 +209,8 @@ public class CorePlugin extends Plugin {
return (ICreateXtextProcessService) GlobalServiceRegister.getDefault().getService(ICreateXtextProcessService.class);
}
public static String threadDump(String message) {
return new ThreadDumpMessage(message).toString();
}
}

View File

@@ -13,6 +13,7 @@
package org.talend.core.model.metadata.query.generator;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.model.metadata.QueryUtil;
import org.talend.core.model.metadata.query.AbstractQueryGenerator;
import org.talend.core.model.process.IElement;
@@ -38,4 +39,23 @@ public class PostgreQueryGenerator extends AbstractQueryGenerator {
}
return super.getSchema(elem);
}
@Override
protected String getTableNameWithDBAndSchema(final String dbName, final String schema, String tableName) {
if (tableName == null || EMPTY.equals(tableName.trim())) {
tableName = QueryUtil.DEFAULT_TABLE_NAME;
}
final StringBuffer tableNameWithDBAndSchema = new StringBuffer();
// postgres do not support db.schema.table_name, so only need schema.table_name
if (schema != null && !EMPTY.equals(schema)) {
tableNameWithDBAndSchema.append(checkContextAndAddQuote(schema));
tableNameWithDBAndSchema.append(getSQLFieldConnector());
}
//
tableNameWithDBAndSchema.append(checkContextAndAddQuote(tableName));
return tableNameWithDBAndSchema.toString();
}
}

View File

@@ -16,13 +16,13 @@ import java.io.File;
import java.util.Locale;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.core.runtime.preferences.DefaultScope;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.talend.core.CorePlugin;
import org.talend.core.prefs.GeneralParametersProvider.GeneralParameters;
import org.talend.core.runtime.util.SharedStudioUtils;
/**
* Intializer of core preferences. <br/>
@@ -54,7 +54,7 @@ public class CorePreferenceInitializer extends AbstractPreferenceInitializer {
IEclipsePreferences node = new DefaultScope().getNode(CorePlugin.getDefault().getBundle().getSymbolicName());
// Building temporary files directory path
IPath tempPath = new Path(System.getProperty("user.dir")).append("temp"); // NON-NLS-1$// NON-NLS-2$ //$NON-NLS-1$ //$NON-NLS-2$
IPath tempPath = SharedStudioUtils.getTempFolderPath();
File tempFile = tempPath.toFile();
if (!tempFile.exists()) {
tempFile.mkdirs();

View File

@@ -54,6 +54,17 @@
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http</artifactId>
<version>${wagon.version}</version>
<exclusions>
<exclusion>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>

View File

@@ -78,13 +78,13 @@
</dependency>
<dependency>
<groupId>org.talend.studio</groupId>
<artifactId>karaf-maven-plugin-4-2-4-tos</artifactId>
<artifactId>karaf-maven-plugin-4-2-10-tos</artifactId>
<version>${project.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.talend.studio</groupId>
<artifactId>karaf-maven-plugin-4-2-4-tos</artifactId>
<artifactId>karaf-maven-plugin-4-2-10-tos</artifactId>
<version>${project.version}</version>
<type>pom</type>
</dependency>

View File

@@ -1,65 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>studio-maven-repository-tos</artifactId>
<version>7.4.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>karaf-maven-plugin-4-2-4-tos</artifactId>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>4.2.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-dependency-tree</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>5.0.2.RELEASE</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.tukaani</groupId>
<artifactId>xz</artifactId>
<version>1.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<addParentPoms>true</addParentPoms>
<copyPom>true</copyPom>
<includeScope>compile</includeScope>
<outputDirectory>${basedir}/../../../tmp/repository</outputDirectory>
<useRepositoryLayout>true</useRepositoryLayout>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>studio-maven-repository-tos</artifactId>
<version>7.4.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>karaf-maven-plugin-4-2-10-tos</artifactId>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>4.2.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-dependency-tree</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>5.0.2.RELEASE</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.tukaani</groupId>
<artifactId>xz</artifactId>
<version>1.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<addParentPoms>true</addParentPoms>
<copyPom>true</copyPom>
<includeScope>compile</includeScope>
<outputDirectory>${basedir}/../../../tmp/repository</outputDirectory>
<useRepositoryLayout>true</useRepositoryLayout>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -12,7 +12,7 @@
<modules>
<module>plugins/maven-bundle-plugin-2-3-7</module>
<module>plugins/maven-bundle-plugin-2-5-3</module>
<module>plugins/karaf-maven-plugin-4-2-4</module>
<module>plugins/karaf-maven-plugin-4-2-10</module>
<module>plugins/maven-install-plugin-2-5-1</module>
<module>plugins/talend-compiler-plugin</module>
<module>plugins/talend-ci-osgihelper-maven-plugin</module>

View File

@@ -168,6 +168,10 @@ public class AggregatorPomsHelper {
}
public void updateCodeProjects(IProgressMonitor monitor, boolean forceBuild) {
updateCodeProjects(monitor, forceBuild, false);
}
public void updateCodeProjects(IProgressMonitor monitor, boolean forceBuild, boolean ignoreM2Cache) {
RepositoryWorkUnit workUnit = new RepositoryWorkUnit<Object>("update code project") { //$NON-NLS-1$
@Override
@@ -175,8 +179,11 @@ public class AggregatorPomsHelper {
Project currentProject = ProjectManager.getInstance().getCurrentProject();
for (ERepositoryObjectType codeType : ERepositoryObjectType.getAllTypesOfCodes()) {
try {
if (CodeM2CacheManager.needUpdateCodeProject(currentProject, codeType)) {
ITalendProcessJavaProject codeProject = getCodesProject(codeType);
ITalendProcessJavaProject codeProject = getCodesProject(codeType);
if (ERepositoryObjectType.ROUTINES == codeType) {
PomUtil.checkExistingLog4j2Dependencies4RoutinePom(projectTechName, codeProject.getProjectPom());
}
if (ignoreM2Cache || CodeM2CacheManager.needUpdateCodeProject(currentProject, codeType)) {
updateCodeProjectPom(monitor, codeType, codeProject.getProjectPom());
buildAndInstallCodesProject(monitor, codeType, true, forceBuild);
CodeM2CacheManager.updateCodeProjectCache(currentProject, codeType);
@@ -860,7 +867,7 @@ public class AggregatorPomsHelper {
}
// codes pom
monitor.subTask("Synchronize code poms"); //$NON-NLS-1$
updateCodeProjects(monitor, true);
updateCodeProjects(monitor, true, true);
monitor.worked(1);
if (monitor.isCanceled()) {
return;

View File

@@ -101,7 +101,7 @@ public class CodeM2CacheManager {
}
}
private static File getCacheFile(String projectTechName, ERepositoryObjectType codeType) {
public static File getCacheFile(String projectTechName, ERepositoryObjectType codeType) {
String cacheFileName = PomIdsHelper.getProjectGroupId(projectTechName) + "." + codeType.name().toLowerCase() + "-" //$NON-NLS-1$ //$NON-NLS-2$
+ PomIdsHelper.getCodesVersion(projectTechName) + ".cache"; // $NON-NLS-1$
return new File(MavenPlugin.getMaven().getLocalRepositoryPath(), cacheFileName);

View File

@@ -136,16 +136,15 @@ public abstract class AbstractMavenProcessorPom extends CreateMavenBundleTemplat
Map<ETalendMavenVariables, String> variablesValuesMap = new HashMap<ETalendMavenVariables, String>();
// no need check property is null or not, because if null, will get default ids.
if (JobUtils.isJob(property) && ProcessUtils.isChildRouteProcess(process)) {
JobInfo lastMainJob = LastGenerationInfo.getInstance().getLastMainJob();
JobInfo lastMainJob = LastGenerationInfo.getInstance().getLastMainJob();
if (JobUtils.isJob(property) && ProcessUtils.isChildRouteProcess(process) && lastMainJob != null) {
variablesValuesMap.put(ETalendMavenVariables.JobGroupId, PomIdsHelper.getJobGroupId(lastMainJob.getProcessor().getProperty()));
variablesValuesMap.put(ETalendMavenVariables.JobVersion, PomIdsHelper.getJobVersion(lastMainJob.getProcessor().getProperty()));
}else {
variablesValuesMap.put(ETalendMavenVariables.JobGroupId, PomIdsHelper.getJobGroupId(property));
variablesValuesMap.put(ETalendMavenVariables.JobVersion, PomIdsHelper.getJobVersion(property));
}
variablesValuesMap.put(ETalendMavenVariables.JobArtifactId, PomIdsHelper.getJobArtifactId(property));
variablesValuesMap.put(ETalendMavenVariables.JobArtifactId, PomIdsHelper.getJobArtifactId(property));
variablesValuesMap.put(ETalendMavenVariables.TalendJobVersion, property.getVersion());
final String jobName = JavaResourcesHelper.escapeFileName(process.getName());
variablesValuesMap.put(ETalendMavenVariables.JobName, jobName);
@@ -319,10 +318,18 @@ public abstract class AbstractMavenProcessorPom extends CreateMavenBundleTemplat
String type = null;
if (!jobInfo.isJoblet()) {
property = jobInfo.getProcessItem().getProperty();
groupId = PomIdsHelper.getJobGroupId(property);
artifactId = PomIdsHelper.getJobArtifactId(jobInfo);
JobInfo lastMainJob = LastGenerationInfo.getInstance().getLastMainJob();
if (lastMainJob != null && JobUtils.isJob(jobInfo) && JobUtils.isRoute(getJobProcessor().getProperty())) {
groupId = PomIdsHelper.getJobGroupId(lastMainJob.getProcessor().getProperty());
version = PomIdsHelper.getJobVersion(lastMainJob.getProcessor().getProperty());
} else {
groupId = PomIdsHelper.getJobGroupId(property);
version = PomIdsHelper.getJobVersion(property);
}
version = PomIdsHelper.getJobVersion(property);
// try to get the pom version of children job and load from the pom file.
String childPomFileName = PomUtil.getPomFileName(jobInfo.getJobName(), jobInfo.getJobVersion());
IProject codeProject = getJobProcessor().getCodeProject();

View File

@@ -12,16 +12,18 @@
// ============================================================================
package org.talend.designer.maven.tools.creator;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.apache.maven.model.Model;
import org.eclipse.core.resources.IFile;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.PluginChecker;
import org.talend.core.model.general.ILibrariesService;
import org.talend.core.model.general.ModuleNeeded;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.designer.maven.template.MavenTemplateManager;
import org.talend.repository.model.IRepositoryService;
/**
* DOC ggu class global comment. Detailled comment
@@ -46,13 +48,18 @@ public class CreateMavenRoutinePom extends AbstractMavenCodesTemplatePom {
// Set<ModuleNeeded> runningModules = routiensService.getRunningModules();
// return runningModules;
// }
Set<ModuleNeeded> runningModules = new HashSet<>();
if (GlobalServiceRegister.getDefault().isServiceRegistered(ILibrariesService.class)) {
ILibrariesService libService = (ILibrariesService) GlobalServiceRegister.getDefault().getService(
ILibrariesService.class);
Set<ModuleNeeded> runningModules = libService.getCodesModuleNeededs(ERepositoryObjectType.ROUTINES);
return runningModules;
runningModules.addAll(libService.getCodesModuleNeededs(ERepositoryObjectType.ROUTINES));
}
return Collections.emptySet();
if (GlobalServiceRegister.getDefault().isServiceRegistered(IRepositoryService.class)) {
IRepositoryService repositoryService = GlobalServiceRegister.getDefault().getService(IRepositoryService.class);
if (PluginChecker.isBigdataRoutineLoaded() && repositoryService.isProjectLevelLog4j2()) {
runningModules.addAll(repositoryService.getLog4j2Modules());
}
}
return runningModules;
}
}

View File

@@ -76,6 +76,7 @@ import org.talend.commons.utils.io.FilesUtils;
import org.talend.commons.utils.workbench.resources.ResourceUtils;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ILibraryManagerService;
import org.talend.core.PluginChecker;
import org.talend.core.model.general.Project;
import org.talend.core.model.process.IProcess;
import org.talend.core.model.process.JobInfo;
@@ -98,10 +99,12 @@ import org.talend.designer.maven.model.TalendJavaProjectConstants;
import org.talend.designer.maven.model.TalendMavenConstants;
import org.talend.designer.maven.template.MavenTemplateManager;
import org.talend.designer.maven.tools.AggregatorPomsHelper;
import org.talend.designer.maven.tools.CodeM2CacheManager;
import org.talend.designer.maven.tools.ProcessorDependenciesManager;
import org.talend.designer.runprocess.IProcessor;
import org.talend.designer.runprocess.IRunProcessService;
import org.talend.repository.ProjectManager;
import org.talend.repository.model.IRepositoryService;
import org.talend.utils.xml.XmlUtils;
import org.w3c.dom.Attr;
import org.w3c.dom.DOMImplementation;
@@ -1188,4 +1191,49 @@ public class PomUtil {
return Collections.emptySet();
}
public static void checkExistingLog4j2Dependencies4RoutinePom(String projectTechName, IFile pomFile) {
if (!PluginChecker.isBigdataRoutineLoaded()) {
return;
}
try {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IRepositoryService.class)) {
Model model = MODEL_MANAGER.readMavenModel(pomFile);
IRepositoryService service = GlobalServiceRegister.getDefault().getService(IRepositoryService.class);
boolean isLog4j2 = service.isProjectLevelLog4j2();
Map<String, MavenArtifact> GAVMap = service.getLog4j2Modules().stream()
.map(m -> MavenUrlHelper.parseMvnUrl(m.getMavenUri()))
.collect(Collectors.toMap(MavenArtifact::getArtifactId, MavenArtifact -> MavenArtifact));
long existingDependenciesSize = model.getDependencies().stream()
.filter(d -> GAVMap.containsKey(d.getArtifactId())
&& GAVMap.get(d.getArtifactId()).getGroupId().equals(d.getGroupId())
&& GAVMap.get(d.getArtifactId()).getVersion().equals(d.getVersion()))
.count();
boolean clean = false;
// CAUTION
// with this fix, project level log4j2 user can use log4j2 api in routine directly in BD project
// user should NEVER manually setup log4j2 in routine dependencies
// or else routine install cache could always be cleaned
if (isLog4j2 && existingDependenciesSize != GAVMap.size()) {
// if project level log4j1 -> log4j2
// if first time add log4j2 dependencies
// if log4j2 upgrade version
// then clean cache to add
clean = true;
} else if (!isLog4j2 && existingDependenciesSize > 0) {
// if project level log4j2 -> log4j1
// then clean cache to remove
clean = true;
}
if (clean) {
File cacheFile = CodeM2CacheManager.getCacheFile(projectTechName, ERepositoryObjectType.ROUTINES);
if (cacheFile.exists()) {
cacheFile.delete();
}
}
}
} catch (CoreException e) {
ExceptionHandler.process(e);
}
}
}

View File

@@ -3,10 +3,10 @@
<classpathentry exported="true" kind="lib" path="lib/woden-api-1.0M9.jar"/>
<classpathentry exported="true" kind="lib" path="lib/axiom-api-1.2.13.jar"/>
<classpathentry exported="true" kind="lib" path="lib/axiom-impl-1.2.13.jar"/>
<classpathentry exported="true" kind="lib" path="lib/axis2-adb-1.6.2.jar"/>
<classpathentry exported="true" kind="lib" path="lib/axis2-kernel-1.6.2.jar"/>
<classpathentry exported="true" kind="lib" path="lib/axis2-transport-http-1.6.2.jar"/>
<classpathentry exported="true" kind="lib" path="lib/axis2-transport-local-1.6.2.jar"/>
<classpathentry exported="true" kind="lib" path="lib/axis2-adb-1.7.9.jar"/>
<classpathentry exported="true" kind="lib" path="lib/axis2-kernel-1.7.9.jar"/>
<classpathentry exported="true" kind="lib" path="lib/axis2-transport-http-1.7.9.jar"/>
<classpathentry exported="true" kind="lib" path="lib/axis2-transport-local-1.7.9.jar"/>
<classpathentry exported="true" kind="lib" path="lib/geronimo-stax-api_1.0_spec-1.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/httpcore-4.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/neethi-3.0.1.jar"/>

View File

@@ -13,10 +13,10 @@ Require-Bundle: org.eclipse.core.runtime,
Bundle-ClassPath: lib/activation-1.1.jar,
lib/axiom-api-1.2.13.jar,
lib/axiom-impl-1.2.13.jar,
lib/axis2-adb-1.6.2.jar,
lib/axis2-kernel-1.6.2.jar,
lib/axis2-transport-http-1.6.2.jar,
lib/axis2-transport-local-1.6.2.jar,
lib/axis2-adb-1.7.9.jar,
lib/axis2-kernel-1.7.9.jar,
lib/axis2-transport-http-1.7.9.jar,
lib/axis2-transport-local-1.7.9.jar,
lib/geronimo-stax-api_1.0_spec-1.0.1.jar,
lib/httpcore-4.0.1.jar,
lib/mail-1.4.jar,

View File

@@ -9,4 +9,48 @@
</parent>
<artifactId>org.talend.libraries.apache.axis2</artifactId>
<packaging>eclipse-plugin</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy</id>
<phase>generate-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${project.basedir}/lib</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>1.7.9</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>1.7.9</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>1.7.9</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>1.7.9</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -44,6 +44,7 @@ Export-Package: org.apache.commons.cli2,
org.apache.commons.math3.stat.descriptive;version="3.3.0",
org.apache.commons.math3.stat.descriptive.rank;version="3.3.0",
org.apache.commons.math3.util;version="3.3.0",
org.apache.commons.text,
org.apache.commons.text.similarity,
org.apache.commons.validator;version="1.5.1",
org.apache.commons.validator.routines;version="1.5.1"

View File

@@ -3,7 +3,6 @@
<classpathentry exported="true" kind="lib" path="lib/xml-apis.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry exported="true" kind="lib" path="lib/ant.jar"/>
<classpathentry exported="true" kind="lib" path="lib/apache-mime4j-0.6.jar"/>
<classpathentry exported="true" kind="lib" path="lib/castor-1.0.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta-oro-2.0.8.jar"/>

View File

@@ -4,7 +4,6 @@ Bundle-Name: Apache Plug-in
Bundle-SymbolicName: org.talend.libraries.apache
Bundle-Version: 7.4.1.qualifier
Bundle-ClassPath: .,
lib/ant.jar,
lib/apache-mime4j-0.6.jar,
lib/castor-1.0.3.jar,
lib/jakarta-oro-2.0.8.jar,
@@ -41,11 +40,6 @@ Export-Package:
org.apache.oro.text.perl,
org.apache.oro.text.regex,
org.apache.oro.util,
org.apache.tools.ant,
org.apache.tools.bzip2,
org.apache.tools.mail,
org.apache.tools.tar,
org.apache.tools.zip,
org.apache.xmlbeans,
org.apache.xmlbeans.impl.common,
org.apache.xmlbeans.impl.config,

View File

@@ -73,6 +73,16 @@
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<dependency-resolution>
<optionalDependencies>ignore</optionalDependencies>
</dependency-resolution>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
@@ -88,6 +98,7 @@
<excludeTypes>pom</excludeTypes>
<excludeTransitive>true</excludeTransitive>
<outputDirectory>${project.basedir}/lib</outputDirectory>
<includeGroupIds>log4j,org.slf4j,org.apache.logging.log4j</includeGroupIds>
</configuration>
</execution>
</executions>

View File

@@ -13,6 +13,9 @@
package routines.system;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public final class BundleUtils {
@@ -75,6 +78,31 @@ public final class BundleUtils {
return null;
}
}
public static <T> Map<String, T> getServices(List<?> serviceReferences, Class<T> serviceClass ) {
Map<String, T> services = new HashMap<String, T>();
if (BUNDLE == null || SERVICE_REFERENCE_CLASS == null ) {
return services;
}
try {
for (Object serviceRef : serviceReferences) {
Object serviceId = serviceRef.getClass().getMethod("getProperty",
java.lang.String.class).invoke(serviceRef, "osgi.jndi.service.name");
Method getBundleContext = BUNDLE.getClass().getMethod("getBundleContext");
Object context = getBundleContext.invoke(BUNDLE);
Class<?> ctxClass = context.getClass();
Method getService = ctxClass.getMethod("getService", SERVICE_REFERENCE_CLASS);
services.put(serviceId.toString(), serviceClass.cast(getService.invoke(context, serviceRef)));
}
return services;
} catch (Exception e) {
return services;
}
}
public static boolean inOSGi() {
return BUNDLE != null;

View File

@@ -28,7 +28,6 @@ import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -61,25 +60,10 @@ public class CustomUriManager {
private final Object reloadingLock = new Object();
private CustomUriManager() {
IFolder resourcePath = getResourcePath();
try {
Assert.isNotNull(resourcePath);
customURIObject = loadResources(resourcePath, RepositoryConstants.PROJECT_SETTINGS_CUSTOM_URI_MAP);
customURIObject = loadResources(getResourcePath(), RepositoryConstants.PROJECT_SETTINGS_CUSTOM_URI_MAP);
} catch (Exception e) {
ExceptionHandler.process(e);
try {
if (resourcePath != null) {
customURIObject = loadResources(resourcePath.getLocation().toPortableString(),
RepositoryConstants.PROJECT_SETTINGS_CUSTOM_URI_MAP);
}
} catch (Exception e1) {
ExceptionHandler.process(e1);
/**
* Seems dangrous to load an empty json here, because it may overwrite the existing one
*/
// customURIObject = new JSONObject();
}
}
}
@@ -279,14 +263,10 @@ public class CustomUriManager {
public void reloadCustomMapping() {
try {
if (isNeedReload || customURIObject == null) {
if (isNeedReload) {
synchronized (reloadingLock) {
if (isNeedReload || customURIObject == null) {
if (customURIObject == null) {
customURIObject = new JSONObject();
} else {
customURIObject.clear();
}
if (isNeedReload) {
customURIObject.clear();
JSONObject loadResources = loadResources(getResourcePath(),
RepositoryConstants.PROJECT_SETTINGS_CUSTOM_URI_MAP);
customURIObject.putAll(loadResources);

View File

@@ -49,6 +49,7 @@ import org.talend.core.model.general.Project;
import org.talend.core.model.metadata.MappingTypeRetriever;
import org.talend.core.model.metadata.MetadataTalendType;
import org.talend.core.model.metadata.types.JavaDataTypeHelper;
import org.talend.core.runtime.util.SharedStudioUtils;
import org.talend.datatools.xml.utils.ATreeNode;
import org.talend.datatools.xml.utils.NodeCreationObserver;
import org.talend.datatools.xml.utils.OdaException;
@@ -1075,7 +1076,7 @@ public class TreeUtil {
private static String copyToTempFile(URL url, String fileName) {
try {
IPath tempPath = new Path(System.getProperty("user.dir")).append("temp"); //$NON-NLS-1$ //$NON-NLS-2$
IPath tempPath = SharedStudioUtils.getTempFolderPath();
File tempFile = tempPath.toFile();
if (!tempFile.exists()) {
tempFile.mkdirs();

View File

@@ -22,6 +22,7 @@ import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
@@ -769,13 +770,9 @@ public class MigrationToolService implements IMigrationToolService {
*/
@Override
public void initNewProjectTasks(Project project) {
List<IProjectMigrationTask> toExecute = GetTasksHelper.getProjectTasks(true);
toExecute.addAll(GetTasksHelper.getProjectTasks(false));
List<MigrationTask> done = new ArrayList<MigrationTask>();
for (IProjectMigrationTask task : toExecute) {
done.add(MigrationUtil.convertMigrationTask(task));
}
List<MigrationTask> done = new LinkedList<>();
Optional.ofNullable(GetTasksHelper.getMigrationTasks(true)).ifPresent(tasks -> done.addAll(tasks));
Optional.ofNullable(GetTasksHelper.getMigrationTasks(false)).ifPresent(tasks -> done.addAll(tasks));
project.getEmfProject().setItemsRelationVersion(RelationshipItemBuilder.INDEX_VERSION);
saveProjectMigrationTasksDone(project, done);

View File

@@ -23,6 +23,8 @@ import org.talend.commons.ui.runtime.exception.ExceptionHandler;
import org.talend.commons.utils.workbench.extensions.ExtensionImplementationProvider;
import org.talend.commons.utils.workbench.extensions.ExtensionPointLimiterImpl;
import org.talend.commons.utils.workbench.extensions.IExtensionPointLimiter;
import org.talend.core.model.properties.MigrationTask;
import org.talend.core.model.utils.MigrationUtil;
import org.talend.migration.IProjectMigrationTask;
import org.talend.migration.IWorkspaceMigrationTask;
@@ -106,6 +108,34 @@ public class GetTasksHelper {
return migrationsInstances.get(taskId);
}
public static List<MigrationTask> getMigrationTasks(final boolean beforeLogon) {
IExtensionPointLimiter actionExtensionPoint = new ExtensionPointLimiterImpl("org.talend.core.migrationTask", //$NON-NLS-1$
"projecttask"); //$NON-NLS-1$
ExtensionImplementationProvider<MigrationTask> provider = new ExtensionImplementationProvider<MigrationTask>(
actionExtensionPoint) {
@Override
protected MigrationTask createImplementation(IExtension extension, IExtensionPointLimiter extensionPointLimiter,
IConfigurationElement configurationElement) {
try {
if (new Boolean(configurationElement.getAttribute("beforeLogon")) == beforeLogon) { //$NON-NLS-1$
String id = configurationElement.getAttribute("id"); //$NON-NLS-1$
String version = configurationElement.getAttribute("version"); //$NON-NLS-1$
String breaks = configurationElement.getAttribute("breaks"); //$NON-NLS-1$
return MigrationUtil.createMigrationTask(id, version, breaks, MigrationUtil.DEFAULT_STATUS);
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
return null;
}
};
return provider.createInstances();
}
public static List<IProjectMigrationTask> getProjectTasks(final boolean beforeLogon) {
IExtensionPointLimiter actionExtensionPoint = new ExtensionPointLimiterImpl(
"org.talend.core.migrationTask", "projecttask"); //$NON-NLS-1$ //$NON-NLS-2$

View File

@@ -49,6 +49,7 @@ import org.talend.datatools.xml.utils.ATreeNode;
import org.talend.metadata.managment.ui.utils.ConnectionContextHelper;
import org.talend.metadata.managment.ui.wizard.RepositoryWizard;
import org.talend.repository.mdm.i18n.Messages;
import org.talend.repository.mdm.util.MDMUtil;
import org.talend.repository.model.IProxyRepositoryFactory;
import org.talend.repository.model.IRepositoryService;
import org.talend.repository.model.RepositoryNode;
@@ -243,9 +244,8 @@ public class CreateConceptWizard extends RepositoryWizard implements INewWizard
success = true;
}
IPath sasPath = new Path(System.getProperty("user.dir")).append("temp");//$NON-NLS-1$ //$NON-NLS-2$
File sasDir = sasPath.toFile();
if (sasDir.exists()) {
File sasDir = MDMUtil.getTempTemplateXSDFile().getParentFile();
if (sasDir != null && sasDir.exists()) {
delete(sasDir);
}
}

View File

@@ -32,6 +32,7 @@ import org.eclipse.xsd.impl.XSDSchemaImpl;
import org.talend.core.model.metadata.builder.connection.Concept;
import org.talend.core.model.metadata.builder.connection.MDMConnection;
import org.talend.core.model.metadata.builder.connection.MetadataTable;
import org.talend.core.runtime.util.SharedStudioUtils;
import org.talend.metadata.managment.mdm.AbsMdmConnectionHelper;
import org.talend.metadata.managment.mdm.S60MdmConnectionHelper;
import org.talend.utils.xml.XmlUtils;
@@ -95,7 +96,7 @@ public class MDMUtil {
}
public static File getTempTemplateXSDFile() {
IPath tempPath = new Path(System.getProperty("user.dir")).append("temp"); //$NON-NLS-1$ //$NON-NLS-2$
IPath tempPath = SharedStudioUtils.getTempFolderPath();
File tempFile = tempPath.toFile();
if (!tempFile.exists()) {
tempFile.mkdirs();

View File

@@ -63,7 +63,7 @@ public class PostgreQueryGeneratorTest {
StringBuilder expectSql = new StringBuilder();
expectSql
.append(TalendTextUtils.getQuoteChar())
.append("SELECT \n \\\"talend\\\".\\\"myschema\\\".\\\"mytable\\\".\\\"newColumn\\\"\nFROM \\\"talend\\\".\\\"myschema\\\".\\\"mytable\\\"")
.append("SELECT \n \\\"myschema\\\".\\\"mytable\\\".\\\"newColumn\\\"\nFROM \\\"myschema\\\".\\\"mytable\\\"")
.append(TalendTextUtils.getQuoteChar());
assertNotNull(resultString);