Compare commits

...

42 Commits

Author SHA1 Message Date
Zhiwei Xue
f77b21c2e0 fix(TUP-27776):Can't build job from CI (missing jar dependency) (#3510) 2020-07-28 15:11:30 +08:00
kjwang
f79e24d155 Fix:TUP-27879 Shared user can't write library index file library_data.index (#3474) (#3507)
Fix:TUP-27879 Shared user can't write library index file
library_data.index
https://jira.talendforge.org/browse/TUP-27879
2020-07-28 10:26:45 +08:00
bhe-talendbj
9859ecffab fix(TUP-27814): Skip file.exists() (#3464) 2020-07-27 16:25:35 +08:00
hzhao-talendbj
453fd4ba1d fix miss dependency in assmble.xml with loop dependency (#3429)
Conflicts:
	main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/creator/CreateMavenJobPom.java
2020-07-24 11:19:31 +08:00
Jane Ding
d152eb7b74 fix(TUP-27590):Relationship.index might get really big (#3424) (#3501)
* fix(TUP-27590):Relationship.index might get really big
https://jira.talendforge.org/browse/TUP-27590

* fix(TUP-27590):Relationship.index might get really big
https://jira.talendforge.org/browse/TUP-27590

* fix(TUP-27590)Relationship.index might get really big
https://jira.talendforge.org/browse/TUP-27590
relatedItems is empty should not add  as a record

* fix(TUP-27590):Relationship.index might get really big
https://jira.talendforge.org/browse/TUP-27590

* fix(TUP-27590)Relationship.index might get really big
https://jira.talendforge.org/browse/TUP-27590
2020-07-23 18:40:41 +08:00
bhe-talendbj
8ae03ccad0 bugfix(TUP-27949) Replace dependency of log4j by slf4j (#3482)
* chore(TUP-27949): Replace log4j by slf4j

* chore(TUP-27949): Remove slf4j-log4j12
2020-07-22 11:07:20 +08:00
hcyi
0b79f42125 fix(TUP-25171):Issue when using components inside Joblet. (#3485) 2020-07-21 20:12:33 +08:00
nkutsubos
1e3453478e babili-export (#3489)
Co-authored-by: root <root@tal-ip90.talend.com>
2020-07-21 18:29:30 +08:00
hzhao-talendbj
9cd3dea7f4 TPS-4193 modify code mistake (#3487) 2020-07-21 10:05:06 +08:00
msjian
4214bc8d1e feat(TDQ-18173): when save need to set built-in mode (#3348) 2020-07-16 16:13:48 +08:00
hzhao-talendbj
4a96843c74 tup-27150 (#3441)
* tup-27150

* tup-27150

* TUP-27150 add manifest
2020-07-16 16:01:25 +08:00
hzhao-talendbj
65585cc5ca TUP-26534 (#3400)
* TUP-26534

* TUP-26534  revert for EHiveWithTezJars

* remove unknown version
2020-07-16 16:00:42 +08:00
hzhao-talendbj
85da3cc1b8 update manifest (#3478) 2020-07-15 20:31:16 +08:00
hzhao-talendbj
fd17078a1a Tup-27154 update manifest (#3477)
* Tup-27154  update manifest

* tup 27154 update manifest

* tup-27154 update manifest
2020-07-15 17:37:07 +08:00
hzhao-talendbj
d5ac143b91 tup-27154 (#3454)
* tup-27154

* TUP-27154  add gitignore
2020-07-13 10:00:43 +08:00
pyzhou
2b6f770fbb fix(TDI-44472):Rename global variable (#3439) (#3456)
* fix(TDI-44472):Rename global variable

* debug

* remove debug message
2020-07-13 09:21:13 +08:00
Zhiwei Xue
636bfa82a7 fix(TUP-27610): Clean up the CI version everywhere and have a common (#3466)
place to setup in studio
2020-07-10 17:07:47 +08:00
Zhiwei Xue
a2a60f163a fix(TUP-27338): Download jar pb with TDI license on Studio (#3457) 2020-07-10 09:43:49 +08:00
sbliu
2d13aeb955 TUP-27349 Avoid concurrent modification exception. (#3370) 2020-07-08 19:51:53 +08:00
hwang-talend
8027f078ce bugfix(TUP-19797):Retrieve hbase schema can get duplicated columns (#3309) 2020-07-07 16:59:22 +08:00
sbliu
31bac18a71 TUP-27416 Validate network, timeout value read from nexus timeout preference configuration . (#3437)
* TUP-27416 Validate network, timeout value read from nexus timeout preference configuration .
* TUP-27416 transmit timeout as a parameter to check nexus network validation.
* TUP-27416 Combine same get timeout function in different place.
* TUP-27416 Refactor , extract constant for reuse.
2020-07-07 16:37:32 +08:00
kjwang
43ac06ee47 Fix: TUP-27544 Context update can not update to the first testcase if the job have more than one testcase. (#3427) (#3447)
* Fix: TUP-27544 Context update can not update to the first testcase if
the job have more than one testcase.
https://jira.talendforge.org/browse/TUP-27544
2020-07-07 15:28:36 +08:00
bhe-talendbj
2ea8bdb18d fix(TUP-27586): fix test case failure (#3443) (#3446)
* fix(TUP-27586): fix test case failure

* fix(TUP-27586): fix test case failure
2020-07-07 10:27:58 +08:00
Colm O hEigeartaigh
3581d54bb5 TUP-27154 - Updating BeanUtils to 1.9.4 (#3279) 2020-07-03 12:25:46 +08:00
bhe-talendbj
8dd4052b1c fix(TUP-27586): skip checking installed patches (#3402)
* fix(TUP-27586): skip checking installed patches

* fix(TUP-27586): Skip checking installed patches
2020-07-03 10:07:31 +08:00
hcyi
895c37df7d feat(TUP-26669):Adapt HDInsight wizard for HDInsight 4.0 (#3382) 2020-07-02 17:24:10 +08:00
zshen-talend
fb4e90f5d0 fix(TDQ-17180): check parameter before start a command (#3411) 2020-07-01 09:32:18 +08:00
Zhiwei Xue
2a4b027d35 fix(TUP-27338): Download jar pb with TDI license on Studio (#3416) 2020-06-30 17:52:36 +08:00
Zhiwei Xue
59768ee766 fix(TUP-27315):Patch installation issues for zero install CI (#3394) 2020-06-30 17:51:58 +08:00
jiezhang-tlnd
4a49ce3774 fix(TUP-27607)Metadata Database connection with special characters(double quote) in the password (#3413)
* fix(TUP-27607)Metadata Database connection with special
characters(double quote) in the password
https://jira.talendforge.org/browse/TUP-27607

* fix(TUP-27607)Metadata Database connection with special
characters(double quote) in the password

* fix(TUP-27607)Metadata Database connection with special
characters(double quote) in the password

* fix(TIP-27607)Metadata Database connection with special
characters(double quote) in the password
2020-06-24 09:45:56 +08:00
pyzhou
a869bf9d97 fix(TDI-44402):update tacokit version studio (#3412) 2020-06-19 11:50:14 +08:00
jiezhang-tlnd
0051ee2d70 fix(TUP-27119)need give a warning if the schema is empty when switch (#3397)
context mode
https://jira.talendforge.org/browse/TUP-27119
2020-06-17 16:39:40 +08:00
jiezhang-tlnd
17e6ecbee6 Jzhang/bugfix/tup 27588 t create table data types mapping (#3403)
* fix(TUP-27588)tCreateTable data types mapping in the schema editor is
always Mysql after dragging and dropping from database Metadata
https://jira.talendforge.org/browse/TUP-27588

* fix(TUP-27588)tCreateTable data types mapping in the schema editor is
always Mysql after dragging and dropping from database Metadata
https://jira.talendforge.org/browse/TUP-27588
2020-06-17 16:37:25 +08:00
kjwang
1e6d4bbb15 TUP-26699 Enhance context propagation over reference project - Resolve link conflict with Git (#3399)
* TUP-26699 Enhance context propagation over reference project - Resolve (#3367)

* TUP-26699 Enhance context propagation over reference project - Resolve
link conflict with Git
https://jira.talendforge.org/browse/TUP-26699

* fix(TUP-27200):Detect update button can not detect the updated context
variable for testcase.
https://jira.talendforge.org/browse/TUP-27200

* TUP-26699 Enhance context propagation over reference project - Resolve
link conflict with Git
https://jira.talendforge.org/browse/TUP-26699

* fix(TUP-27275):studio update detection two times when change JSON file
context variable
https://jira.talendforge.org/browse/TUP-27275

* Fix can't merge remote context link file problem

* fix(TUP-27190):[Bug] DB connection use context in ref project can not (#3379)

find the link to context after export and imported in.
https://jira.talendforge.org/browse/TUP-27190

* Fix: TUP-27336 [Bug] Job get duplicated context var when use the context
var used by joblet is updated after migration
https://jira.talendforge.org/browse/TUP-27336

* fix(TUP-27522):[Bug] context var id in link file will be null after add (#3391)

a new context group for context and propagate to job.
https://jira.talendforge.org/browse/TUP-27522

* Improve the code find context parameter by name when can't by parameter
by id

Co-authored-by: jding-tlnd <jding@talend.com>
Co-authored-by: Jane Ding <35018295+jding-tlnd@users.noreply.github.com>

* Fix a NPE issue (#3404)

Co-authored-by: jding-tlnd <jding@talend.com>
Co-authored-by: Jane Ding <35018295+jding-tlnd@users.noreply.github.com>
2020-06-16 17:37:46 +08:00
Zhiwei Xue
5f474c0238 fix(TUP-27530):move sync component m2 execution to logon project phase (#3392) 2020-06-12 16:35:03 +08:00
jiezhang-tlnd
f22d442cbd update mapping_sybase (#3383)
Conflicts:
	main/plugins/org.talend.core.runtime/mappings/mapping_Sybase.xml
2020-06-11 16:58:33 +08:00
Mike Yan
1d6e5d46fc fix(TESB-29315):P2 depoy failed for missing osgihelper-maven-plugin (#3376) 2020-06-11 14:05:21 +08:00
wang wei
56f900f470 fix(TDI-44171): Observability: Add "Component" label to component-related events
* fix(TDI-44171): Observability: Add "Component" label to
component-related events

* fix(TDI-44172): Observability: Create new "component execution" event
and emit it frequently

* fix(TDI-44172): fix some issue

* fix(TDI-44172): fix some issue

* remove the unuseful code in loop to avoid performance loss
2020-06-10 16:28:36 +08:00
bhe-talendbj
4bbe901c00 fix(TUP-26687): make Nexus3RepositoryHandler.dosearch thread safe (#3371) 2020-06-09 17:34:33 +08:00
jiezhang-tlnd
d73e91b947 feat(TUP-27259)Change default driver to Microsoft official for MSSql in (#3328) (#3369)
Metadata
https://jira.talendforge.org/browse/TUP-27259
2020-06-09 16:52:58 +08:00
jiezhang-tlnd
3db0fa1fbe fix(TUP-26896)Error create a Sybase connection in metadata and cannot retrieve tables (#3351)
* fix(TUP-26896)Error create a Sybase connection in metadata and cannot
retrieve tables
https://jira.talendforge.org/browse/TUP-26896

* format code

* code format

* format code

* format code

* format code

* format code
2020-06-09 15:10:13 +08:00
jiezhang-tlnd
8acb76e420 fix(TUP-27119)need give a warning if the schema is empty when switch context mode (#3302)
* fix(TUP-27119)need give a warning if the schema is empty when switch
context mode
https://jira.talendforge.org/browse/TUP-27119

* fix(TUP-27119)need give a warning if the schema is empty when switch
context mode

* fix(TUP-27119)need give a warning if the schema is empty when switch
context mode

* fix(TUP-27119)need give a warning if the schema is empty when switch
context mode
2020-06-09 14:51:33 +08:00
139 changed files with 1771 additions and 710 deletions

View File

@@ -16,8 +16,8 @@ ContentProposalAdapterExtended.close=\u9589\u3058\u308B
ContentProposalAdapterExtended.closeFocusout=Focusout\u3092\u9589\u3058\u308B
ControlUtils.Unsupported1=\u3053\u306E\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB({0}) \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3001\u5FC5\u8981\u3067\u3042\u308C\u3070\u30B1\u30FC\u30B9\u3092\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044...
CopyPushButton.CopyButton.Tip=\u9078\u629E\u3057\u305F\u30A2\u30A4\u30C6\u30E0\u306E\u30B3\u30D4\u30FC
Curve2D.MaxNum.Be0=maximumSegments\u306F\u6B63\u307E\u305F\u306F0\u306B\u3057\u3066\u304F\u3060\u3055\u3044
Curve2D.MinNum.Be0=minimumSegments\u306F\u6B63\u307E\u305F\u306F0\u306B\u3057\u3066\u304F\u3060\u3055\u3044
Curve2D.MaxNum.Be0=maximumSegments\u306F\u6B63\u6570\u307E\u305F\u306F0\u306B\u3057\u3066\u304F\u3060\u3055\u3044
Curve2D.MinNum.Be0=minimumSegments\u306F\u6B63\u6570\u307E\u305F\u306F0\u306B\u3057\u3066\u304F\u3060\u3055\u3044
DateDialog.textContent=\u65E5\u4ED8\u3068\u6642\u9593\u306E\u9078\u629E
DefaultCellModifier.tableItemDispose=\u7834\u68C4\u3055\u308C\u305F\u30C6\u30FC\u30D6\u30EB\u9805\u76EE
DialogErrorForCellEditorListener.Error.MsgDialogTitle=\u30A8\u30E9\u30FC

View File

@@ -45,3 +45,5 @@ VersionUtils.readPropertyFileError=Erreur de lecture de propri\u00E9t\u00E9 dans
AS400ResultSet.unknowCloumn=Argument invalide\: nom de colonne inconnu
AS400ResultSet.parameterIndex=Argument invalide\: index du param\u00E8tre
AS400ResultSet.outofRange=\ est hors de la plage.
TalendProxySelector.exception.badUriMap=URI du mapping invalide\u00A0: {0}
TalendProxySelector.exception.proxySelectionError=Erreur lors de la s\u00E9lection du proxy pour {0}

View File

@@ -12,7 +12,7 @@ ExtendedTablePasteCommand.Paste.Label=Paste data from the internal clipoard
SelectContextVariablesPushButton.Label=Select context variables
ExtendedTableModel.ModifiedObject.Error=ModifiedBeanListenable object must be set before use this method
ImportPushButton.ImportButton.Tip=Replace all rows by import from xml file
LabelledFileField.FileDialog.Text=Select a
LabelledFileField.FileDialog.Text=Select a
ModelSelectionDialog.Option=option
ModelSelectionDialog.Update=Update repository connection.
TableViewerCreator.Table.BeNull=table is null
@@ -33,10 +33,10 @@ ModelSelectionDialog.ViewSchema=View schema (read only).
LabelledFileField.BrowseButton.Text=Browse...
ModelSelectionDialog.ViewQuery=View query (read only).
MoveUpPushButton.MoveUpButton.Tip=Move up selected items
AccessorUtils.Assert1=The 'BeanPropertyAccessors' of the column (with title '{0}' and id '{1}') is not configured correctly or the value set has not the correct type.
AccessorUtils.Assert1=The 'BeanPropertyAccessors' of the column (with title '{0}' and id '{1}') is not configured correctly or the value set has not the correct type.
exception.errorOccured=An error occured ({0}).\nSee log for more details.
ColorStyledText.CopyItem.Text=Copy
AccessorUtils.Assert0=The 'BeanPropertyAccessors' of the column (with title '{0}' and id '{1}') is not configured correctly. {2} is required for bean <B>
AccessorUtils.Assert0=The 'BeanPropertyAccessors' of the column (with title '{0}' and id '{1}') is not configured correctly. {2} is required for bean <B>
ExtendedTableMoveCommand.MoveLabel=Move up or down, one or more table entries
CopyPushButton.CopyButton.Tip=Copy selected items
ExtendedTableResetDBTypesCommand.ResetDBTypes.Label=Reset all DB Types to get the defaults
@@ -55,7 +55,7 @@ DialogErrorForCellEditorListener.Error.MsgDialogTitle=Error
ExportPushButton.ExportButton.Tip=Export all rows into XML file
TableViewerCreator.CellModifier.ExError=The current CellModifier does'nt support this operation. \n Use '{0}' or a class which extends it to use this feature
Curve2D.MinNum.Be0=minimumSegments be must positive or 0
ModeReader.IgnoreElement=Ignore unknown element
ModeReader.IgnoreElement=Ignore unknown element
Curve2D.MaxNum.Be0=maximumSegments must be positive or 0
CellEditorDialogBehavior.textContent=...
CellEditorValueAdapterFactory.valueNotStringType=Bean value should be a class of String type \!

View File

@@ -34,7 +34,7 @@ EConnectionType.onSubjobOkMenu=On Subjob Ok
CorePreferencePage.groupBySource="Group by source" in context
EConnectionType.onSubjobErrorMenu=On Subjob Error
RepositoryUpdateManager.ItemsToUpdate=Check items to update
SelectRepositoryContextDialog.Label=Select variables from repository contexts.
SelectRepositoryContextDialog.Label=Select variables from repository contexts.
EMetadataEncoding.Greek=Greek
EMetadataEncoding.UTF16BE=Unicode BigEndian (16 bit)
EConnectionType.synchronize=Synchronize
@@ -46,13 +46,13 @@ EUpdateItemType.Components=Components
EConnectionType.mergeMenu=Merge
RepositoryUpdateManager.RenameContextTitle=Rename Question
EUpdateItemType.Schema=Schema
ContextValueErrorChecker.ErrorTitile=Context value error:
ContextValueErrorChecker.ErrorTitile=Context value error:
EMetadataEncoding.UTF8=Unicode 2.0 UTF-8
EMetadataEncoding.UTF7=Unicode 2.0 UTF-7
RepositoryUpdateManager.RenameContextMessages=Do you really want to propagate the rename variable to all jobs now? \n\n If yes, it might be quite long time to update.\n\n If no, the old variables will be change to built-in in the job.
EUpdateItemType.Query=Query
ExtractMetaDataFromDataBase.SchemaNoPresent=Schema not present in Database
SelectRepositoryContextDialog.DuplicationMessage=You have selected the variable "{0}" in the Context "{1}".
SelectRepositoryContextDialog.DuplicationMessage=You have selected the variable "{0}" in the Context "{1}".
UpdatesConstants.Component=Component
CorePreferencePage.perlInterpreter=Perl interpreter
EMetadataEncoding.GB18030=Chinese National Standard
@@ -82,7 +82,7 @@ EMetadataEncoding.Latin1=Latin1 (West European)
ContextProcessSection.51=ContextProcessSection.15
EMetadataEncoding.UTF16=Unicode 2.0 (16 bit)
ContextProcessSection.50=ContextProcessSection.14
CorePreferencePage.temporaryFiles=&Temporary files
CorePreferencePage.temporaryFiles=&Temporary files
EUpdateResult.Reload=Reload components
RepositoryUpdateManager.Title=Modification
ContextProcessSection.49=Default Context
@@ -227,7 +227,7 @@ UpdatesConstants.JobVersion=JobVersion
ProposalUtils.CellProposal.Error=Proposal of this type of CellEditor is unsupported \:
ProposalUtils.CtrlProposal.ErrorMsg=Proposal for this type of Control is unsupported \:
HTMLDocGenerator_generate_document=Generated documentation
HTMLDocGenerator.author=AUTHOR
HTMLDocGenerator.author=Author
HTMLDocGenerator.author1=Author
HTMLDocGenerator.column=Column
HTMLDocGenerator.comment=Comment

View File

@@ -49,7 +49,7 @@ EUpdateItemType.Schema=\u30B9\u30AD\u30FC\u30DE
ContextValueErrorChecker.ErrorTitile=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306E\u5024\u30A8\u30E9\u30FC:
EMetadataEncoding.UTF8=Unicode 2.0 UTF-8
EMetadataEncoding.UTF7=Unicode 2.0 UTF-7
RepositoryUpdateManager.RenameContextMessages=\u540D\u524D\u5909\u66F4\u5909\u6570\u3092\u4ECA\u3059\u3050\u5168\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B? \\n\\n [\u306F\u3044]\u3092\u9078\u629E\u3057\u305F\u5834\u5408\u3001\u66F4\u65B0\u306B\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\\n\\n [\u3044\u3044\u3048]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u53E4\u3044\u5909\u6570\u304C\u30B8\u30E7\u30D6\u5185\u3067\u7D44\u307F\u8FBC\u307F\u306B\u5909\u308F\u308A\u307E\u3059\u3002
RepositoryUpdateManager.RenameContextMessages=\u540D\u524D\u5909\u66F4\u306E\u5909\u6570\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u4ECA\u3059\u3050\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B? \\n\\n [\u306F\u3044]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u66F4\u65B0\u306B\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\\n\\n [\u3044\u3044\u3048]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u53E4\u3044\u5909\u6570\u304C\u30B8\u30E7\u30D6\u5185\u3067\u7D44\u307F\u8FBC\u307F\u306B\u5909\u308F\u308A\u307E\u3059\u3002
EUpdateItemType.Query=\u30AF\u30A8\u30EA
ExtractMetaDataFromDataBase.SchemaNoPresent=\u30B9\u30AD\u30FC\u30DE\u304C\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u5B58\u5728\u3057\u307E\u305B\u3093
SelectRepositoryContextDialog.DuplicationMessage=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8"{1}"\u3067\u5909\u6570"{0}"\u3092\u9078\u629E\u3057\u307E\u3057\u305F\u3002

View File

@@ -164,7 +164,7 @@ FunctionManager.PurePerl.ParaName=customize parameter
GlobalServiceRegister.ServiceNotRegistered=The service {0} has not been registered.
GroupByContextAction.groupContext=Group by Context
GroupByVariableAction.groupVariable=Group by Variable
JavaFunctionParser.checkMethod=Routines : "{0}.{1}\\" parse failed. please check your the Method.
JavaFunctionParser.checkMethod=Routines : "{0}.{1}\" parse failed. please check your the Method.
JavaGlobalVariableProposal.Description=Description\: {0}
JavaGlobalVariableProposal.VariableName=\n\nVariable Name\: {1}
JavaSimpleDateFormatProposalProvider.displaySingleQuote=\ ' : Display a single quote
@@ -243,10 +243,10 @@ NodeReturnProposal.VariableName=\n\nVariable Name\: {5}
PaletteContentDialog.connection=Format connection default:
PaletteContentDialog.hint=Format hint default:
PaletteContentDialog.lable=Format label default:
Parameter.Comment=\ comment \:
Parameter.Comment= comment :
Parameter.Name=Parameter name
Parameter.Type=\ type \:
Parameter.Value=\ value \:
Parameter.Type= type :
Parameter.Value= value :
PatternCalendar.dateFormat="yyyy-MM-dd HH:mm:ss"
PatternCalendar.example=Example:
PatternCalendar.pattern=Pattern:
@@ -292,7 +292,6 @@ RepositoryUpdateManager.NoModificationTitle=No modification needed
RepositoryUpdateManager.NoModificationMessages=There is no modification needed for update.
RepositoryUpdateManager.NotFoundMessages=There is no relationship to find.
RepositoryUpdateManager.NotFoundTitle=Not Found
RepositoryUpdateManager.RenameContextMessages=Do you really want to propagate the rename variable to all jobs now? \n\n If yes, it might be quite long time to update.\n\n If no, the old variables will be change to built-in in the job.
RepositoryUpdateManager.RenameContextTitle=Rename Question
RepositoryUpdateManager.ItemsToUpdate=Check items to update
RoutinesFunctionProposal.CreatedBy=Created By\:
@@ -332,7 +331,7 @@ SelectRepositoryContextDialog.ExpandAll=Expand All
SelectRepositoryContextDialog.Title=Select Context Variables
SelectRepositoryContextDialog.View=View...
SelectRepositoryContextGroupDialog.Default=default
SelectRepositoryContextGroupDialog.Messages=\ In the Job, add a nonexistent context group from the repository context
SelectRepositoryContextGroupDialog.Messages= In the Job, add a nonexistent context group from the repository context
SelectRepositoryContextGroupDialog.Title=Add Context Group
TalendDataCollectorPreferencePage_EnableCapture=Enable capture
TalendDataCollectorPreferencePage_Description=The Usage Data Collector collects information about how individuals are using the Talend products. The intent is to use this data to help Talend better understand how users and organizations are using Talend products.
@@ -519,7 +518,7 @@ HadoopVersionDialog.zipLocation=Zip:
HadoopVersionDialog.importFromZip=Import from zip
HadoopVersionDialog.title=Import custom definition
HadoopVersionDialog.distribution=Distribution:
HadoopVersionDialog.distribution.tooltip=Set the hadoop distribution
HadoopVersionDialog.distribution.tooltip=Set the Hadoop distribution
HadoopVersionDialog.version=Version:
HadoopVersionDialog.version.tooltip=Set the distribution version
HadoopVersionDialog.browseBtn=B&rowse...
@@ -635,3 +634,5 @@ RepositoryUpdateManager.job.title=Updating items...
BigDataBasicUtil.loadDynamicDistribution.IDynamicDistributionManager.notFound=Instance of {0} not found
ComponentToRepositoryProperty.ImpossibleUseWALLET=Impossible to use WALLET type in the repository\!
TalendLibsServerManager.connectUserLibraryFailureMessage=The user libraries artifact repository set in administrator cannot connect: Connection to {0} refused
TalendLibsServerManager.cannotGetUserLibraryServer=Cannot get the user library server from remote administrator
RepositoryUpdateManager.RenameContextMessagesNoBuiltIn=Do you really want to propagate the rename variable to all jobs now? \n\n If yes, it might be quite long time to update.

View File

@@ -269,7 +269,6 @@ RepositoryUpdateManager.NoModificationTitle=Aucune modification n\u00E9cessaire
RepositoryUpdateManager.NoModificationMessages=Aucune modification n\u00E9cessaire pour effectuer la mise \u00E0 jour.
RepositoryUpdateManager.NotFoundMessages=Aucune relation \u00E0 trouver.
RepositoryUpdateManager.NotFoundTitle=Introuvable
RepositoryUpdateManager.RenameContextMessages=Voulez-vous vraiment propager la variable renomm\u00E9e \u00E0 tous les Jobs ? \n\nSi oui, la mise \u00E0 jour peut prendre un moment. \n\n Si non, les anciennes variables seront pass\u00E9es en Built-In dans les Jobs.
RepositoryUpdateManager.RenameContextTitle=Renommer la question
RepositoryUpdateManager.ItemsToUpdate=V\u00E9rification des \u00E9l\u00E9ments \u00E0 mettre \u00E0 jour
RoutinesFunctionProposal.CreatedBy=Cr\u00E9\u00E9 par\n:
@@ -565,3 +564,4 @@ EUpdateItemType.StructurePath=Chemin de la structure
EComponentCategory_deployment=D\u00E9ploiement
DynamicElement.incorrectInstance=L'objet JSON n'est pas une instance de {0} : {1}
EComponentCategory_advanceSetting=Param\u00E8tres avanc\u00E9s
TalendLibsServerManager.connectUserLibraryFailureMessage=\u00C9chec de la connexion au r\u00E9f\u00E9rentiel d\'artefacts des bilioth\u00E8ques utilisateurs configur\u00E9 en tant qu\'administrateur\u00A0: Connexion \u00E0 {0} refus\u00E9e.

View File

@@ -292,7 +292,6 @@ RepositoryUpdateManager.NoModificationTitle=\u5909\u66F4\u306E\u5FC5\u8981\u306F
RepositoryUpdateManager.NoModificationMessages=\u66F4\u65B0\u304C\u5FC5\u8981\u306A\u5BFE\u8C61\u306F\u3042\u308A\u307E\u305B\u3093\u3002
RepositoryUpdateManager.NotFoundMessages=\u30EA\u30EC\u30FC\u30B7\u30E7\u30F3\u30B7\u30C3\u30D7\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
RepositoryUpdateManager.NotFoundTitle=\u898B\u3064\u304B\u308A\u307E\u305B\u3093
RepositoryUpdateManager.RenameContextMessages=\u540D\u524D\u5909\u66F4\u5909\u6570\u3092\u4ECA\u3059\u3050\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B?[\u306F\u3044]\u3092\u9078\u629E\u3057\u305F\u5834\u5408\u3001\u66F4\u65B0\u306B\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002[\u3044\u3044\u3048]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u53E4\u3044\u5909\u6570\u304C\u30B8\u30E7\u30D6\u5185\u3067\u7D44\u307F\u8FBC\u307F\u306B\u5909\u308F\u308A\u307E\u3059\u3002
RepositoryUpdateManager.RenameContextTitle=\u8CEA\u554F\u306E\u540D\u79F0\u5909\u66F4
RepositoryUpdateManager.ItemsToUpdate=\u66F4\u65B0\u3059\u308B\u9805\u76EE\u3092\u30C1\u30A7\u30C3\u30AF
RoutinesFunctionProposal.CreatedBy=\u4F5C\u6210:

View File

@@ -292,7 +292,6 @@ RepositoryUpdateManager.NoModificationTitle=\u6CA1\u6709\u9700\u8981\u7684\u4FEE
RepositoryUpdateManager.NoModificationMessages=\u6CA1\u6709\u66F4\u65B0\u6240\u9700\u7684\u4FEE\u6539\u3002
RepositoryUpdateManager.NotFoundMessages=\u6CA1\u6709\u53EF\u5BFB\u627E\u7684\u5173\u7CFB\u3002
RepositoryUpdateManager.NotFoundTitle=\u627E\u4E0D\u5230
RepositoryUpdateManager.RenameContextMessages=\u662F\u5426\u786E\u5B9A\u8981\u7ACB\u5373\u5C06\u91CD\u547D\u540D\u7684\u53D8\u91CF\u4F20\u64AD\u5230\u6240\u6709\u7684\u4F5C\u4E1A\uFF1F\\n\\n \u5982\u679C\u662F\uFF0C\u53EF\u80FD\u9700\u8981\u5F88\u957F\u65F6\u95F4\u8FDB\u884C\u66F4\u65B0\u3002\\n\\n \u5982\u679C\u4E0D\u662F\uFF0C\u65E7\u7684\u53D8\u91CF\u5C06\u6539\u4E3A\u5185\u7F6E\u4E8E\u4F5C\u4E1A\u4E2D\u3002
RepositoryUpdateManager.RenameContextTitle=\u91CD\u547D\u540D\u95EE\u9898
RepositoryUpdateManager.ItemsToUpdate=\u68C0\u67E5\u8981\u66F4\u65B0\u7684\u9879\u76EE
RoutinesFunctionProposal.CreatedBy=\u521B\u5EFA\u4EBA:

View File

@@ -21,8 +21,8 @@ ContextParameterProposal.ContextVariable=\n\nContext variable.
ContextParameterProposal.Description=Description: {0}
ContextValueErrorChecker.ErrorTitile=Context value error:
ContextParameterProposal.NoCommentAvaiable=no comment available.
ContextParameterProposal.Type=\nType\: {1}
ContextParameterProposal.VariableName=\n\nVariable Name\: {2}
ContextParameterProposal.Type=\nType: {1}
ContextParameterProposal.VariableName=\n\nVariable Name: {2}
ContextProcessSection.1=menuTable
ContextProcessSection.12=Rename Context
ContextProcessSection.13=Give a new name for the context {0}
@@ -81,7 +81,7 @@ EComponentCategory_technical=Technical
EComponentCategory_version=Version
EComponentCategory_headerFooter=Header/Footer
EComponentCategory_view=View
EComponentCategory.advancedSettings=Advanced settings
EComponentCategory.advancedSettings=Advanced Settings
EComponentCategory.basicRun=Basic Run
EComponentCategory.breakpoint=Breakpoint
EComponentCategory.debugRun=Debug Run
@@ -132,9 +132,9 @@ FunctionManager.PurePerl.ParaName=customize parameter
GlobalServiceRegister.ServiceNotRegistered=The service {0} has not been registered.
GroupByContextAction.groupContext=Group by Context
GroupByVariableAction.groupVariable=Group by Variable
JavaFunctionParser.checkMethod=Routines : "{0}.{1}\\" parse failed. please check your the Method.
JavaFunctionParser.checkMethod=Routines : "{0}.{1}\" parse failed. please check your the Method.
JavaGlobalVariableProposal.Description=Description\: {0}
JavaGlobalVariableProposal.VariableName=\n\nVariable Name\: {1}
JavaGlobalVariableProposal.VariableName=\n\nVariable Name: {1}
JavaSimpleDateFormatProposalProvider.displaySingleQuote=\ ' : Display a single quote
JavaSimpleDateFormatProposalProvider.quoteDisplayError=Two single quotes display only one single quote
JavaTypesManager.bigDecimal=BIGDECIMAL is number:
@@ -201,11 +201,11 @@ MetadataTool.schemaExist=The schema name aready exists.
MetadataTool.schemaIn=The schema name is invalid.
MetadataTool.schemaInvalid=Schema name is invalid.
MetadataTool.schemaNull=Schema name is null.
NodeReturnProposal.Availability=\nAvailability\: {4}
NodeReturnProposal.Description=Description\: {0}
NodeReturnProposal.Availability=\nAvailability: {4}
NodeReturnProposal.Description=Description: {0}
NodeReturnProposal.GlobalVariable=\n\nGlobal variable, property of component {1} [{2}].
NodeReturnProposal.Type=\nType\: {3}
NodeReturnProposal.VariableName=\n\nVariable Name\: {5}
NodeReturnProposal.Type=\nType: {3}
NodeReturnProposal.VariableName=\n\nVariable Name: {5}
PaletteContentDialog.connection=Format connection default:
PaletteContentDialog.hint=Format hint default:
PaletteContentDialog.lable=Format label default:
@@ -260,12 +260,12 @@ RepositoryUpdateManager.NotFoundTitle=Not Found
RepositoryUpdateManager.RenameContextMessages=Do you really want to propagate the renamed variable to all jobs now? \n\n If yes, it might take a long time to update.\n\n If no, the old variables will be changed to built-in in the job.
RepositoryUpdateManager.RenameContextTitle=Rename Question
RepositoryUpdateManager.ItemsToUpdate=Check items to update
RoutinesFunctionProposal.CreatedBy=Created By\:
RoutinesFunctionProposal.Description=Description\:
RoutinesFunctionProposal.ReturnType=Return Type\:
RoutinesFunctionProposal.CreatedBy=Created By:
RoutinesFunctionProposal.Description=Description:
RoutinesFunctionProposal.ReturnType=Return Type:
RoutinesFunctionProposal.System=System
RoutinesFunctionProposal.User=User
RoutinesFunctionProposal.VariableName=\n\nVariable Name\: {2}
RoutinesFunctionProposal.VariableName=\n\nVariable Name: {2}
RuleOperationChoiceDialog.editRules=Edit Rules
RuleOperationChoiceDialog.rule=Rule:
RuleOperationChoiceDialog.selectRulesFile=Select a rule from file
@@ -296,7 +296,7 @@ SelectRepositoryContextDialog.ExpandAll=Expand All
SelectRepositoryContextDialog.Title=Select Context Variables
SelectRepositoryContextDialog.View=View...
SelectRepositoryContextGroupDialog.Default=default
SelectRepositoryContextGroupDialog.Messages=\ In the Job, add a nonexistent context group from the repository context
SelectRepositoryContextGroupDialog.Messages= In the Job, add a nonexistent context group from the repository context
SelectRepositoryContextGroupDialog.Title=Add Context Group
TalendTabbedPropertyComposite.compactButton.toolTip=compact view
TalendTabbedPropertyComposite.tableButton.toolTip=table view

View File

@@ -541,4 +541,5 @@ EComponentCategory_advanceSetting=Param\u00E8tres avanc\u00E9s
I18nPreferencePage.needRestart=Langage local (red\u00E9marrage requis)
I18nPreferencePage.restart=Red\u00E9marrer
I18nPreferencePage.wait_process=Le processus va prendre plusieurs minutes, patientez...
MetadataPreferencePage.EnableBasic.name=Autorise l\'en-t\u00EAte d\'authentification simple
MetadataPreferencePage.MessageDialog.Restart=Le Studio doit red\u00E9marrer pour que ce param\u00E8tre soit pris en compte.\\n\u00CAtes-vous s\u00FBr(e)\u00A0?

View File

@@ -502,7 +502,7 @@ TalendDataCollectorUploadingPreferencePage_UploadPeriod=\u30A2\u30C3\u30D7\u30ED
TalendDataCollectorUploadingPreferencePage_Days=\u65E5\u6570
repository.servicesOperation=\u6F14\u7B97\u5B50
repository.servicesPort=\u30DD\u30FC\u30C8
RepositoryUpdateManager.MessagesForTDQ=\u5909\u66F4\u3092\u5168\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B?\\n\u4E00\u90E8\u306E\u5206\u6790\u4F9D\u5B58\u6027\u306E\u60C5\u5831\u304C\u5931\u308F\u308C\u307E\u3059\u3002\\n\u3053\u306E\u51E6\u7406\u306B\u306F\u6642\u9593\u304C\u304B\u304B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
RepositoryUpdateManager.MessagesForTDQ=\u5909\u66F4\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B?\\n\u4E00\u90E8\u306E\u5206\u6790\u4F9D\u5B58\u6027\u306E\u60C5\u5831\u304C\u5931\u308F\u308C\u307E\u3059\u3002\\n\u3053\u306E\u51E6\u7406\u306B\u306F\u6642\u9593\u304C\u304B\u304B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
EComponentCategory.executeJob=\u30B8\u30E7\u30D6\u5B9F\u884C
EComponentCategory.monitoring=\u30E2\u30CB\u30BF\u30FC
BinRepositoryNode.label=\u3054\u307F\u7BB1

View File

@@ -5,3 +5,4 @@ FolderMavenSettingPage_CreatingMavenSettingErrorTitle=Erreur
ProjectPomProjectSettingPage_Titile=NOTE\: Les modules et les d\u00E9pendances seront conserv\u00E9s.
ProjectPomProjectSettingPage_ConfirmTitle=Confirmer
AbstractPersistentProjectSettingPage.syncAllPoms=Mettre \u00E0 jour tous les fichiers pom ? \n Cette op\u00E9ration peut prendre du temps selon la taille de votre projet.
MavenProjectSettingPage.refModuleText=Configurer les modules du projet de r\u00E9f\u00E9rence dans le profil

View File

@@ -23,3 +23,6 @@ modules.required=Requis pour utiliser ce composant.
ShareLibsJob.message=Partager les biblioth\u00E8ques de Maven vers le serveur {0}
ShareLibsJob.sharingLibraries=Partage des biblioth\u00E8ques : {0}
ExtensionModuleManager.moduleGroup.cycleReference=Module group {0} was cycle referenced!
NexusRepository.checkConnection.successMsg=Connexion \u00E9tablie.
NexusRepository.checkConnection.invalidParam=Param\u00E8tre Nexus invalide.
ShareLibsJob.monitor.cancelled=Annulation utilisateur.

View File

@@ -25,3 +25,4 @@ ShareLibsJob.sharingLibraries=\u30E9\u30A4\u30D6\u30E9\u30EA\u306E\u5171\u6709:
ExtensionModuleManager.moduleGroup.cycleReference=\u30E2\u30B8\u30E5\u30FC\u30EB\u30B0\u30EB\u30FC\u30D7{0}\u306F\u5FAA\u74B0\u53C2\u7167\u3055\u308C\u307E\u3057\u305F!
NexusRepository.checkConnection.successMsg=\u63A5\u7D9A\u6210\u529F\u3002
NexusRepository.checkConnection.invalidParam=Nexus\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u304C\u7121\u52B9\u3067\u3059\u3002
ShareLibsJob.monitor.cancelled=\u30E6\u30FC\u30B6\u30FC\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\u3002

View File

@@ -25,3 +25,4 @@ ShareLibsJob.sharingLibraries=\u6B63\u5728\u5171\u4EAB\u5E93\uFF1A{0}
ExtensionModuleManager.moduleGroup.cycleReference=\u6A21\u5757\u7EC4 {0} \u662F\u5FAA\u73AF\u5F15\u7528\u7684\uFF01
NexusRepository.checkConnection.successMsg=\u8FDE\u63A5\u6210\u529F\u3002
NexusRepository.checkConnection.invalidParam=\u65E0\u6548\u7684 Nexus \u53C2\u6570\u3002
ShareLibsJob.monitor.cancelled=\u7528\u6237\u5DF2\u53D6\u6D88\u3002

View File

@@ -118,3 +118,4 @@ ConfigModuleDialog.install.message=Install a module : {0}
download.external.dialog.warning=Warning
download.external.dialog.message=Select at least one module not installed.
DownloadModuleRunnable.jar.download.failed=The Download failed for the following jars {0}
InstallModuleDialog.error.invalidDefaultMvnURI=Can't generate default MVN URI.

View File

@@ -150,7 +150,7 @@ FunctionManager.PurePerl.ParaName=customize parameter
GlobalServiceRegister.ServiceNotRegistered=The service {0} has not been registered.
GroupByContextAction.groupContext=Group by Context
GroupByVariableAction.groupVariable=Group by Variable
JavaFunctionParser.checkMethod=Routines : "{0}.{1}\\" parse failed. please check your the Method.
JavaFunctionParser.checkMethod=Routines : "{0}.{1}\" parse failed. please check your the Method.
JavaGlobalVariableProposal.Description=Description\: {0}
JavaGlobalVariableProposal.VariableName=\n\nVariable Name\: {1}
JavaSimpleDateFormatProposalProvider.displaySingleQuote=\ ' : Display a single quote
@@ -320,7 +320,7 @@ SelectRepositoryContextDialog.ExpandAll=Expand All
SelectRepositoryContextDialog.Title=Select Context Variables
SelectRepositoryContextDialog.View=View...
SelectRepositoryContextGroupDialog.Default=default
SelectRepositoryContextGroupDialog.Messages=\ In the Job, add a nonexistent context group from the repository context
SelectRepositoryContextGroupDialog.Messages= In the Job, add a nonexistent context group from the repository context
SelectRepositoryContextGroupDialog.Title=Add Context Group
TalendTabbedPropertyComposite.compactButton.toolTip=compact view
TalendTabbedPropertyComposite.tableButton.toolTip=table view

View File

@@ -325,7 +325,6 @@ SelectorTableForm.TableType=\u03A4\u03CD\u03C0\u03BF\u03C2
SelectorTableForm.groupTableSettings=\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03A3\u03C7\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2 \u03B3\u03B9\u03B1 \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1
SelectorTableForm.selectAllTables=\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u038C\u03BB\u03C9\u03BD
SelectorTableForm.selectNoneTables=\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u039A\u03B1\u03BD\u03B5\u03BD\u03CC\u03C2
ShowAddedContextdialog.Title=\u03A0\u03C1\u03BF\u03C3\u03C4\u03B9\u03B8\u03AD\u03BD \u03C0\u03BB\u03B1\u03AF\u03C3\u03B9\u03BF
ShowAddedContextdialog.Variables=\u039C\u03B5\u03C4\u03B1\u03B2\u03BB\u03B7\u03C4\u03AD\u03C2
StoppablePreviewLoader.inforLabelText.previewInterrupted=\u0394\u03B9\u03B1\u03BA\u03BF\u03C0\u03AE \u03C0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7\u03C2
TableWizard.windowTitle=\u03A3\u03C7\u03AE\u03BC\u03B1

View File

@@ -105,7 +105,7 @@ DatabaseTableFilterForm.view=VIEW
DatabaseTableForm.AddTable=Add Schema
DatabaseTableForm.checkConnection=Check Connection
DatabaseTableForm.comment=Comment
DatabaseTableForm.connectionFailure=Database connection failure \: "Retrieve Shema" is disable. Press "Check Connection" to restore the situation.
DatabaseTableForm.connectionFailure=Database connection failure : "Retrieve Shema" is disable. Press "Check Connection" to restore the situation.
DatabaseTableForm.connectionFailureTip=Connection failure, check the database settings or contact your database administrator.
DatabaseTableForm.connectionIsDone=Connection successful.
DatabaseTableForm.getDetailedSchema=Push this button to get a detailed schema.
@@ -126,7 +126,7 @@ DatabaseTableForm.guessSchema=Guess Schema
DatabaseTableForm.streamDetach=Stream Detach
DatabaseTableForm.table=Based on table
DatabaseTableForm.tableColumnText.talbe=Table
DatabaseTableForm.tableNoExist=Database connection successful but no table exist \: "Retrieve Shema" is disabled.\nUse a SGBD to create tables and click on "Check Connection" to restore the situation.
DatabaseTableForm.tableNoExist=Database connection successful but no table exist : "Retrieve Shema" is disabled.\nUse a SGBD to create tables and click on "Check Connection" to restore the situation.
DatabaseTableForm.tableTip=Choose a table and use the Retrieve Button or define the Schema manually.
DatabaseTableForm.type=Type \: {0}
DatabaseTableForm.typeTable=Type \: TABLE
@@ -404,8 +404,6 @@ SelectorTableForm.selectAllTables=Select All
SelectorTableForm.selectNoneTables=Select None
ShadowProcessHelper.logError.previewIsNull01=\nThe ShadowProcess use to extract data or metadata on a File don't run.
ShadowProcessHelper.logError.previewIsNull02=\nConfigurationElementsFor("org.talend.repository.filepreview_provider").length \=\= 0 ??
ShowAddedContextdialog.Messages=Should add the following context parameters to the jobs or not?
ShowAddedContextdialog.Title=Added context
ShowAddedContextdialog.Variables=Variables
StoppablePreviewLoader.inforLabelText.previewInterrupted=Preview interrupted
TableWizard.windowTitle=Schema
@@ -546,3 +544,5 @@ DatabaseForm.DataBase=DataBase
FileStep2.stop=Stop
PropertiesWizard.VersionTitle=Change the parent version
PropertiesWizard.PreviousVersion=The TestCases of {0} will point to the previous version. Please use "Edit TestCase Properties" to change the parent version.
ShowAddedContextdialog.dialogMessages=Add the following context parameters to Jobs using this connection?
ShowAddedContextdialog.dialogTitle=Add context parameters

View File

@@ -396,8 +396,6 @@ SelectorTableForm.groupTableSettings=S\u00E9lectionnez le sch\u00E9ma \u00E0 cr\
SelectorTableForm.nameFilter=Filtre sur nom\:
SelectorTableForm.selectAllTables=S\u00E9lectionner tout
SelectorTableForm.selectNoneTables=S\u00E9lectionner aucun(e)
ShowAddedContextdialog.Messages=Ajouter les param\u00E8tres de contexte suivants aux Jobs ?
ShowAddedContextdialog.Title=Contexte ajout\u00E9
ShowAddedContextdialog.Variables=Variables
StoppablePreviewLoader.inforLabelText.previewInterrupted=Aper\u00E7u interrompu
TableWizard.windowTitle=Sch\u00E9ma
@@ -534,4 +532,5 @@ SparkPropertiesDialog.desc=Configurations des propri\u00E9t\u00E9s Spark
SparkPropertiesDialog.parentProperties.title=Propri\u00E9t\u00E9s Spark parent
DatabaseForm.DataBase=Base de donn\u00E9es
FileStep2.stop=Arr\u00EAter
PropertiesWizard.VersionTitle=Modifier la version parente
PropertiesWizard.PreviousVersion=Les TestCases de {0} vont pointer vers la version pr\u00E9c\u00E9dente. Utilisez \"Modifier les propri\u00E9t\u00E9s du TestCase\" pour modifier la version parente.

View File

@@ -401,8 +401,6 @@ SelectorTableForm.nameFilter=Nome filtro\:
SelectorTableForm.selectAllTables=Seleziona tutto
SelectorTableForm.selectNoneTables=Seleziona nulla
ShadowProcessHelper.logError.previewIsNull01=\nIl processo ombra utilizzato per estrarre dati o metadati su un file non \u00E8 stato eseguito.
ShowAddedContextdialog.Messages=\u00C8 il caso di aggiungere i seguente parametri contesto al job oppure no?
ShowAddedContextdialog.Title=Contesto aggiunto
ShowAddedContextdialog.Variables=Variabili
StoppablePreviewLoader.inforLabelText.previewInterrupted=Anteprima interrotta
TableWizard.windowTitle=Schema

View File

@@ -118,7 +118,7 @@ DatabaseTableForm.navigatorTree=\u30B9\u30AD\u30FC\u30DE
DatabaseTableForm.retreiveButtonAlert=\u201D\u30B9\u30AD\u30FC\u30DE\u306E\u53D6\u5F97\u201D\u3092\u4F7F\u7528\u3059\u308B\u305F\u3081\u306B\u306F\u3001\u6700\u521D\u306B\u30C6\u30FC\u30D6\u30EB\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DatabaseTableForm.retreiveButtonConfirmation=\u5909\u66F4\u3092\u78BA\u8A8D\u3057\u307E\u3059\u304B\uFF1F
DatabaseTableForm.retreiveButtonConfirmationMessage=\u30B9\u30AD\u30FC\u30DE\u306E\u8A2D\u5B9A\u3092\u5909\u66F4\u3059\u308B\u3068\u3001\u73FE\u5728\u306E\u30B9\u30AD\u30FC\u30DE\u30D7\u30EC\u30D3\u30E5\u30FC\u3068\u7570\u306A\u308A\u307E\u3059\u3002\u30B9\u30AD\u30FC\u30DE\u306E\u66F4\u65B0\u306F\u5168\u3066\u306E\u30AB\u30EC\u30F3\u30C8\u30C7\u30FC\u30BF\u306B\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059\u3002\u7D99\u7D9A\u3057\u307E\u3059\u304B\uFF1F
DatabaseTableForm.retreiveButtonIsAccessible=\"\u53D6\u5F97\u30DC\u30BF\u30F3\"\u304C\u4F7F\u7528\u53EF\u80FD\u306B\u306A\u308A\u307E\u3057\u305F\u3002
DatabaseTableForm.retreiveButtonIsAccessible=\"\u53D6\u5F97\"\u30DC\u30BF\u30F3\u304C\u4F7F\u7528\u53EF\u80FD\u306B\u306A\u308A\u307E\u3057\u305F\u3002
DatabaseTableForm.retreiveButtonTip=\u30B9\u30AD\u30FC\u30DE\u3092\u5B9A\u7FA9\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u300C\u30B9\u30AD\u30FC\u30DE\u60C5\u5831\u3092\u53D6\u5F97\u300D\u304C\u4F7F\u7528\u3067\u304D\u307E\u3059!
DatabaseTableForm.retreiveButtonUse=\u300C\u30B9\u30AD\u30FC\u30DE\u60C5\u5831\u3092\u53D6\u5F97\u300D\u3067\u73FE\u5728\u306E\u30B9\u30AD\u30FC\u30DE\u60C5\u5831\u3092\u66F4\u65B0\u3067\u304D\u307E\u3059
DatabaseTableForm.retreiveSchema=\u30B9\u30AD\u30FC\u30DE\u306E\u53D6\u5F97
@@ -404,8 +404,6 @@ SelectorTableForm.selectAllTables=\u3059\u3079\u3066\u9078\u629E
SelectorTableForm.selectNoneTables=\u4F55\u3082\u9078\u629E\u3057\u306A\u3044
ShadowProcessHelper.logError.previewIsNull01=\n\u30D5\u30A1\u30A4\u30EB\u4E0A\u306E\u30C7\u30FC\u30BF\u307E\u305F\u306F\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3055\u308C\u3066\u3044\u308BShadowProcess\u304C\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002
ShadowProcessHelper.logError.previewIsNull02=\nConfigurationElementsFor('org.talend.repository.filepreview_provider').length == 0 ??
ShowAddedContextdialog.Messages=\u30B8\u30E7\u30D6\u306B\u6B21\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u52A0\u3048\u308B\u3079\u304D\u3067\u3042\u308B?
ShowAddedContextdialog.Title=\u8FFD\u52A0\u3055\u308C\u305F\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8
ShowAddedContextdialog.Variables=\u5909\u6570
StoppablePreviewLoader.inforLabelText.previewInterrupted=\u30D7\u30EC\u30D3\u30E5\u30FC\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3057\u305F
TableWizard.windowTitle=\u30B9\u30AD\u30FC\u30DE

View File

@@ -209,8 +209,6 @@ SelectorTableForm.Success=\u0423\u0441\u043F\u0435\u0448\u043D\u043E
SelectorTableForm.TableName=\u0418\u043C\u044F
SelectorTableForm.TableType=\u0422\u0438\u043F
SelectorTableForm.selectAllTables=\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435
ShowAddedContextdialog.Messages=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u043B\u0443\u0434\u0443\u044E\u0449\u0438\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443?
ShowAddedContextdialog.Title=\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442
ShowAddedContextdialog.Variables=\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435
TableWizard.windowTitle=\u0421\u0445\u0435\u043C\u0430
TableWizardPage.titleUpdate=\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0445\u0435\u043C\u0443

View File

@@ -404,8 +404,6 @@ SelectorTableForm.selectAllTables=\u5168\u9009
SelectorTableForm.selectNoneTables=\u53D6\u6D88\u5168\u9009
ShadowProcessHelper.logError.previewIsNull01=\\n\u7528\u4E8E\u63D0\u53D6\u6587\u4EF6\u4E2D\u6570\u636E\u6216\u5143\u6570\u636E\u7684 ShadowProcess \u4E0D\u8FD0\u884C\u3002
ShadowProcessHelper.logError.previewIsNull02=\\nConfigurationElementsFor(\"org.talend.repository.filepreview_provider\").length == 0 ??
ShowAddedContextdialog.Messages=\u662F\u5426\u5E94\u5F53\u5C06\u4EE5\u4E0B\u4E0A\u4E0B\u6587\u53C2\u6570\u6DFB\u52A0\u5230\u4F5C\u4E1A\u4E2D\uFF1F
ShowAddedContextdialog.Title=\u5DF2\u6DFB\u52A0\u7684\u4E0A\u4E0B\u6587
ShowAddedContextdialog.Variables=\u53D8\u91CF
StoppablePreviewLoader.inforLabelText.previewInterrupted=\u9884\u89C8\u4E2D\u65AD
TableWizard.windowTitle=Schema

View File

@@ -26,6 +26,7 @@ _UI_BusinessAssignment_type=Assignment
_UI_BaseBusinessItemRelationship_source_feature=Source
_UI_TalendItem_id_feature=Id
_UI_BusinessItem_businessProcess_feature=Business Model
_UI_BidirectionalBusinessItemRelationship_type=Bidirectional Business Item Relationship
_UI_TalendItem_version_feature=Version
_UI_BaseBusinessItemRelationship_target_feature=Target
_UI_Documentation_type=Documentation

View File

@@ -114,3 +114,4 @@ LinksToolbarItem_cloud=Link to Talend cloud
WelcomePageDynamicContentProvider.LatestItemsServices.Title=Services
ComponentsManager.form.install.dialog.restart.title=Restarting Studio
ComponentsManager.form.install.dialog.restart.message=We need to restart studio to finish the installation.\n\nDo you want to restart studio right now?
JavaVersion.CheckError=Java upgrade required, minimal required java version is {0}, current version is {1}.

View File

@@ -10,3 +10,4 @@ ImportExportHandlersManager_importingItemsMessage=Import des \u00E9l\u00E9ments.
ImportExportHandlersManager_importingItemsError=Erreurs lors de l'import
ImportExportHandlersManager_deletingItemsMessage=Supprimer des \u00E9l\u00E9ments...
AbstractImportHandler_nameUsed.differentRepositoryType=Un \u00E9l\u00E9ment du m\u00EAme nom existe d\u00E9j\u00E0. V\u00E9rifiez la Corbeille et videz-la si n\u00E9cessaire.
ImportExportHandlersManager_overrideDelete=Suppression des \u00E9l\u00E9ments existants \u00E0 \u00E9craser...

View File

@@ -27,4 +27,6 @@ ShowErrorsDuringImportItemsDialog_exportLogEntry=Exporter l'entr\u00E9e du log
ShowErrorsDuringImportItemsDialog_confirmOverwrite_message=Le fichier "{0}" existe. L'\u00E9craser ?
ImportItemsWizardPage_ErrorsMessage=L'\u00E9l\u00E9ment '{0}' existe dans une version diff\u00E9rente {1}. V\u00E9rifiez la Corbeille et videz-la si n\u00E9cessaire.
ImportItemsWizardPage_ProgressDialog_ExecutingMessage=Pr\u00E9paration...
ImportItemsWizardPage_internalIdGroup=ID interne
ImportItemsWizardPage_internalIdGroup_alwaysRegenId=Toujours reg\u00E9n\u00E9rer l\'ID \u00E0 l\'import
ImportItemsWizardPage_internalIdGroup_keepOrigId=Conserver l\'ID interne original

View File

@@ -2,6 +2,6 @@ LocalRepositoryFactory.logRetrievingFiles=Retrieving {0} files in {1} sec
LocalRepositoryFactory.illegalArgumentException03=Label cannot be null nor empty
LocalRepositoryFactory.illegalArgumentException02=Path cannot be null
LocalRepositoryFactory.illegalArgumentException01=Type cannot be null
LocalRepositoryFactory.CannotLoadProperty=The Repository local provider was unable to load
LocalRepositoryFactory.CannotLoadProperty=The Repository local provider was unable to load
LocalRepositoryFactory.UserLoginCannotBeNull=User login cannot be null
LocalRepositoryFactory.Property_File_Broken=The property file {0} is broken.

View File

@@ -10,7 +10,7 @@ MdmConceptWizardPage1_select_model=Select one model to create MDM metadata
MdmConceptWizardPage2_mdm_entity=MDM Entity
MdmConceptWizardPage3_mdm_entity=MDM Entity
MDMForm_check=Check
MDMForm_connect_successful=MDM connected successfully\!
MDMForm_connect_successful=MDM connected successfully!
MDMForm_link_para=Link Parameter
MDMForm_pass=Password
MDMForm_pass_null=Password can not be null\!

View File

@@ -2,7 +2,7 @@ repository.metadataFilePositional=File positional
repository.metadataFilePositional.alias=POS
repository.metadataFileRegexp=File regex
repository.metadataFileRegexp.alias=REGX
repository.metadataFileXml=File xml
repository.metadataFileXml=File XML
repository.metadataFileXml.alias=XML
repository.metadataFileLdif=File ldif
repository.metadataFileLdif.alias=LDIF

View File

@@ -60,9 +60,9 @@ CreateFilePositionalAction.action.openTitle=Open file positional
CreateFileRegexpAction.action.createTitle=Create file regex
CreateFileRegexpAction.action.editTitle=Edit file regex
CreateFileRegexpAction.action.openTitle=Open file regex
CreateFileXmlAction.action.createTitle=Create file xml
CreateFileXmlAction.action.editTitle=Edit file xml
CreateFileXmlAction.action.openTitle=Open file xml
CreateFileXmlAction.action.createTitle=Create file XML
CreateFileXmlAction.action.editTitle=Edit file XML
CreateFileXmlAction.action.openTitle=Open file XML
CreateFolderAction.action.title=Create folder
CreateFolderAction.action.toolTipText=Create folder
CreateGenericSchemaAction.createGeneric=Create generic schema
@@ -256,7 +256,7 @@ FileStep2.noresultDetailMessage=Please check right XPathExpression or XML source
FileStep2.previewFailure=Preview error. Some settings must be changed.\nNote\: Preview errors are generally due to a wrong encoding setting.
FileStep2.previewIsDone=Preview successful...
FileStep2.previewProgress=Preview in progress...
FileStep2.quoteDelimitedTip=You cannot use the character " without an escape character. Use \\"
FileStep2.quoteDelimitedTip=You cannot use the character " without an escape character. Use \"
FileStep2.refreshPreview=Refresh Preview
FileStep2.removeEmptyRow=Skip empty row
FileStep2.rowSeparator=Row Separator
@@ -384,7 +384,7 @@ JobScriptsExportWizardPage.extractZipFile=Extract the zip file
JobScriptsExportWizardPage.generatePerlFiles=Generate Perl Files
JobScriptsExportWizardPage.jobPerlScripts=Perl scripts
JobScriptsExportWizardPage.jobJavaScripts=Java classes
JobScriptsExportWizardPage.requiredTalendPerlModules=Required talend modules
JobScriptsExportWizardPage.requiredTalendPerlModules=Required Talend modules
JobScriptsExportWizardPage.shellLauncher=Shell launcher
JobScriptsExportWizardPage.sourceFiles=Source files
JobScriptsExportWizardPage.systemRoutines=System routines
@@ -461,8 +461,8 @@ LoginComposite.Workspace_inuse=Workspace in use, please choose another one.
LoginComposite.TisWorkspace_welcome=Welcome to {0}!
LoginComposite.welcomeTitle=Welcome to Talend Open Studio
LoginComposite.detailMessage=Before you can begin working with Talend, you need to create a project. \nYou can start with a demo project that contains useful examples, or \ncreate an empty project of your own.
LoginComposite.selectADemoProject=Select A Demo Project
LoginComposite.projectTitleTemp=Create A New Project
LoginComposite.selectADemoProject=Select a Demo Project
LoginComposite.projectTitleTemp=Create a New Project
LoginComposite.buttons.advanced=Advanced...
LoginComposite.buttons.changeButton=Change
LoginComposite.label.workspace=Workspace
@@ -707,7 +707,7 @@ ImportItemUtil.message=Cannot import item {0} -> unknown task(s) {1}
ImportItemUtil.persistenceException=A newer version of {0} already exist.
ImportItemUtil.taskLogWarn=Task {0} found in project doesn't exist anymore \!
ImportItemUtil.taskMonitor=apply migration task {0} on item {1}
ImportItemUtil.tdqErrorInfor=Can't import tdq item {0}
ImportItemUtil.tdqErrorInfor=Can't import TDQ item {0}
ImportItemUtil.unknowException=Unknow language: {0}
ImportItemWizardPage.0=The 2 following items haves the same ID, please unselect one of them : \n [{0}] [{1}]
ImportItemWizardPage.ItemsList=Items List
@@ -1116,7 +1116,7 @@ DatabaseForm.hiveEmbedded.metastore.connDriverJar=Connection Driver Jar
DatabaseForm.hiveEmbedded.metastore.connDriverName=Connection Driver Name
DatabaseForm.hbase.settings=Version
DatabaseForm.hbase.distribution=Distribution
DatabaseForm.hbase.distribution.tooltip=Set the hadoop distribution
DatabaseForm.hbase.distribution.tooltip=Set the Hadoop distribution
DatabaseForm.hbase.version=HBase version
DatabaseForm.hbase.version.tooltip=Set the HBase version
DatabaseForm.hbase.distributionAlert=Distribution must be specified
@@ -1203,7 +1203,7 @@ DatabaseForm.hiveExecution.engine=Execution engine
SelectorTableForm.Failed=Failed
DatabaseForm.maprdb.settings=Version
DatabaseForm.maprdb.distribution=Distribution
DatabaseForm.maprdb.distribution.tooltip=Set the hadoop distribution
DatabaseForm.maprdb.distribution.tooltip=Set the Hadoop distribution
DatabaseForm.maprdb.version=MapR-DB version
DatabaseForm.maprdb.version.tooltip=Set the MapR-DB version
DatabaseForm.maprdb.distributionAlert=Distribution must be specified
@@ -1253,3 +1253,6 @@ DatabaseForm.canNotUsableInDataProfiler=some database types are not usable in th
XmlFileStep1Form.ImportSchemaNotExistError=Required reference schema files are missing.
ImportTreeFromXMLAction.ImportSchemaNotExistError=Required reference schema files are missing.
ImportTreeFromXMLAction.schemaFileNotExistDetailTitle=The following files do not exist:
DatabaseForm.impala.driverVersion=Impala Driver
DatabaseForm.impala.driverVersion.tip=Select a hive impala driver
DatabaseForm.checkSchema=The Schema field must be filled when using context mode.\n Click Cancel to complete your connection parameters, click OK to go to the next step.

View File

@@ -1186,6 +1186,7 @@ DatabaseForm.hbaseMaprTPasswordTxt.label=Mot de passe
DatabaseForm.hbaseMaprTClusterTxt.label=Nom du cluster
DatabaseForm.hbaseMaprTDurationTxt.label=Dur\u00E9e du ticket (en s)
DatabaseForm.ZnodeParent.group=Znode parent
DatabaseForm.ZnodeParent.checkBtn=Configurer le znode Zookeeper parent
XmlFileStep1Form.limitToolTip=Limiter la profondeur de la hi\u00E9rarchie \u00E0 {0} niveaux.
DatabaseForm.test=Tester la connexion
DatabaseForm.encryption=Chiffrement

View File

@@ -377,7 +377,7 @@ ParametersValuesDialog_Desc=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B\u30
JobScriptsExportWizardPage.newExportJob0=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 {0}: {1}_{2}
JobScriptsExportWizardPage.newExportJob1=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 {0}: {1}_{2}
JobScriptsExportWizardPage.newExportJobScript={0}\u306E\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u4E2D
JobScriptsExportWizardPage.newExportJobSucessful=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8{0}: {1}_{2}\u304C\u6210\u529F\u3057\u307E\u3057\u305F!
JobScriptsExportWizardPage.newExportJobSucessful=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 {0}: {1}_{2}\u304C\u6210\u529F\u3057\u307E\u3057\u305F!
JobScriptsExportWizardPage.exportResourceError=\u30EA\u30BD\u30FC\u30B9\u306E\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306E\u30A8\u30E9\u30FC
JobScriptsExportWizardPage.newExportSuccess={0} \u306E\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306B\u6210\u529F\u3057\u307E\u3057\u305F\uFF01
JobScriptsExportWizardPage.extractZipFile=ZIP\u30D5\u30A1\u30A4\u30EB\u306E\u89E3\u51CD

View File

@@ -4,7 +4,7 @@ Bundle-Name: Common Runtime Plug-in
Bundle-SymbolicName: org.talend.commons.runtime;singleton:=true
Bundle-Version: 7.4.1.qualifier
Require-Bundle: org.apache.log4j;visibility:=reexport,
org.apache.commons.beanutils,
org.apache.commons.commons-beanutils,
org.apache.commons.collections,
org.apache.commons.httpclient,
org.apache.commons.lang;visibility:=reexport,
@@ -14,7 +14,9 @@ Require-Bundle: org.apache.log4j;visibility:=reexport,
com.ibm.icu,
org.apache.commons.io,
org.talend.utils,
org.eclipse.core.net
org.eclipse.core.net,
org.eclipse.m2e.core,
org.eclipse.m2e.maven.runtime
Export-Package: org.talend.commons,
org.talend.commons.exception,
org.talend.commons.i18n,

View File

@@ -1,7 +1,7 @@
<?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">
<!--
Copyright (C) 2010 Talend Inc. - www.talend.com
<!--
Copyright (C) 2010 Talend Inc. - www.talend.com
-->
<modelVersion>4.0.0</modelVersion>
@@ -30,7 +30,7 @@
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.2</version>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
@@ -92,7 +92,7 @@
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>

View File

@@ -0,0 +1,60 @@
// ============================================================================
//
// Copyright (C) 2006-2020 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.utils;
import java.io.File;
import java.nio.file.Path;
import org.eclipse.m2e.core.MavenPlugin;
public enum MojoType {
CI_BUILDER("org.talend.ci", "builder-maven-plugin", "ci.builder.version"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
CLOUD_PUBLISHER("org.talend.ci", "cloudpublisher-maven-plugin", "cloud.publisher.version"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
SIGNER("org.talend.ci", "signer-maven-plugin", "signer.version"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
OSGI_HELPER("org.talend.ci", "osgihelper-maven-plugin", "osgihelper.version"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
private String groupId;
private String artifactId;
private String versionKey;
private MojoType(String groupId, String artifactId, String versionKey) {
this.groupId = groupId;
this.artifactId = artifactId;
this.versionKey = versionKey;
}
public String getGroupId() {
return groupId;
}
public String getArtifactId() {
return artifactId;
}
public String getVersionKey() {
return versionKey;
}
public String getMojoArtifactIdFolder() {
Path basePath = new File(MavenPlugin.getMaven().getLocalRepositoryPath()).toPath();
return basePath.resolve(getGroupId().replaceAll("\\.", "/")).resolve(getArtifactId()).toString(); //$NON-NLS-1$ //$NON-NLS-2$
}
public String getMojoGAV() {
return getGroupId() + ":" + getArtifactId() + ":" + getVersionKey(); //$NON-NLS-1$ //$NON-NLS-2$
}
}

View File

@@ -15,15 +15,17 @@ package org.talend.commons.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Optional;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
@@ -283,24 +285,28 @@ public class VersionUtils {
return version;
}
public static String getMojoVersion(String mojoKey) {
String version = null;
public static String getMojoVersion(MojoType mojoType) {
String mojoKey = mojoType.getVersionKey();
String version = System.getProperty(mojoKey);
if (StringUtils.isNotBlank(version)) {
return version;
}
String talendVersion = getTalendVersion();
Properties properties = new Properties();
File file = new Path(Platform.getConfigurationLocation().getURL().getPath()).append("mojo_version.properties").toFile(); //$NON-NLS-1$
if (file.exists()) {
try (InputStream inStream = new FileInputStream(file)) {
properties.load(inStream);
version = properties.getProperty(mojoKey);
} catch (IOException e) {
ExceptionHandler.process(e);
}
if (version != null && !version.startsWith(talendVersion)) {
ExceptionHandler
.process(new Exception(
"Incompatible Mojo version:" + mojoKey + "[" + version + "], use default version.")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
version = null;
String majorVersion = StringUtils.substringBeforeLast(talendVersion, "."); //$NON-NLS-1$
String artifactIdFolder = mojoType.getMojoArtifactIdFolder();
Optional<File> optional = Stream.of(new File(artifactIdFolder).listFiles())
.filter(f -> f.isDirectory() && f.getName().startsWith(majorVersion))
.sorted((f1, f2) -> new DefaultArtifactVersion(f2.getName()).compareTo(new DefaultArtifactVersion(f1.getName())))
.findFirst();
if (optional.isPresent()) {
File latestArtifact = optional.get();
String fileName = mojoType.getArtifactId() + "-" + latestArtifact.getName(); //$NON-NLS-1$
if (Stream.of(latestArtifact.listFiles())
.filter(f -> f.getName().equals(fileName + ".jar") || f.getName().equals(fileName + ".pom")) //$NON-NLS-1$ //$NON-NLS-2$
.count() != 2) {
ExceptionHandler.process(new Exception("Can't find plugin artifact " + mojoType.getMojoGAV())); //$NON-NLS-1$
}
version = latestArtifact.getName();
}
// default version
if (StringUtils.isBlank(version)) {
@@ -314,6 +320,7 @@ public class VersionUtils {
version += "-" + revision; //$NON-NLS-1$
}
}
System.setProperty(mojoKey, version);
return version;
}
@@ -323,4 +330,5 @@ public class VersionUtils {
talendVersion = null;
}
}
}

View File

@@ -0,0 +1,18 @@
// ============================================================================
//
// Copyright (C) 2006-2020 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.utils.network;
public interface ITalendNexusPrefConstants {
public static final String NEXUS_TIMEOUT = "NEXUS_TIMEOUT"; //$NON-NLS-1$
}

View File

@@ -26,6 +26,9 @@ import java.util.Enumeration;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.runtime.utils.io.FileCopyUtils;
/**
@@ -44,7 +47,17 @@ public class NetworkUtil {
private static final String HTTP_NETWORK_URL = "https://talend-update.talend.com";
private static final int DEFAULT_TIMEOUT = 4000;
private static final int DEFAULT_NEXUS_TIMEOUT = 20000;// same as preference value
public static final String ORG_TALEND_DESIGNER_CORE = "org.talend.designer.core"; //$NON-NLS-1$
public static boolean isNetworkValid() {
return isNetworkValid(DEFAULT_TIMEOUT);
}
public static boolean isNetworkValid(Integer timeout) {
String disableInternet = System.getProperty(TALEND_DISABLE_INTERNET);
if ("true".equals(disableInternet)) { //$NON-NLS-1$
return false;
@@ -55,8 +68,9 @@ public class NetworkUtil {
conn = (HttpURLConnection) url.openConnection();
conn.setDefaultUseCaches(false);
conn.setUseCaches(false);
conn.setConnectTimeout(4000);
conn.setReadTimeout(4000);
int conntimeout = timeout != null ? timeout.intValue() : DEFAULT_TIMEOUT;
conn.setConnectTimeout(conntimeout);
conn.setReadTimeout(conntimeout);
conn.setRequestMethod("HEAD"); //$NON-NLS-1$
String strMessage = conn.getResponseMessage();
if (strMessage.compareTo("Not Found") == 0) { //$NON-NLS-1$
@@ -73,22 +87,23 @@ public class NetworkUtil {
return true;
}
public static boolean isNetworkValid(String url) {
public static boolean isNetworkValid(String url, Integer timeout) {
if (url == null) {
return isNetworkValid();
return isNetworkValid(timeout);
}
return checkValidWithHttp(url);
return checkValidWithHttp(url, timeout);
}
private static boolean checkValidWithHttp(String urlString) {
private static boolean checkValidWithHttp(String urlString, Integer timeout) {
HttpURLConnection conn = null;
try {
URL url = new URL(urlString);
conn = (HttpURLConnection) url.openConnection();
conn.setDefaultUseCaches(false);
conn.setUseCaches(false);
conn.setConnectTimeout(4000);
conn.setReadTimeout(4000);
int conntimeout = timeout != null ? timeout.intValue() : DEFAULT_TIMEOUT;
conn.setConnectTimeout(conntimeout);
conn.setReadTimeout(conntimeout);
conn.setRequestMethod("HEAD"); //$NON-NLS-1$
conn.getResponseMessage();
} catch (Exception e) {
@@ -101,6 +116,18 @@ public class NetworkUtil {
return true;
}
public static int getNexusTimeout() {
int timeout = DEFAULT_NEXUS_TIMEOUT;
try {
IEclipsePreferences node = InstanceScope.INSTANCE.getNode(ORG_TALEND_DESIGNER_CORE);
timeout = node.getInt(ITalendNexusPrefConstants.NEXUS_TIMEOUT, DEFAULT_NEXUS_TIMEOUT);
} catch (Throwable e) {
ExceptionHandler.process(e);
}
return timeout;
}
public static Authenticator getDefaultAuthenticator() {
try {
Field theAuthenticatorField = Authenticator.class.getDeclaredField("theAuthenticator");

View File

@@ -19,15 +19,18 @@ import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import org.apache.commons.io.FilenameUtils;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.runtime.service.ITaCoKitService;
@@ -62,6 +65,10 @@ public class UpdatesHelper {
public static final String NEW_COMPONENT_PREFIX = "installer$$";
public static final String PRE_TALEND_PATCH = "talend.patch";
public static final String RECORD_SEPERATOR = ",";
public static boolean existArtifacts(File base) {
return new File(base, FILE_ARTIFACTS).exists() || new File(base, FILE_JAR_ARTIFACTS).exists()
|| new File(base, FILE_XZ_ARTIFACTS).exists();
@@ -85,6 +92,9 @@ public class UpdatesHelper {
* will check that existed the plugins folder only.
*/
public static boolean isPlainUpdate(File file) {
if (skipPatchFile(file)) {
return false;
}
if (file != null && file.exists()) {
if (file.isFile() && file.getName().endsWith(FileExtensions.ZIP_FILE_SUFFIX)) {
ZipFileStatus status = new ZipFileStatus(file);
@@ -112,6 +122,9 @@ public class UpdatesHelper {
* need check that contain "artifacts.xml", "content.xml" and "plugins" folder in same place.
*/
public static boolean isUpdateSite(File file) {
if (skipPatchFile(file)) {
return false;
}
if (file != null && file.exists()) {
if (file.isFile() && file.getName().endsWith(FileExtensions.ZIP_FILE_SUFFIX)) {
@@ -173,7 +186,8 @@ public class UpdatesHelper {
}
private static void findUpdateBaseFile(Set<File> foundUpdateFiles, File baseFile) {
if (isPlainUpdate(baseFile) || isUpdateSite(baseFile) && !isComponentUpdateSite(baseFile)) {
if (isPlainUpdate(baseFile)
|| isUpdateSite(baseFile) && !isComponentUpdateSite(baseFile)) {
foundUpdateFiles.add(baseFile);
} else if (baseFile.isDirectory()) {
final File[] listFiles = baseFile.listFiles();
@@ -186,6 +200,9 @@ public class UpdatesHelper {
}
public static boolean isComponentUpdateSite(File file) {
if (skipPatchFile(file)) {
return false;
}
if (file != null && file.exists()) {
if (file.isFile() && file.getName().endsWith(FileExtensions.ZIP_FILE_SUFFIX)) {
ZipFileStatus status = new ZipFileStatus(file) {
@@ -312,4 +329,53 @@ public class UpdatesHelper {
}
return false;
}
public static File getProductFile() {
try {
return new File(Platform.getInstallLocation().getDataArea(FILE_ECLIPSE_PRODUCT).getPath());
} catch (IOException e) {
//
}
return null;
}
public static Properties loadProductProperties(File productFile) {
Properties prop = new Properties();
if (productFile != null && productFile.exists()) {
try (FileInputStream fis = new FileInputStream(productFile)) {
prop.load(fis);
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
return prop;
}
public static Set<String> getPatchesInstalled() {
Set<String> installed = new HashSet<String>();
File productFile = getProductFile();
Properties props = loadProductProperties(productFile);
props.forEach((k, v) -> {
String key = String.valueOf(k);
if (key.startsWith(PRE_TALEND_PATCH)) {
String val = String.valueOf(v);
String[] vals = val.split(RECORD_SEPERATOR);
if (vals.length > 1) {
installed.add(vals[1]);
} else {
installed.add(val);
}
}
});
return installed;
}
public static boolean skipPatchFile(File patchFile) {
Set<String> installedPathNames = getPatchesInstalled();
if (patchFile != null && patchFile.isFile()) {
String patchName = FilenameUtils.getBaseName(patchFile.getName());
return installedPathNames.contains(patchName);
}
return false;
}
}

View File

@@ -117,6 +117,7 @@ public class JobAndNodesParametersRelationshipHandler implements IItemRelationsh
}
}
}
relationsMap.values().removeIf(value -> value.isEmpty());
return relationsMap;
}

View File

@@ -14,6 +14,7 @@ package org.talend.core.repository.handlers;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.talend.core.model.properties.Item;
@@ -43,8 +44,13 @@ public class JobRoutinesItemRelationshipHandler extends AbstractJobItemRelations
Set<Relation> relationSet = new HashSet<Relation>();
if (processType.getParameters() != null && processType.getParameters().getRoutinesParameter() != null) {
Map<String, String> currentSystemRoutinesMap = RelationshipItemBuilder.getInstance().getCurrentSystemRoutinesMap();
for (Object o : processType.getParameters().getRoutinesParameter()) {
RoutinesParameterType itemInfor = (RoutinesParameterType) o;
if (currentSystemRoutinesMap.containsValue(itemInfor.getName())) {
// exclude system routines relation
continue;
}
Relation addedRelation = new Relation();
addedRelation.setId(itemInfor.getName());

View File

@@ -124,6 +124,7 @@ import org.talend.core.repository.constants.Constant;
import org.talend.core.repository.constants.FileConstants;
import org.talend.core.repository.i18n.Messages;
import org.talend.core.repository.recyclebin.RecycleBinManager;
import org.talend.core.repository.utils.ProjectDataJsonProvider;
import org.talend.core.repository.utils.RepositoryPathProvider;
import org.talend.core.repository.utils.XmiResourceManager;
import org.talend.core.runtime.CoreRuntimePlugin;
@@ -131,6 +132,7 @@ import org.talend.core.runtime.repository.item.ItemProductKeys;
import org.talend.core.runtime.services.IMavenUIService;
import org.talend.core.runtime.util.ItemDateParser;
import org.talend.core.service.ICoreUIService;
import org.talend.core.service.IUpdateService;
import org.talend.cwm.helper.SubItemHelper;
import org.talend.cwm.helper.TableHelper;
import org.talend.designer.runprocess.IRunProcessService;
@@ -2082,6 +2084,8 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
ProjectManager.getInstance().getBeforeLogonRecords().clear();
ProjectManager.getInstance().getUpdatedRemoteHandlerRecords().clear();
ProjectDataJsonProvider.checkAndRectifyRelationShipSetting(project.getEmfProject());
// init dynamic distirbution after `beforeLogon`, before loading libraries.
initDynamicDistribution(monitor);
@@ -2153,6 +2157,11 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
fireRepositoryPropertyChange(ERepositoryActionName.PROJECT_PREFERENCES_RELOAD.getName(), null, null);
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUpdateService.class)) {
IUpdateService updateService = GlobalServiceRegister.getDefault().getService(IUpdateService.class);
updateService.syncComponentM2Jars(currentMonitor);
}
IRunProcessService runProcessService = getRunProcessService();
if (runProcessService != null) {
runProcessService.initMavenJavaProject(monitor, project);

View File

@@ -110,7 +110,8 @@ public class RecycleBinManager {
List<IRepositoryViewObject> deletedObjects = new ArrayList<IRepositoryViewObject>();
final EList<TalendItem> deletedItems = projectRecyclebins.get(project.getTechnicalLabel()).getDeletedItems();
List<TalendItem> notDeletedItems = new ArrayList<TalendItem>();
for (TalendItem deletedItem : deletedItems) {
List<TalendItem> dup_deletedItems = new ArrayList<>(deletedItems);
for (TalendItem deletedItem : dup_deletedItems) {
try {
final ERepositoryObjectType type = ERepositoryObjectType.getType(deletedItem.getType());
// ignore the generated doc in recycle bin

View File

@@ -22,6 +22,7 @@ import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
@@ -44,6 +45,7 @@ import org.talend.core.model.properties.Project;
import org.talend.core.model.properties.StatAndLogsSettings;
import org.talend.core.model.properties.Status;
import org.talend.core.model.properties.impl.PropertiesFactoryImpl;
import org.talend.core.model.relationship.RelationshipItemBuilder;
import org.talend.core.repository.constants.FileConstants;
import org.talend.core.repository.recyclebin.RecycleBinManager;
import org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType;
@@ -217,6 +219,68 @@ public class ProjectDataJsonProvider {
}
}
public static void checkAndRectifyRelationShipSetting(Project project) throws PersistenceException {
File file = getSavingConfigurationFile(project.getTechnicalLabel(), FileConstants.RELATIONSHIP_FILE_NAME);
if (file == null || !file.exists()) {
return;
}
List<ItemRelationsJson> itemRelationsJsonsList = null;
TypeReference<List<ItemRelationsJson>> typeReference = new TypeReference<List<ItemRelationsJson>>() {
};
FileInputStream input = null;
try {
input = new FileInputStream(file);
itemRelationsJsonsList = new ObjectMapper().readValue(new FileInputStream(file), typeReference);
} catch (Exception e) {
throw new PersistenceException(e);
} finally {
closeInputStream(input);
}
if (itemRelationsJsonsList == null || itemRelationsJsonsList.isEmpty()) {
return;
}
Set<String> idVersionSet = new HashSet<String>();
List<ItemRelationsJson> relationJsonList = new ArrayList<ItemRelationsJson>();
Map<String, String> currentSystemRoutinesMap = RelationshipItemBuilder.getInstance().getCurrentSystemRoutinesMap();
boolean needModify = false;
for (ItemRelationsJson relationJson : itemRelationsJsonsList) {
ItemRelationJson baseItem = relationJson.getBaseItem();
String idversion = baseItem.getId() + ";" + baseItem.getVersion();
if (idVersionSet.contains(idversion)) {
// in case duplicate
needModify = true;
continue;
}
// remove system routines relation
int originalSize = relationJson.getRelatedItems().size();
relationJson.getRelatedItems()
.removeIf(relatedItem -> RelationshipItemBuilder.ROUTINE_RELATION.equals(relatedItem.getType())
&& currentSystemRoutinesMap.containsValue(relatedItem.getId()));
if (relationJson.getRelatedItems().size() != originalSize) {
needModify = true;
}
if (!relationJson.getRelatedItems().isEmpty()) {
relationJsonList.add(relationJson);
}
idVersionSet.add(idversion);
}
if (needModify) {
// re-load to project
if (relationJsonList != null && !relationJsonList.isEmpty()) {
project.getItemsRelations().clear();
for (ItemRelationsJson json : relationJsonList) {
project.getItemsRelations().add(json.toEmfObject());
}
}
// re-save relationship setting json file
saveRelationShips(project);
}
}
private static void loadMigrationTaskSetting(Project project, IPath projectFolderPath) throws PersistenceException {
File file = getLoadingConfigurationFile(projectFolderPath, FileConstants.MIGRATION_TASK_FILE_NAME);
if (file != null && file.exists()) {

View File

@@ -15,7 +15,8 @@
<dbType type="DOUBLE PRECISION" ignoreLen="true" ignorePre="true" />
<dbType type="UNSIGNED INT" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT" ignoreLen="true" ignorePre="true" />
<dbType type="INT" ignoreLen="true" ignorePre="true" />
<dbType type="INT" ignoreLen="true" ignorePre="true" />
<dbType type="INTEGER" defaultLength="10" ignorePre="false" />
<dbType type="NUMERIC" defaultLength="20" defaultPrecision="10"/>
<dbType type="REAL" />
<dbType type="SMALLINT" ignoreLen="true" ignorePre="true" />
@@ -175,6 +176,11 @@
<talendType type="id_Short"/>
<talendType type="id_Long"/>
</dbType>
<dbType type="INTEGER">
<talendType type="id_Integer" default="true" />
<talendType type="id_Short" />
<talendType type="id_Long" />
</dbType>
<dbType type="NUMERIC">
<talendType type="id_Double"/>
<talendType type="id_Float"/>

View File

@@ -66,4 +66,16 @@
serviceId="IRepositoryContextUpdateService">
</Service>
</extension>
<extension
point="org.talend.core.runtime.saveItemContextLinkService">
<creator
class="org.talend.core.model.context.link.ProcessItemContextLinkService">
</creator>
</extension>
<extension
point="org.talend.core.runtime.saveItemContextLinkService">
<creator
class="org.talend.core.model.context.link.ConnectionItemContextLinkService">
</creator>
</extension>
</plugin>

View File

@@ -20,9 +20,23 @@ import org.talend.core.model.process.INode;
public interface ITDQCryptoFileService extends IService {
/**
*
* @param node
* Get Original value if it is context variable
*/
public void generateCryptoFile(INode node);
public String getOriginalValue(INode node, String input);
/**
* Check whether all the parameter is validation
*/
public boolean checkParameterValidation(String cryptoFilePath, String passwordM1);
/**
* Get the name of encrypty method
*/
public String getCryptoMethod();
/**
* Generate Encrypty file
*/
public void generateCryptoFile(String passwordM1, String cryptoMethod, String cryptoFilePath);
}

View File

@@ -186,6 +186,10 @@ public class ConnParameterKeys {
public static final String CONN_PARA_KEY_HDI_PASSWORD = "CONN_PARA_KEY_HDI_PASSWORD"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_AZURE_HDINSIGHT_STORAGE = "CONN_PARA_KEY_AZURE_HDINSIGHT_STORAGE"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_AZURE_HDINSIGHT_STORAGE_USE_TLS = "CONN_PARA_KEY_AZURE_HDINSIGHT_STORAGE_USE_TLS"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_AZURE_HOSTNAME = "CONN_PARA_KEY_AZURE_HOSTNAME"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_AZURE_CONTAINER = "CONN_PARA_KEY_AZURE_CONTAINER"; //$NON-NLS-1$

View File

@@ -0,0 +1,80 @@
// ============================================================================
//
// Copyright (C) 2006-2020 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.hadoop.version;
import java.util.ArrayList;
import java.util.List;
/**
* created by hcyi on May 27, 2020
* Detailled comment
*
*/
public enum EHdinsightStorage {
ADLS_GEN2("ADLS Gen2"), //$NON-NLS-1$
AZURE_STORAGE("Azure storage"); //$NON-NLS-1$
private String displayName;
EHdinsightStorage(String displayName) {
this.displayName = displayName;
}
public String getName() {
return name();
}
public String getDisplayName() {
return this.displayName;
}
public static List<String> getAllHdinsightStorageDisplayNames() {
return getAllHdinsightStorageNames(true);
}
public static List<String> getAllHdinsightStorageNames(boolean display) {
List<String> names = new ArrayList<String>();
EHdinsightStorage[] values = values();
for (EHdinsightStorage storage : values) {
if (display) {
names.add(storage.getDisplayName());
} else {
names.add(storage.getName());
}
}
return names;
}
public static EHdinsightStorage getHdinsightStoragenByDisplayName(String name) {
return getHdinsightStorageByName(name, true);
}
public static EHdinsightStorage getHdinsightStorageByName(String name, boolean display) {
if (name != null) {
for (EHdinsightStorage storage : values()) {
if (display) {
if (name.equalsIgnoreCase(storage.getDisplayName())) {
return storage;
}
} else {
if (name.equalsIgnoreCase(storage.getName())) {
return storage;
}
}
}
}
return null;
}
}

View File

@@ -113,6 +113,12 @@ public final class ComponentUtilities {
if (value != null) {
String replaceAll = value.replaceAll(oldName2, newName);
t.setValue(replaceAll);
if (!"UNIQUE_NAME".equals(t.getName())) {
if (replaceAll.contains(oldName)) {
replaceAll = replaceAll.replaceAll(oldName, newName);
t.setValue(replaceAll);
}
}
}
}
}

View File

@@ -540,9 +540,9 @@ public class ContextUtils {
return true;
}
if (targetParamType != null && sourceParam != null) {
// if (!sourceParam.getName().equals(targetParamType.getName())) {
// return false;
// }
if (!StringUtils.equals(sourceParam.getName(), targetParamType.getName())) {
return false;
}
if (sourceParam.getComment() == null) {
sourceParam.setComment(""); //$NON-NLS-1$
}
@@ -864,41 +864,43 @@ public class ContextUtils {
* @param contextType
* @return rename map. Key is new name and value is old name.
*/
public static Map<String, String> calculateRenamedMapFromLinkFile(String projectLabel, String itemId, IContext context,
Item repoContextItem) {
public static Map<String, String> calculateRenamedMapFromLinkFile(String projectLabel, String itemId,
List<IContext> contextList) {
Map<String, String> renamedMap = new HashMap<String, String>();
Map<String, Item> idToItemMap = new HashMap<String, Item>();
if (repoContextItem != null) {
idToItemMap.put(repoContextItem.getProperty().getId(), repoContextItem);
}
try {
ItemContextLink itemContextLink = ContextLinkService.getInstance().doLoadContextLinkFromJson(projectLabel, itemId);
if (itemContextLink != null) {
for (Object obj : context.getContextParameterList()) {
if (obj instanceof IContextParameter) {
IContextParameter parameterType = (IContextParameter) obj;
ContextParamLink parameterLink = itemContextLink.findContextParamLinkByName(parameterType.getSource(),
context.getName(), parameterType.getName());
if (parameterLink != null) {
Item item = idToItemMap.get(parameterType.getSource());
if (item == null) {
item = getRepositoryContextItemById(parameterType.getSource());
idToItemMap.put(parameterType.getSource(), item);
}
if (item != null) {
ContextType contextType = ContextUtils.getContextTypeByName(item, context.getName());
ContextParameterType repoParameterType = ContextUtils.getContextParameterTypeById(contextType,
parameterLink.getId(), item instanceof ContextItem);
if (repoParameterType != null
&& !StringUtils.equals(repoParameterType.getName(), parameterType.getName())) {
renamedMap.put(repoParameterType.getName(), parameterType.getName());
if (contextList != null && contextList.size() > 0) {
ItemContextLink itemContextLink = ContextLinkService.getInstance().doLoadContextLinkFromJson(projectLabel,
itemId);
if (itemContextLink != null) {
IContext context = contextList.get(0);
for (Object obj : context.getContextParameterList()) {
if (obj instanceof IContextParameter) {
IContextParameter parameterType = (IContextParameter) obj;
ContextParamLink parameterLink = itemContextLink.findContextParamLinkByName(parameterType.getSource(),
context.getName(), parameterType.getName());
if (parameterLink != null) {
Item item = idToItemMap.get(parameterType.getSource());
if (item == null) {
item = getRepositoryContextItemById(parameterType.getSource());
idToItemMap.put(parameterType.getSource(), item);
}
if (item != null) {
ContextType contextType = ContextUtils.getContextTypeByName(item, context.getName());
ContextParameterType repoParameterType = ContextUtils.getContextParameterTypeById(contextType,
parameterLink.getId(), item instanceof ContextItem);
if (repoParameterType != null
&& !StringUtils.equals(repoParameterType.getName(), parameterType.getName())) {
renamedMap.put(repoParameterType.getName(), parameterType.getName());
}
}
}
}
}
}
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
@@ -943,41 +945,35 @@ public class ContextUtils {
ContextItemParamMap unsameMap, ContextItemParamMap deleteParams, boolean onlySimpleShow, boolean isDefaultContext) {
boolean builtin = true;
String paramName = param.getName();
if (paramLink != null && paramLink.getId() != null && contextType != null) {// Compare use UUID
String paramId = paramLink.getId();
ContextParameterType contextParameterType = null;
contextParameterType = getContextParameterTypeById(contextType, paramId, contextItem instanceof ContextItem);
if (contextParameterType != null) {
if (!StringUtils.equals(contextParameterType.getName(), paramName)) {
if (isDefaultContext) {
Map<String, String> renameMap = repositoryRenamedMap.get(contextItem);
if (renameMap == null) {
renameMap = new HashMap<String, String>();
repositoryRenamedMap.put(contextItem, renameMap);
}
renameMap.put(contextParameterType.getName(), paramName);
}
} else {
if (isDefaultContext) {
if (existedParams.get(contextItem) == null) {
existedParams.put(contextItem, new HashSet<String>());
}
existedParams.get(contextItem).add(paramName);
}
if (onlySimpleShow || !samePropertiesForContextParameter(param, contextParameterType)) {
unsameMap.add(contextItem, paramName);
ContextParameterType contextParameterType = null;
if (paramLink != null && paramLink.getId() != null && contextType != null) {
contextParameterType = getContextParameterTypeById(contextType, paramLink.getId(),
contextItem instanceof ContextItem);
}
if (contextParameterType != null) {// Compare use UUID
if (!StringUtils.equals(contextParameterType.getName(), paramName)) {
if (isDefaultContext) {
Map<String, String> renameMap = repositoryRenamedMap.get(contextItem);
if (renameMap == null) {
renameMap = new HashMap<String, String>();
repositoryRenamedMap.put(contextItem, renameMap);
}
renameMap.put(contextParameterType.getName(), paramName);
}
builtin = false;
} else {
// delete context variable
if (isPropagateContextVariable() && isDefaultContext) {
deleteParams.add(contextItem, paramName);
builtin = false;
if (isDefaultContext) {
if (existedParams.get(contextItem) == null) {
existedParams.put(contextItem, new HashSet<String>());
}
existedParams.get(contextItem).add(paramName);
}
if (onlySimpleShow || !samePropertiesForContextParameter(param, contextParameterType)) {
unsameMap.add(contextItem, paramName);
}
}
builtin = false;
} else { // Compare use Name
final ContextParameterType contextParameterType = ContextUtils.getContextParameterTypeByName(contextType, paramName);
contextParameterType = ContextUtils.getContextParameterTypeByName(contextType, paramName);
if (contextParameterType != null) {
Item repositoryContext = contextItem;
if (isDefaultContext) {

View File

@@ -341,7 +341,8 @@ public class JobContextManager implements IContextManager {
String repositoryContextId = contextParamType.getRepositoryContextId();
String source = IContextParameter.BUILT_IN;
if (repositoryContextId != null && !"".equals(repositoryContextId)) { //$NON-NLS-1$
if (repositoryContextId != null && !"".equals(repositoryContextId) //$NON-NLS-1$
&& !IContextParameter.BUILT_IN.equals(repositoryContextId)) {
Item item = ContextUtils.getContextItemById(contextItemList, repositoryContextId);
if (item == null) {
item = ContextUtils.getRepositoryContextItemById(repositoryContextId);
@@ -585,15 +586,16 @@ public class JobContextManager implements IContextManager {
contextParamType.setRepositoryContextId(contextId);
}
}
} else if (useInternalId) {
} else {
contextParamType.setRepositoryContextId(contextParam.getSource());
}
if (useInternalId) {
String internalId = contextParam.getInternalId();
if (StringUtils.isEmpty(internalId)) {
internalId = EcoreUtil.generateUUID();
contextParamType.setInternalId(internalId);
contextParam.setInternalId(internalId);
} else {
contextParamType.setInternalId(internalId);
}
contextParamType.setInternalId(internalId);
}
}
contextTypeParamList.clear(); // remove old

View File

@@ -0,0 +1,175 @@
package org.talend.core.model.context.link;
// ============================================================================
//
// 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
//
// ============================================================================
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.PersistenceException;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.model.context.ContextUtils;
import org.talend.core.model.properties.ContextItem;
import org.talend.core.model.properties.Item;
import org.talend.cwm.helper.ResourceHelper;
import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
import org.talend.repository.model.IRepositoryService;
public abstract class AbstractItemContextLinkService implements IItemContextLinkService {
@Override
public boolean mergeItemLink(Item item, ItemContextLink backupContextLink, InputStream remoteLinkFileInput) throws PersistenceException {
ItemContextLink remoteContextLink = ContextLinkService.getInstance().doLoadContextLinkFromFile(remoteLinkFileInput);
List<ContextType> contextTypeList = ContextUtils.getAllContextType(item);
return saveContextLink(contextTypeList, item, backupContextLink, remoteContextLink);
}
public synchronized boolean saveContextLink(List<ContextType> contextTypeList, Item item,
ItemContextLink backupContextLink, ItemContextLink remoteContextLink)
throws PersistenceException {
boolean hasLinkFile = false;
String itemId = item.getProperty().getId();
ItemContextLink itemContextLink = new ItemContextLink();
itemContextLink.setItemId(itemId);
Map<String, Item> tempCache = new HashMap<String, Item>();
if (contextTypeList != null && contextTypeList.size() > 0) {
for (Object object : contextTypeList) {
if (object instanceof ContextType) {
ContextType jobContextType = (ContextType) object;
for (Object o : jobContextType.getContextParameter()) {
if (o instanceof ContextParameterType) {
ContextParameterType contextParameterType = (ContextParameterType) o;
String repositoryContextId = contextParameterType.getRepositoryContextId();
if (!ContextUtils.isBuildInParameter(contextParameterType)) {
ContextLink contextLink = itemContextLink
.findContextLink(contextParameterType.getRepositoryContextId(), jobContextType.getName());
if (contextLink == null) {
contextLink = new ContextLink();
contextLink.setContextName(jobContextType.getName());
contextLink.setRepoId(repositoryContextId);
}
ContextParamLink contextParamLink = createParamLink(repositoryContextId, jobContextType.getName(),
contextParameterType.getName(), contextParameterType.getInternalId(), tempCache,
backupContextLink, remoteContextLink);
if (contextParamLink != null) {
contextLink.getParameterList().add(contextParamLink);
}
if (contextLink.getParameterList().size() > 0
&& !itemContextLink.getContextList().contains(contextLink)) {
itemContextLink.getContextList().add(contextLink);
}
}
}
}
}
}
}
if (itemContextLink.getContextList().size() > 0) {
ContextLinkService.getInstance().saveContextLinkToJson(item, itemContextLink);
hasLinkFile = true;
} else {
ContextLinkService.getInstance().deleteContextLinkJsonFile(item);
}
return hasLinkFile;
}
public synchronized boolean saveContextLink(List<ContextType> contextTypeList, Item item) throws PersistenceException {
ItemContextLink backupContextLink = ContextLinkService.getInstance().loadContextLinkFromJson(item);
return saveContextLink(contextTypeList, item, backupContextLink, null);
}
private ContextParamLink createParamLink(String repositoryContextId, String contextName, String paramName, String internalId,
Map<String, Item> tempCache, ItemContextLink oldContextLink, ItemContextLink remoteContextLink) {
ContextParamLink contextParamLink = null;
if (StringUtils.isNotBlank(internalId)) {
contextParamLink = new ContextParamLink();
contextParamLink.setName(paramName);
contextParamLink.setId(internalId);
}
Item contextItem = tempCache.get(repositoryContextId);
if (contextItem == null) {
contextItem = ContextUtils.getRepositoryContextItemById(repositoryContextId);
tempCache.put(repositoryContextId, contextItem);
}
if (contextItem != null) {
ContextType contextType = ContextUtils.getContextTypeByName(contextItem, contextName);
ContextParameterType repoContextParameterType = ContextUtils.getContextParameterTypeByName(contextType, paramName);
if (repoContextParameterType != null && repoContextParameterType.eResource() == null) {
// processItem save before than contextItem, caused eResource null
IRepositoryService repositoryService = GlobalServiceRegister.getDefault().getService(IRepositoryService.class);
try {
repositoryService.getProxyRepositoryFactory().save(contextItem, false);
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
}
String uuID = null;
boolean isFromContextItem = (contextItem instanceof ContextItem);
if (repoContextParameterType != null) {
if (isFromContextItem) {
uuID = ResourceHelper.getUUID(repoContextParameterType);
} else if (repoContextParameterType.getInternalId() != null) {
uuID = repoContextParameterType.getInternalId();
}
}
if (repoContextParameterType == null && remoteContextLink != null) {
ContextParamLink remoteParamLink = remoteContextLink.findContextParamLinkByName(repositoryContextId, contextName,
paramName);
if (remoteParamLink != null && remoteParamLink.getId() != null) {
repoContextParameterType = findContextParamTypeById(contextType, isFromContextItem, remoteParamLink.getId());
uuID = remoteParamLink.getId();
}
}
if (repoContextParameterType == null && oldContextLink != null) {
ContextParamLink oldParamLink = oldContextLink.findContextParamLinkByName(repositoryContextId, contextName,
paramName);
if (oldParamLink != null) {
uuID = oldParamLink.getId();
}
}
if (StringUtils.isNotBlank(uuID)) {
contextParamLink = new ContextParamLink();
contextParamLink.setName(paramName);
contextParamLink.setId(uuID);
}
}
return contextParamLink;
}
protected ContextParameterType findContextParamTypeById(ContextType contextType, boolean isFromContextItem, String id) {
for (Object obj : contextType.getContextParameter()) {
if (obj instanceof ContextParameterType) {
ContextParameterType repoParam = (ContextParameterType) obj;
if (isFromContextItem && StringUtils.equals(id, ResourceHelper.getUUID(repoParam))) {
return repoParam;
}
if (!isFromContextItem && StringUtils.equals(id, repoParam.getInternalId())) {
return repoParam;
}
}
}
return null;
}
}

View File

@@ -0,0 +1,131 @@
// ============================================================================
//
// 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.model.context.link;
import java.io.InputStream;
import org.apache.commons.lang3.StringUtils;
import org.talend.commons.exception.PersistenceException;
import org.talend.core.model.context.ContextUtils;
import org.talend.core.model.metadata.builder.connection.Connection;
import org.talend.core.model.process.IContextParameter;
import org.talend.core.model.properties.ConnectionItem;
import org.talend.core.model.properties.ContextItem;
import org.talend.core.model.properties.Item;
import org.talend.cwm.helper.ResourceHelper;
import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
public class ConnectionItemContextLinkService extends AbstractItemContextLinkService {
@Override
public boolean accept(Item item) {
if (item instanceof ConnectionItem) {
return true;
}
return false;
}
@Override
public boolean saveItemLink(Item item) throws PersistenceException {
if (item instanceof ConnectionItem) {
ConnectionItem connectionItem = (ConnectionItem) item;
return saveContextLink(connectionItem.getConnection(), item, null, null);
}
return false;
}
@SuppressWarnings("unchecked")
private synchronized boolean saveContextLink(Connection connection, Item item, ItemContextLink backupContextLink,
ItemContextLink remoteContextLink) throws PersistenceException {
boolean hasLinkFile = false;
ItemContextLink itemContextLink = new ItemContextLink();
itemContextLink.setItemId(item.getProperty().getId());
if (connection.isContextMode()) {
String contextId = connection.getContextId();
if (StringUtils.isEmpty(contextId) || IContextParameter.BUILT_IN.equals(contextId)) {
return hasLinkFile;
}
ContextLink contextLink = new ContextLink();
contextLink.setContextName(connection.getContextName());
contextLink.setRepoId(contextId);
itemContextLink.getContextList().add(contextLink);
ContextItem contextItem = ContextUtils.getContextItemById2(contextId);
if (contextItem != null) {
ContextType contextType = ContextUtils.getContextTypeByName(contextItem.getContext(),
connection.getContextName());
if (contextType != null) {
for (Object o : contextType.getContextParameter()) {
if (o instanceof ContextParameterType) {
ContextParameterType contextParameterType = (ContextParameterType) o;
ContextParamLink contextParamLink = new ContextParamLink();
contextParamLink.setName(contextParameterType.getName());
contextParamLink.setId(ResourceHelper.getUUID(contextParameterType));
contextLink.getParameterList().add(contextParamLink);
}
}
}
}
// Because we don't know db connection using which values, we save all for merge operation
if (backupContextLink != null) {
for (ContextLink cl : backupContextLink.getContextList()) {
if (StringUtils.equals(cl.getRepoId(), contextId)
&& StringUtils.equals(cl.getContextName(), connection.getContextName())) {
for (ContextParamLink cpl : cl.getParameterList()) {
if (contextLink.getParamLinkByName(cpl.getName()) == null) {
contextLink.getParameterList().add(cpl);
}
}
}
}
}
if (remoteContextLink != null) {
for (ContextLink cl : remoteContextLink.getContextList()) {
if (StringUtils.equals(cl.getRepoId(), contextId)
&& StringUtils.equals(cl.getContextName(), connection.getContextName())) {
for (ContextParamLink cpl : cl.getParameterList()) {
if (contextLink.getParamLinkByName(cpl.getName()) == null) {
contextLink.getParameterList().add(cpl);
}
}
}
}
}
}
if (itemContextLink.getContextList().size() > 0) {
ContextLinkService.getInstance().saveContextLinkToJson(item, itemContextLink);
hasLinkFile = true;
} else {
ContextLinkService.getInstance().deleteContextLinkJsonFile(item);
}
return hasLinkFile;
}
public ItemContextLink loadItemLink(Item item) throws PersistenceException {
return ContextLinkService.getInstance().doLoadContextLinkFromJson(item);
}
@Override
public boolean mergeItemLink(Item item, ItemContextLink backupContextLink, InputStream remoteLinkFileInput)
throws PersistenceException {
if (item instanceof ConnectionItem) {
ConnectionItem connectionItem = (ConnectionItem) item;
ItemContextLink remoteContextLink = ContextLinkService.getInstance().doLoadContextLinkFromFile(remoteLinkFileInput);
return saveContextLink(connectionItem.getConnection(), item, backupContextLink, remoteContextLink);
}
return false;
}
}

View File

@@ -15,12 +15,13 @@ package org.talend.core.model.context.link;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
@@ -34,24 +35,23 @@ import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.utils.workbench.resources.ResourceUtils;
import org.talend.core.model.context.ContextUtils;
import org.talend.core.model.metadata.builder.connection.Connection;
import org.talend.core.model.process.IContextParameter;
import org.talend.core.model.properties.ConnectionItem;
import org.talend.core.model.properties.ContextItem;
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.Project;
import org.talend.cwm.helper.ResourceHelper;
import org.talend.core.model.relationship.Relation;
import org.talend.core.model.relationship.RelationshipItemBuilder;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
import org.talend.repository.ProjectManager;
import org.talend.repository.model.IProxyRepositoryFactory;
import org.talend.repository.model.RepositoryConstants;
import com.fasterxml.jackson.databind.ObjectMapper;
public class ContextLinkService {
private static final Logger LOGGER = Logger.getLogger(ContextLinkService.class);
private static final String CREATOR_EXT_ID = "org.talend.core.runtime.saveItemContextLinkService"; //$NON-NLS-1$
public static final String LINKS_FOLDER_NAME = "links";
@@ -78,162 +78,38 @@ public class ContextLinkService {
return service.saveItemLink(item);
}
}
return doSaveContextLink(item);
return false;
}
public synchronized boolean doSaveContextLink(Item item) throws PersistenceException {
if (item instanceof ProcessItem) {
ProcessItem processItem = (ProcessItem) item;
return saveContextLink(processItem.getProcess().getContext(), item);
} else if (item instanceof JobletProcessItem) {
JobletProcessItem jobletItem = (JobletProcessItem) item;
return saveContextLink(jobletItem.getJobletProcess().getContext(), item);
} else if (item instanceof ConnectionItem) {
ConnectionItem connectionItem = (ConnectionItem) item;
return saveContextLink(connectionItem.getConnection(), item);
public synchronized boolean mergeContextLink(Item item, ItemContextLink backupContextLink, InputStream remoteLinkFile)
throws PersistenceException {
for (IItemContextLinkService service : registeredService) {
if (service.accept(item)) {
return service.mergeItemLink(item, backupContextLink, remoteLinkFile);
}
}
return false;
}
@SuppressWarnings("unchecked")
private synchronized boolean saveContextLink(Connection connection, Item item) throws PersistenceException {
boolean hasLinkFile = false;
ItemContextLink itemContextLink = new ItemContextLink();
itemContextLink.setItemId(item.getProperty().getId());
if (connection.isContextMode()) {
String contextId = connection.getContextId();
if (StringUtils.isEmpty(contextId) || IContextParameter.BUILT_IN.equals(contextId)) {
return hasLinkFile;
}
ContextLink contextLink = new ContextLink();
contextLink.setContextName(connection.getContextName());
contextLink.setRepoId(contextId);
itemContextLink.getContextList().add(contextLink);
ContextItem contextItem = ContextUtils.getContextItemById2(contextId);
if (contextItem != null) {
ContextType contextType = ContextUtils.getContextTypeByName(contextItem.getContext(),
connection.getContextName());
if (contextType != null) {
for (Object o : contextType.getContextParameter()) {
if (o instanceof ContextParameterType) {
ContextParameterType contextParameterType = (ContextParameterType) o;
ContextParamLink contextParamLink = new ContextParamLink();
contextParamLink.setName(contextParameterType.getName());
contextParamLink.setId(ResourceHelper.getUUID(contextParameterType));
contextLink.getParameterList().add(contextParamLink);
}
}
}
public boolean isSupportContextLink(Item item) {
for (IItemContextLinkService service : registeredService) {
if (service.accept(item)) {
return true;
}
}
if (itemContextLink.getContextList().size() > 0) {
saveContextLinkToJson(item, itemContextLink);
hasLinkFile = true;
} else {
deleteContextLinkJsonFile(item);
}
return hasLinkFile;
return false;
}
public synchronized boolean saveContextLink(List<ContextType> contextTypeList, Item item) throws PersistenceException {
boolean hasLinkFile = false;
String itemId = item.getProperty().getId();
ItemContextLink itemContextLink = new ItemContextLink();
itemContextLink.setItemId(itemId);
Map<String, Item> tempCache = new HashMap<String, Item>();
if (contextTypeList != null && contextTypeList.size() > 0) {
ItemContextLink backupContextLink = this.loadContextLinkFromJson(item);
for (Object object : contextTypeList) {
if (object instanceof ContextType) {
ContextType jobContextType = (ContextType) object;
for (Object o : jobContextType.getContextParameter()) {
if (o instanceof ContextParameterType) {
ContextParameterType contextParameterType = (ContextParameterType) o;
String repositoryContextId = contextParameterType.getRepositoryContextId();
if (StringUtils.isEmpty(repositoryContextId)
|| IContextParameter.BUILT_IN.equals(repositoryContextId)) {
ContextLink contextLink = itemContextLink.findContextLink(item.getProperty().getId(),
jobContextType.getName());
if (contextLink == null) {
contextLink = new ContextLink();
contextLink.setContextName(jobContextType.getName());
contextLink.setRepoId(itemId);
itemContextLink.getContextList().add(contextLink);
}
ContextParamLink contextParamLink = createParamLink(itemId, jobContextType.getName(),
contextParameterType.getName(), contextParameterType.getInternalId(), tempCache,
backupContextLink);
contextLink.getParameterList().add(contextParamLink);
} else {
ContextLink contextLink = itemContextLink
.findContextLink(contextParameterType.getRepositoryContextId(), jobContextType.getName());
if (contextLink == null) {
contextLink = new ContextLink();
contextLink.setContextName(jobContextType.getName());
contextLink.setRepoId(repositoryContextId);
itemContextLink.getContextList().add(contextLink);
}
ContextParamLink contextParamLink = createParamLink(repositoryContextId, jobContextType.getName(),
contextParameterType.getName(), contextParameterType.getInternalId(), tempCache,
backupContextLink);
contextLink.getParameterList().add(contextParamLink);
}
}
}
}
}
}
if (itemContextLink.getContextList().size() > 0) {
saveContextLinkToJson(item, itemContextLink);
hasLinkFile = true;
} else {
deleteContextLinkJsonFile(item);
}
return hasLinkFile;
}
@SuppressWarnings("unchecked")
private ContextParamLink createParamLink(String repositoryContextId, String contextName, String paramName, String internalId,
Map<String, Item> tempCache, ItemContextLink oldContextLink) {
ContextParamLink contextParamLink = new ContextParamLink();
contextParamLink.setName(paramName);
contextParamLink.setId(internalId);
Item contextItem = tempCache.get(repositoryContextId);
if (contextItem == null) {
contextItem = ContextUtils.getRepositoryContextItemById(repositoryContextId);
tempCache.put(repositoryContextId, contextItem);
}
if (contextItem != null) {
ContextType contextType = ContextUtils.getContextTypeByName(contextItem, contextName);
ContextParameterType repoContextParameterType = ContextUtils.getContextParameterTypeByName(contextType, paramName);
String uuID = null;
if(repoContextParameterType != null) {
if (contextItem instanceof ContextItem) {
uuID = ResourceHelper.getUUID(repoContextParameterType);
} else if (repoContextParameterType.getInternalId() != null) {
uuID = repoContextParameterType.getInternalId();
}
}
if (repoContextParameterType == null && oldContextLink != null) {
ContextParamLink oldParamLink = oldContextLink.findContextParamLinkByName(repositoryContextId, contextName,
paramName);
if (oldParamLink != null) {
uuID = oldParamLink.getId();
}
}
contextParamLink.setId(uuID);
}
return contextParamLink;
}
private synchronized void saveContextLinkToJson(Item item, ItemContextLink itemContextLink) throws PersistenceException {
public synchronized void saveContextLinkToJson(Item item, ItemContextLink itemContextLink) throws PersistenceException {
IFolder linksFolder = getLinksFolder(getItemProjectLabel(item));
if (!linksFolder.exists()) {
ResourceUtils.createFolder(linksFolder);
}
IFile linkFile = calContextLinkFile(item);
saveContextLinkToJson(linkFile, itemContextLink);
}
public synchronized void saveContextLinkToJson(IFile linkFile, ItemContextLink itemContextLink) throws PersistenceException {
ObjectMapper objectMapper = new ObjectMapper();
try {
String content = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(itemContextLink);
@@ -296,6 +172,25 @@ public class ContextLinkService {
return contextLink;
}
public synchronized ItemContextLink doLoadContextLinkFromFile(InputStream inputStream) throws PersistenceException {
if (inputStream == null) {
return null;
}
ItemContextLink contextLink = null;
try {
contextLink = new ObjectMapper().readValue(inputStream, ItemContextLink.class);
} catch (IOException e) {
throw new PersistenceException(e);
} finally {
try {
inputStream.close();
} catch (IOException e) {
LOGGER.info("Close input stream failed.");
}
}
return contextLink;
}
public synchronized void deleteContextLinkJsonFile(Item item) throws PersistenceException {
IFile linkFile = calContextLinkFile(item);
if (linkFile != null && linkFile.exists()) {
@@ -307,6 +202,74 @@ public class ContextLinkService {
}
}
public synchronized void updateRelatedContextParameterId(String sourceId, Map<String, String> repositoryIdChangedMap,
Map<String, Map<String, String>> changedContextParameterId) throws PersistenceException {
List<Relation> relationList = RelationshipItemBuilder.getInstance()
.getItemsHaveRelationWith(sourceId, RelationshipItemBuilder.LATEST_VERSION, false);
for (Relation relation : relationList) {
String id = relation.getId();
IFile linkFile = calContextLinkFile(ProjectManager.getInstance().getCurrentProject().getTechnicalLabel(), id);
ItemContextLink itemContextLink = doLoadContextLinkFromFile(linkFile);
String newRepoId = null;
boolean isModified = false;
if (repositoryIdChangedMap != null && repositoryIdChangedMap.containsKey(sourceId)) {
newRepoId = repositoryIdChangedMap.get(sourceId);
}
if (itemContextLink != null) {
for (ContextLink contextLink : itemContextLink.getContextList()) {
for (String repoId : changedContextParameterId.keySet()) {
if (StringUtils.equals(repoId, contextLink.getRepoId())) {
Map<String, String> oldToNewId = changedContextParameterId.get(repoId);
for (String oldId : oldToNewId.keySet()) {
ContextParamLink paramLink = contextLink.getParamLinkById(oldId);
if (paramLink != null) {
paramLink.setId(oldToNewId.get(oldId));
isModified = true;
}
}
}
if (sourceId.equals(repoId) && newRepoId != null) {
isModified = true;
contextLink.setRepoId(newRepoId);
}
}
}
if (isModified) {
saveContextLinkToJson(linkFile, itemContextLink);
}
}
isModified = false;
if (newRepoId != null) {
Item relatedItem = ContextUtils.getRepositoryContextItemById(id);
if (relatedItem != null) {
List contextTypes = ContextUtils.getAllContextType(relatedItem);
if (contextTypes != null) {
for (Object object : contextTypes) {
if (object instanceof ContextType) {
ContextType context = (ContextType) object;
for (Object obj : context.getContextParameter()) {
if (obj instanceof ContextParameterType) {
ContextParameterType parameterType = (ContextParameterType) obj;
if (!ContextUtils.isBuildInParameter(parameterType)
&& sourceId.equals(parameterType.getRepositoryContextId())) {
parameterType.setRepositoryContextId(newRepoId);
isModified = true;
}
}
}
}
}
}
}
if (isModified) {
IProxyRepositoryFactory factory = CoreRuntimePlugin.getInstance().getProxyRepositoryFactory();
factory.save(relatedItem, false);
}
}
}
}
public static IFile calContextLinkFile(Item item) throws PersistenceException {
if (item == null) {
return null;

View File

@@ -12,6 +12,8 @@
// ============================================================================
package org.talend.core.model.context.link;
import java.io.InputStream;
import org.talend.commons.exception.PersistenceException;
import org.talend.core.model.properties.Item;
@@ -23,4 +25,7 @@ public interface IItemContextLinkService {
ItemContextLink loadItemLink(Item item) throws PersistenceException;
boolean mergeItemLink(Item item, ItemContextLink backupContextLink, InputStream otherVersionLinkFile)
throws PersistenceException;
}

View File

@@ -59,6 +59,18 @@ public class ItemContextLink {
return null;
}
public ContextParamLink findContextParamLinkByIdIgnoreContextName(String repoContextId, String paramId) {
for (ContextLink contextLink : contextList) {
if (StringUtils.equals(repoContextId, contextLink.getRepoId())) {
ContextParamLink paramLink = contextLink.getParamLinkById(paramId);
if (paramLink != null) {
return paramLink;
}
}
}
return null;
}
public ContextLink findContextLink(String repoContextId, String contextName) {
for (ContextLink contextLink : contextList) {
if ((repoContextId == null || StringUtils.equals(repoContextId, contextLink.getRepoId()))

View File

@@ -0,0 +1,47 @@
package org.talend.core.model.context.link;
// ============================================================================
//
// 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
//
// ============================================================================
import org.talend.commons.exception.PersistenceException;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.JobletProcessItem;
import org.talend.core.model.properties.ProcessItem;
public class ProcessItemContextLinkService extends AbstractItemContextLinkService {
@Override
public boolean accept(Item item) {
if (item instanceof ProcessItem || item instanceof JobletProcessItem) {
return true;
}
return false;
}
@Override
public boolean saveItemLink(Item item) throws PersistenceException {
if (item instanceof ProcessItem) {
ProcessItem processItem = (ProcessItem) item;
return saveContextLink(processItem.getProcess().getContext(), item);
} else if (item instanceof JobletProcessItem) {
JobletProcessItem jobletItem = (JobletProcessItem) item;
return saveContextLink(jobletItem.getJobletProcess().getContext(), item);
}
return false;
}
public ItemContextLink loadItemLink(Item item) throws PersistenceException {
return ContextLinkService.getInstance().doLoadContextLinkFromJson(item);
}
}

View File

@@ -47,6 +47,10 @@ public enum EParameterNameForComponent {
PARA_NAME_HDINSIGHT_PASSWORD("HDINSIGHT_PASSWORD"), //$NON-NLS-1$
PARA_NAME_HDINSIGHT_STORAGE("HDINSIGHT_STORAGE"), //$NON-NLS-1$
PARA_NAME_HDINSIGHT_STORAGE_USE_TLS("HDINSIGHT_STORAGE_USE_TLS"), //$NON-NLS-1$
PARA_NAME_WASB_HOST("WASB_HOST"), //$NON-NLS-1$
PARA_NAME_WASB_CONTAINER("WASB_CONTAINER"), //$NON-NLS-1$

View File

@@ -1019,7 +1019,7 @@ public class RepositoryToComponentProperty {
// return getAppropriateValue(connection, connection.getUsername());
// }
if (value.equals("PASSWORD")) { //$NON-NLS-1$
return getAppropriateValue(connection, connection.getValue(connection.getPassword(), false));
return getAppropriateValue(connection,connection.getValue(connection.getPassword(), false).replace("\"", "\\\""));
}
if (value.equals("NULL_CHAR")) { //$NON-NLS-1$
return getAppropriateValue(connection, connection.getNullChar());
@@ -1765,6 +1765,9 @@ public class RepositoryToComponentProperty {
if ("IMPALA_DRIVER".equals(value)) {
return connection.getParameters().get(ConnParameterKeys.IMPALA_DRIVER);
}
if (StringUtils.equals("MAPPING", value)) {//$NON-NLS-1$
return connection.getDbmsId();
}
return null;
}

View File

@@ -43,6 +43,7 @@ import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.PropertiesFactory;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.routines.RoutinesUtil;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.runtime.i18n.Messages;
import org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType;
@@ -130,6 +131,8 @@ public class RelationshipItemBuilder {
private Map<Relation, Set<Relation>> referencesItemsRelations;
private Map<String, String> systemRoutinesMap;
private boolean loaded = false;
private boolean loading = false;
@@ -219,6 +222,28 @@ public class RelationshipItemBuilder {
this.proxyRepositoryFactory = proxyRepositoryFactory;
}
/**
*
* Current System Routines Map, key: routine id, value: routine name
*
* @return
*/
public Map<String, String> getCurrentSystemRoutinesMap() {
if (systemRoutinesMap != null && !systemRoutinesMap.isEmpty()) {
return systemRoutinesMap;
}
if (systemRoutinesMap == null) {
systemRoutinesMap = new HashMap<String, String>();
}
List<IRepositoryViewObject> currentSystemRoutines = RoutinesUtil.getCurrentSystemRoutines();
for (IRepositoryViewObject object : currentSystemRoutines) {
systemRoutinesMap.put(object.getProperty().getId(), object.getProperty().getLabel());
}
return systemRoutinesMap;
}
/**
* Look for every linked items who use the selected id, no matter the version. Usefull when want to delete an item
* since it will delete every versions.
@@ -242,6 +267,10 @@ public class RelationshipItemBuilder {
* @return
*/
public List<Relation> getItemsHaveRelationWith(String itemId, String version) {
return getItemsHaveRelationWith(itemId, version, true);
}
public List<Relation> getItemsHaveRelationWith(String itemId, String version, boolean withReferenceProject) {
if (!loaded) {
loadRelations();
}
@@ -251,12 +280,13 @@ public class RelationshipItemBuilder {
if (itemsRelations != null) {
relations.addAll(itemsRelations);
}
itemsRelations = getItemsHaveRelationWith(referencesItemsRelations, itemId, version);
if (itemsRelations != null) {
relations.addAll(itemsRelations);
if (withReferenceProject) {
itemsRelations = getItemsHaveRelationWith(referencesItemsRelations, itemId, version);
if (itemsRelations != null) {
relations.addAll(itemsRelations);
}
}
return new ArrayList<Relation>(relations);
}
/**
@@ -757,7 +787,8 @@ public class RelationshipItemBuilder {
for (ItemRelations relations : oldRelations) {
boolean isIdSame = relations.getBaseItem().getId().equals(relation.getId());
boolean isVersionSame = StringUtils.equals(relations.getBaseItem().getVersion(), relation.getVersion());
if (isIdSame && isVersionSame) {
boolean isTypeSame = StringUtils.equals(relations.getBaseItem().getType(), relation.getType());
if (isIdSame && isVersionSame && isTypeSame) {
usedList.add(relations);
itemRelations = relations;
exist = true;

View File

@@ -750,6 +750,17 @@ public abstract class RepositoryUpdateManager {
}
}
ERepositoryObjectType jsonType = ERepositoryObjectType.valueOf("json");
if (jsonType != null) {
List<IRepositoryViewObject> jsonConnList = FACTORY.getAll(jsonType);
for (IRepositoryViewObject obj : jsonConnList) {
Item item = obj.getProperty().getItem();
if (item instanceof ConnectionItem) {
updateConnectionContextParam((ConnectionItem) item, citem, valueMap);
}
}
}
List<IRepositoryViewObject> sapConnList = FACTORY.getAll(ERepositoryObjectType.METADATA_SAPCONNECTIONS, true);
for (IRepositoryViewObject obj : sapConnList) {
Item item = obj.getProperty().getItem();

View File

@@ -307,6 +307,13 @@ public class RepositoryUpdateManagerHelper {
processRep.addAll(factory.getAll(sparkStreamJoblet, true));
}
List<ERepositoryObjectType> testcases = ERepositoryObjectType.getAllTypesOfTestContainer();
for (ERepositoryObjectType testcase : testcases) {
if (testcase != null) {
processRep.addAll(factory.getAll(testcase, true));
}
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}

View File

@@ -36,10 +36,8 @@ import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.core.prefs.ITalendCorePrefConstants;
import org.talend.commons.utils.network.NetworkUtil;
import org.talend.core.runtime.maven.MavenArtifact;
/**
@@ -48,10 +46,7 @@ import org.talend.core.runtime.maven.MavenArtifact;
*/
public class NexusServerUtils {
/**
*
*/
public static final String ORG_TALEND_DESIGNER_CORE = "org.talend.designer.core"; //$NON-NLS-1$
public static final String ORG_TALEND_DESIGNER_CORE = NetworkUtil.ORG_TALEND_DESIGNER_CORE;
public static final int CONNECTION_OK = 200;
@@ -69,9 +64,7 @@ public class NexusServerUtils {
* @return
*/
public static int getTimeout() {
IEclipsePreferences node = InstanceScope.INSTANCE.getNode(ORG_TALEND_DESIGNER_CORE);
int timeout = node.getInt(ITalendCorePrefConstants.NEXUS_TIMEOUT, 20000);
return timeout;
return NetworkUtil.getNexusTimeout();
}
public static boolean checkConnectionStatus(String nexusUrl, String repositoryId, final String userName, final String password) {

View File

@@ -12,6 +12,8 @@
// ============================================================================
package org.talend.core.prefs;
import org.talend.commons.utils.network.ITalendNexusPrefConstants;
/**
* Core preferences. Detailled comment <br/>
*
@@ -190,7 +192,7 @@ public interface ITalendCorePrefConstants {
public static final String PERFORMANCE_JAVA_PROCESS_CODE_FORMATE_TIMEOUT = "PERFORMANCE_JAVA_PROCESS_CODE_FORMATE_TIMEOUT"; //$NON-NLS-1$
public static final String NEXUS_TIMEOUT = "NEXUS_TIMEOUT"; //$NON-NLS-1$
public static final String NEXUS_TIMEOUT = ITalendNexusPrefConstants.NEXUS_TIMEOUT;
public static final String NEXUS_REFRESH_FREQUENCY = "NEXUS_REFRESH_FREQUENCY"; //$NON-NLS-1$

View File

@@ -15,6 +15,7 @@ package org.talend.core.runtime.evaluator;
import java.util.List;
import org.apache.commons.lang3.StringEscapeUtils;
import org.talend.core.model.utils.ContextParameterUtils;
import org.talend.core.runtime.util.GenericTypeUtils;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.daikon.properties.property.Property;
@@ -28,6 +29,10 @@ import org.talend.daikon.properties.property.StringProperty;
public abstract class AbstractPropertyValueEvaluator implements PropertyValueEvaluator {
public Object getTypedValue(Property property, Object rawValue) {
return getTypedValue(property, null, rawValue);
}
public Object getTypedValue(Property property, Object storedValue, Object rawValue) {
if (GenericTypeUtils.isSchemaType(property)) {
return rawValue;
}
@@ -105,6 +110,12 @@ public abstract class AbstractPropertyValueEvaluator implements PropertyValueEva
String stringStoredValue = TalendQuoteUtils.removeQuotes(stringValue);
for (Object possibleValue : possibleValues) {
if (possibleValue.toString().equals(stringStoredValue)) {
// Update since enum type set as context for tcompv0 .
String currentStoredValue = String.valueOf(storedValue);
if (storedValue != null && ContextParameterUtils.isContainContextParam(currentStoredValue)) {
property.setTaggedValue("IS_CONTEXT_MODE", false);
property.setValue(possibleValue);
}
return possibleValue;
}
}

View File

@@ -12,10 +12,13 @@
// ============================================================================
package org.talend.core.service;
import org.eclipse.core.runtime.IProgressMonitor;
import org.talend.core.IService;
public interface IUpdateService extends IService {
boolean checkComponentNexusUpdate();
void syncComponentM2Jars(IProgressMonitor monitor);
}

View File

@@ -433,7 +433,17 @@ public class ConnectionParameters {
* @param password the password to set
*/
public void setPassword(String password) {
this.password = TextUtil.removeQuots(password);
this.password = TextUtil.removeQuotsInPassword(password,false).replaceAll("\\\\\"", "\"");
if (!isShowDialog) {
isShowDialog = ContextParameterUtils.isContainContextParam(password);
}
}
public void setPassword(String password,boolean containContextParam) {
this.password = TextUtil.removeQuotsInPassword(password,containContextParam).replaceAll("\\\\\"", "\"");
if (!isShowDialog) {
isShowDialog = ContextParameterUtils.isContainContextParam(password);
}

View File

@@ -215,6 +215,22 @@ public class TextUtil {
}
}
public static String removeQuotsInPassword(String query,boolean containContextParam) {
if (query == null) {
return ""; //$NON-NLS-1$
}
if (ConnectionParameters.isJavaProject()) {
if (!containContextParam && query.startsWith("\"") && query.endsWith("\"") && query.length() > 1) { //$NON-NLS-1$ //$NON-NLS-2$
return query.substring(1, query.length() - 1);
} else {
return query;
}
} else {
return query;
}
}
public static String getDialogTitle() {
return dialogTitle;
}

View File

@@ -142,10 +142,10 @@ public final class TalendQuoteUtils {
if (text == null) {
return null;
}
if (!text.startsWith(quote)) {
if (!text.startsWith(quote)||text.startsWith("\\\"")) {
text = quote + text;
}
if (!text.endsWith(quote) || (quote != null && quote.equals(text))) {
if (!text.endsWith(quote)||text.endsWith("\\\"") || (quote != null && quote.equals(text))) {
text = text + quote;
}
return text;

View File

@@ -4,7 +4,7 @@ Bundle-Name: Datatools XML Plug-in
Bundle-SymbolicName: org.talend.datatools.xml
Bundle-Version: 7.4.1.qualifier
Require-Bundle: org.eclipse.xsd,
org.apache.commons.beanutils,
org.apache.commons.commons-beanutils,
org.apache.commons.lang,
javax.wsdl;bundle-version="1.6.2",
org.talend.libraries.apache.axis2,

View File

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

View File

@@ -18,7 +18,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -49,6 +48,7 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.m2e.core.MavenPlugin;
import org.eclipse.m2e.core.embedder.IMaven;
import org.talend.commons.exception.CommonExceptionHandler;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.utils.VersionUtils;
@@ -636,8 +636,11 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
jobCoordinate.add(getJobCoordinate(currentJobProperty));
// children jobs without test cases
Set<JobInfo> childrenJobInfo = !hasLoopDependency() ? processor.getBuildChildrenJobs().stream().filter(j -> !j.isTestContainer()).collect(Collectors.toSet()) : Collections.emptySet();
childrenJobInfo.forEach(j -> jobCoordinate.add(getJobCoordinate(j.getProcessItem().getProperty())));
Set<JobInfo> childrenJobInfo = processor.getBuildChildrenJobs().stream().filter(j -> !j.isTestContainer())
.collect(Collectors.toSet());
if (!hasLoopDependency()) {
childrenJobInfo.forEach(j -> jobCoordinate.add(getJobCoordinate(j.getProcessItem().getProperty())));
}
// talend libraries and codes
String projectGroupId = PomIdsHelper.getProjectGroupId(ProjectManager.getInstance().getProject(currentJobProperty).getTechnicalLabel());
@@ -873,6 +876,7 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
}
IMaven maven = MavenPlugin.getMaven();
ArtifactRepository repository = maven.getLocalRepository();
boolean isDIJob = ERepositoryObjectType.getItemType(getJobProcessor().getProperty().getItem()) == ERepositoryObjectType.PROCESS;
for (Dependency dependency : duplicateDependencies) {
if (((SortableDependency) dependency).isAssemblyOptional()) {
continue;
@@ -881,6 +885,10 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
dependency.getVersion(), dependency.getType(), dependency.getClassifier());
Path path = new File(repository.getBasedir()).toPath().resolve(sourceLocation);
sourceLocation = path.toString();
if (isDIJob && !new File(sourceLocation).exists()) {
CommonExceptionHandler.warn("Job dependency [" + sourceLocation + "] does not exist!");
continue;
}
String destName = path.getFileName().toString();
Node fileNode = document.createElement("file");
filesNode.appendChild(fileNode);

View File

@@ -0,0 +1 @@
lib/commons-beanutils-1.9.4.jar

View File

@@ -47,7 +47,7 @@ Export-Package: org.apache.commons.cli2,
org.apache.commons.text.similarity,
org.apache.commons.validator;version="1.5.1",
org.apache.commons.validator.routines;version="1.5.1"
Require-Bundle: org.apache.commons.beanutils;visibility:=reexport,
Require-Bundle: org.apache.commons.commons-beanutils;visibility:=reexport,
org.apache.commons.logging;bundle-version="1.2.0";visibility:=reexport,
org.apache.commons.lang3;bundle-version="3.4.0";visibility:=reexport
Bundle-ActivationPolicy: lazy

View File

@@ -8,4 +8,5 @@ bin.includes = META-INF/,\
lib/commons-math3-3.3.jar,\
lib/commons-validator-1.5.1.jar,\
lib/commons-pool2-2.4.2.jar,\
lib/commons-text-1.1.jar
lib/commons-text-1.1.jar,\
lib/commons-beanutils-1.9.4.jar

View File

@@ -9,4 +9,32 @@
</parent>
<artifactId>org.talend.libraries.apache.common</artifactId>
<packaging>eclipse-plugin</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-maven-repository</id>
<phase>generate-sources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${project.basedir}/lib</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.4</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -1,4 +1,4 @@
xmlschema-core-2.0.1.jar
xmlbeans-2.3.0.jar
xmlbeans-2.6.0.jar
xercesImpl-2.4.0.jar
xercesImpl-2.12.0.jar

View File

@@ -41,16 +41,11 @@
<artifactId>xmlbeans</artifactId>
<version>3.1.0</version>
</artifactItem>
<artifactItem>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.4.0</version>
</artifactItem>
<artifactItem>
<!-- same as xercesImpl.jar-->
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.9.0</version>
<version>2.12.0</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.ws.xmlschema</groupId>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/xercesImpl.jar"/>
<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"/>

View File

@@ -9,7 +9,6 @@ Bundle-ClassPath: .,
lib/castor-1.0.3.jar,
lib/jakarta-oro-2.0.8.jar,
lib/xmlbeans-2.3.0.jar,
lib/xercesImpl.jar,
lib/xml-apis.jar
Bundle-Vendor: .Talend SA.
Require-Bundle: org.apache.log4j;resolution:=optional,

View File

@@ -3,7 +3,6 @@ bin.includes = META-INF/,\
.,\
licences/,\
lib/,\
lib/xercesImpl.jar,\
lib/xml-apis.jar
bin.excludes = libs_not_used/commons-betwixt-0.8.jar,\
libs_not_used/commons-digester-1.7.jar,\

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.6.jar"/>
<classpathentry exported="true" kind="lib" path="lib/dom4j-2.1.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/dom4j-2.1.3.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@@ -5,7 +5,7 @@ Bundle-SymbolicName: org.talend.libraries.dom4j-jaxen;singleton:=true
Bundle-Version: 7.4.1.qualifier
Bundle-Vendor: .Talend SA.
Bundle-ClassPath: .,
lib/dom4j-2.1.1.jar,
lib/dom4j-2.1.3.jar,
lib/jaxen-1.1.6.jar
Export-Package: org.dom4j,
org.dom4j.bean,

View File

@@ -2,7 +2,7 @@ bin.includes = META-INF/,\
.,\
lib/,\
licences/,\
lib/dom4j-2.1.1.jar,\
lib/dom4j-2.1.3.jar,\
lib/jaxen-1.1.6.jar,\
plugin.xml

View File

@@ -5,11 +5,11 @@
point="org.talend.core.runtime.librariesNeeded">
<libraryNeeded
context="plugin:org.talend.libraries.dom4j-jaxen"
id="dom4j-2.1.1.jar"
mvn_uri="mvn:org.dom4j/dom4j/2.1.1"
name="dom4j-2.1.1.jar"
id="dom4j-2.1.3.jar"
mvn_uri="mvn:org.dom4j/dom4j/2.1.3"
name="dom4j-2.1.3.jar"
required="true"
uripath="platform:/plugin/org.talend.libraries.dom4j-jaxen/lib/dom4j-2.1.1.jar">
uripath="platform:/plugin/org.talend.libraries.dom4j-jaxen/lib/dom4j-2.1.3.jar">
</libraryNeeded>
<libraryNeeded
context="plugin:org.talend.libraries.dom4j-jaxen"

View File

@@ -41,7 +41,7 @@
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.1</version>
<version>2.1.3</version>
</dependency>
</dependencies>
<build>

View File

@@ -32,7 +32,7 @@ Export-Package: net.sf.ezmorph,
Require-Bundle: org.apache.commons.lang,
org.apache.commons.logging,
org.apache.commons.collections,
org.apache.commons.beanutils,
org.apache.commons.commons-beanutils,
jackson-core-asl;bundle-version="1.9.13";visibility:=reexport,
jackson-mapper-asl;bundle-version="1.9.13";visibility:=reexport,
com.fasterxml.jackson.core.jackson-annotations;bundle-version="2.9.0";visibility:=reexport,

View File

@@ -149,7 +149,8 @@ public class ExternalModulesInstallDialog extends TitleAreaDialog implements IMo
private void checkNetworkStatus() {
boolean networkValid = NetworkUtil
.isNetworkValid(TalendLibsServerManager.getInstance().getTalentArtifactServer().getServer());
.isNetworkValid(TalendLibsServerManager.getInstance().getTalentArtifactServer().getServer(),
NetworkUtil.getNexusTimeout());
if (!networkValid) {
setErrorMessage(Messages.getString("ExternalModulesInstallDialog.networkUnavailable.msg")); //$NON-NLS-1$
}

View File

@@ -21,11 +21,13 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Stream;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.SubMonitor;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.utils.MojoType;
import org.talend.commons.utils.VersionUtils;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ILibraryManagerService;
@@ -34,6 +36,7 @@ import org.talend.core.nexus.TalendMavenResolver;
import org.talend.core.runtime.maven.MavenArtifact;
import org.talend.core.runtime.maven.MavenConstants;
import org.talend.core.runtime.maven.MavenUrlHelper;
import org.talend.designer.maven.model.TalendMavenConstants;
import org.talend.designer.maven.utils.PomUtil;
import org.talend.librariesmanager.maven.ShareLibrareisHelper;
import org.talend.librariesmanager.model.ModulesNeededProvider;
@@ -88,9 +91,24 @@ public class ShareMavenArtifactsOnStartup extends ShareLibrareisHelper {
}
}
addMojoArtifact(files, "org.talend.ci", "builder-maven-plugin", "ci.builder.version"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
addMojoArtifact(files, "org.talend.ci", "cloudpublisher-maven-plugin", "cloud.publisher.version"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
addMojoArtifact(files, "org.talend.ci", "signer-maven-plugin", "signer.version"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// get plugin artifacts to share
Stream.of(MojoType.values()).forEach(m -> {
String mvnUrl = MavenUrlHelper.generateMvnUrl(TalendMavenConstants.DEFAULT_CI_GROUP_ID, m.getArtifactId(),
VersionUtils.getMojoVersion(m), null, null);
// try to resolve locally
String localMvnUrl = mvnUrl.replace(MavenUrlHelper.MVN_PROTOCOL,
MavenUrlHelper.MVN_PROTOCOL + MavenConstants.LOCAL_RESOLUTION_URL + MavenUrlHelper.REPO_SEPERATOR);
File file = null;
try {
file = TalendMavenResolver.resolve(localMvnUrl);
} catch (IOException | RuntimeException e) {
ExceptionHandler.process(e);
}
if (file != null) {
ModuleNeeded module = new ModuleNeeded("", mvnUrl, "", true);
files.put(module, file);
}
});
mainSubMonitor.worked(1);
return files;
@@ -123,21 +141,4 @@ public class ShareMavenArtifactsOnStartup extends ShareLibrareisHelper {
// deployer.deploy(pomFile, artifact);
}
private void addMojoArtifact(Map<ModuleNeeded, File> files, String groupId, String artifactId, String versionKey) {
String mvnUrl = MavenUrlHelper.generateMvnUrl(groupId, artifactId, VersionUtils.getMojoVersion(versionKey), null, null);
// try to resolve locally
String localMvnUrl = mvnUrl.replace(MavenUrlHelper.MVN_PROTOCOL,
MavenUrlHelper.MVN_PROTOCOL + MavenConstants.LOCAL_RESOLUTION_URL + MavenUrlHelper.REPO_SEPERATOR);
File file = null;
try {
file = TalendMavenResolver.resolve(localMvnUrl);
} catch (IOException | RuntimeException e) {
ExceptionHandler.process(e);
}
if (file != null) {
ModuleNeeded module = new ModuleNeeded("", mvnUrl, "", true);
files.put(module, file);
}
}
}

View File

@@ -149,7 +149,8 @@ public class RemoteModulesHelper {
Set<String> unavailableModules = new HashSet<String>();
// if the network is not valid, all jars are not available.
boolean networkValid = NetworkUtil
.isNetworkValid(TalendLibsServerManager.getInstance().getTalentArtifactServer().getServer());
.isNetworkValid(TalendLibsServerManager.getInstance().getTalentArtifactServer().getServer(),
NetworkUtil.getNexusTimeout());
if (!networkValid) {
if (!alreadyWarnedAboutConnectionIssue) {
log.warn("failed to connect to internet");

View File

@@ -38,6 +38,8 @@ public class JobStructureCatcherUtils {
public class JobStructureCatcherMessage {
public String component_id;
public String component_label;
public String component_name;
@@ -57,7 +59,7 @@ public class JobStructureCatcherUtils {
public String job_version;
public Long systemPid;
public Long systemPid = JobStructureCatcherUtils.getPid();
public boolean current_connector_as_input;
@@ -66,6 +68,13 @@ public class JobStructureCatcherUtils {
public String current_connector;
public String currrent_row_content;
public String sourceId;
public String sourceLabel;
public String sourceComponentName;
public String targetId;
public String targetLabel;
public String targetComponentName;
public long row_count;
@@ -75,44 +84,25 @@ public class JobStructureCatcherUtils {
public long end_time;
public String moment;
public String moment = sdf.format(new Date());
public String status;
public LogType log_type;
public JobStructureCatcherMessage(String component_id, String component_name,
Map<String, String> component_parameters, List<Map<String, String>> component_schema,
String input_connectors, String output_connectors,
Map<String, String> connector_name_2_connector_schema, String job_name, String job_id,
String job_version, boolean current_connector_as_input, String current_connector_type,
String current_connector, String currrent_row_content, long row_count, long total_row_number,
long start_time, long end_time, String status) {
this.component_id = component_id;
this.component_name = component_name;
this.component_parameters = component_parameters;
this.component_schema = component_schema;
this.input_connectors = input_connectors;
this.output_connectors = output_connectors;
this.connector_name_2_connector_schema = connector_name_2_connector_schema;
this.job_name = job_name;
this.job_version = job_version;
this.job_id = job_id;
this.systemPid = JobStructureCatcherUtils.getPid();
this.current_connector_as_input = current_connector_as_input;
this.current_connector_type = current_connector_type;
this.current_connector = current_connector;
this.currrent_row_content = currrent_row_content;
this.row_count = row_count;
this.total_row_number = total_row_number;
this.start_time = start_time;
this.end_time = end_time;
this.moment = sdf.format(new Date());
this.status = status;
public JobStructureCatcherMessage() {
}
}
public static enum LogType {
JOBSTART,
JOBEND,
RUNCOMPONENT,
FLOWINPUT,
FLOWOUTPUT,
PERFORMANCE
}
java.util.List<JobStructureCatcherMessage> messages = java.util.Collections
.synchronizedList(new java.util.ArrayList<JobStructureCatcherMessage>());
@@ -129,38 +119,72 @@ public class JobStructureCatcherUtils {
this.job_version = jobVersion;
}
private void addMessage(String component_id, String component_name, Map<String, String> component_parameters,
List<Map<String, String>> component_schema, String input_connectors, String output_connectors,
Map<String, String> connector_name_2_connector_schema, boolean current_connector_as_input,
String current_connector_type, String current_connector, String currrent_row_content, long row_count,
long total_row_number, long start_time, long end_time, String status) {
JobStructureCatcherMessage scm = new JobStructureCatcherMessage(component_id, component_name,
component_parameters, component_schema, input_connectors, output_connectors,
connector_name_2_connector_schema, this.job_name, this.job_id, this.job_version,
current_connector_as_input, current_connector_type, current_connector, currrent_row_content, row_count,
total_row_number, start_time, end_time, status);
public void addConnectionMessage(String component_id, String component_label, String component_name, boolean current_connector_as_input,
String current_connector_type, String current_connector, long total_row_number, long start_time,
long end_time) {
JobStructureCatcherMessage scm = new JobStructureCatcherMessage();
scm.job_name = this.job_name;
scm.job_id = this.job_id;
scm.job_version = this.job_version;
scm.component_id = component_id;
scm.component_label = component_label;
scm.component_name = component_name;
scm.current_connector_as_input = current_connector_as_input;
scm.current_connector_type = current_connector_type;
scm.current_connector = current_connector;
scm.total_row_number = total_row_number;
scm.start_time = start_time;
scm.end_time = end_time;
if(current_connector_as_input) {
scm.log_type = LogType.FLOWINPUT;
} else {
scm.log_type = LogType.FLOWOUTPUT;
}
messages.add(scm);
}
public void addConnectionMessage(String component_id, String component_name, boolean current_connector_as_input,
String current_connector_type, String current_connector, long total_row_number, long start_time,
long end_time) {
this.addMessage(component_id, component_name, null, null, null, null, null, current_connector_as_input,
current_connector_type, current_connector, null, 0, total_row_number, start_time, end_time, null);
}
public void addCM(String component_id, String component_label, String component_name) {
JobStructureCatcherMessage scm = new JobStructureCatcherMessage();
scm.job_name = this.job_name;
scm.job_id = this.job_id;
scm.job_version = this.job_version;
public void addCM(String component_id, String component_name) {
this.addMessage(component_id, component_name, null, null, null, null, null, false, null, null,
null, 0, 0, 0, 0, null);
scm.component_id = component_id;
scm.component_label = component_label;
scm.component_name = component_name;
scm.log_type = LogType.RUNCOMPONENT;
messages.add(scm);
}
public void addJobStartMessage() {
this.addMessage(null, null, null, null, null, null, null, false, null, null, null, 0, 0, 0, 0, null);
JobStructureCatcherMessage scm = new JobStructureCatcherMessage();
scm.job_name = this.job_name;
scm.job_id = this.job_id;
scm.job_version = this.job_version;
scm.log_type = LogType.JOBSTART;
messages.add(scm);
}
public void addJobEndMessage(long start_time, long end_time, String status) {
this.addMessage(null, null, null, null, null, null, null, false, null, null, null, 0, 0, start_time, end_time,
status == "" ? "end" : status);
JobStructureCatcherMessage scm = new JobStructureCatcherMessage();
scm.job_name = this.job_name;
scm.job_id = this.job_id;
scm.job_version = this.job_version;
scm.status = (status == "" ? "end" : status);
scm.start_time = start_time;
scm.end_time = end_time;
scm.log_type = LogType.JOBEND;
messages.add(scm);
}
public java.util.List<JobStructureCatcherMessage> getMessages() {
@@ -183,4 +207,32 @@ public class JobStructureCatcherUtils {
return Thread.currentThread().getId();
}
}
public void addConnectionMessage4PerformanceMonitor(String current_connector, String sourceId, String sourceLabel,
String sourceComponentName, String targetId, String targetLabel, String targetComponentName, int row_count,
long start_time, long end_time) {
JobStructureCatcherMessage scm = new JobStructureCatcherMessage();
scm.job_name = this.job_name;
scm.job_id = this.job_id;
scm.job_version = this.job_version;
scm.current_connector = current_connector;
scm.sourceId = sourceId;
scm.sourceLabel = sourceLabel;
scm.sourceComponentName = sourceComponentName;
scm.targetId = targetId;
scm.targetLabel = targetLabel;
scm.targetComponentName = targetComponentName;
scm.row_count = row_count;
scm.start_time = start_time;
scm.end_time = end_time;
scm.log_type = LogType.PERFORMANCE;
messages.add(scm);
}
}

View File

@@ -51,6 +51,16 @@ public class RunStat implements Runnable {
public static String TYPE0_JOB = "0";
public static String TYPE1_CONNECTION = "1";
public RunStat() {
jscu = null;
}
private final JobStructureCatcherUtils jscu;
public RunStat(JobStructureCatcherUtils jscu) {
this.jscu = jscu;
}
private class StatBean {
@@ -332,38 +342,31 @@ public class RunStat implements Runnable {
private Map<String, StatBean> processStats4Meter = new HashMap<String, StatBean>();
private List<String> keysList4Meter = new LinkedList<String>();
private final static long INTERVAL = 500;
private long lastLogUpdate = 0;
public synchronized boolean log(String connectionId, int mode, int nbLine,
String sourceId, String sourceLabel, String sourceComponentName,
String targetId, String targetLabel, String targetComponentName) {
boolean emit = false;
StatBean stateBean = log(connectionId, mode, nbLine);
long currentLogUpdate = System.currentTimeMillis();
if (lastLogUpdate == 0 || lastLogUpdate + INTERVAL < currentLogUpdate) {
lastLogUpdate = currentLogUpdate;
jscu.addConnectionMessage4PerformanceMonitor(
connectionId, sourceId, sourceLabel, sourceComponentName, targetId, targetLabel, targetComponentName, stateBean.nbLine, stateBean.startTime, currentLogUpdate);
emit = true;
}
return emit;
}
public synchronized StatBean log(String connectionId, int mode, int nbLine) {
StatBean bean;
String key = connectionId;
if (connectionId.contains(".")) {
String firstKey = null;
String connectionName = connectionId.split("\\.")[0];
int nbKeys = 0;
for (String myKey : keysList4Meter) {
if (myKey.startsWith(connectionName + ".")) {
if (firstKey == null) {
firstKey = myKey;
}
nbKeys++;
if (nbKeys == 4) {
break;
}
}
}
if (nbKeys == 4) {
keysList4Meter.remove(firstKey);
}
}
if (keysList4Meter.contains(key)) {
int keyNb = keysList4Meter.indexOf(key);
keysList4Meter.remove(key);
keysList4Meter.add(keyNb, key);
} else {
keysList4Meter.add(key);
}
if (processStats4Meter.containsKey(key)) {
bean = processStats4Meter.get(key);
@@ -371,7 +374,10 @@ public class RunStat implements Runnable {
bean = new StatBean(connectionId);
}
bean.setState(mode);
bean.setNbLine(bean.getNbLine() + nbLine);
//not set it, to avoid too many call as System.currentTimeMillis() is not fast
//bean.setEndTime(System.currentTimeMillis());
processStats4Meter.put(key, bean);
if (mode == BEGIN) {
@@ -379,25 +385,29 @@ public class RunStat implements Runnable {
bean.setStartTime(System.currentTimeMillis());
} else if(mode == END) {
bean.setEndTime(System.currentTimeMillis());
processStats4Meter.remove(key);
keysList4Meter.clear();
processStats4Meter.remove(key);
}
return bean;
}
public synchronized boolean log(Map<String, Object> resourceMap, String iterateId, String connectionUniqueName, int mode, int nbLine,
JobStructureCatcherUtils jscu, String sourceNodeId, String sourceNodeComponent, String targetNodeId, String targetNodeComponent, String lineType) {
String sourceNodeId, String sourceNodeLabel, String sourceNodeComponent, String targetNodeId, String targetNodeLabel, String targetNodeComponent, String lineType) {
if(resourceMap.get("inIterateVComp") == null || !((Boolean)resourceMap.get("inIterateVComp"))) {
StatBean bean = log(connectionUniqueName, mode, nbLine);
StatBean bean = log(connectionUniqueName, mode, nbLine);//TODO use connectionUniqueName + iterateId here?
String connectionId = connectionUniqueName+iterateId;
jscu.addConnectionMessage4PerformanceMonitor(
connectionId, sourceNodeId, sourceNodeLabel, sourceNodeComponent, targetNodeId, targetNodeLabel, targetNodeComponent, bean.nbLine, bean.startTime, bean.endTime);
jscu.addConnectionMessage(
sourceNodeId,
sourceNodeId,
sourceNodeLabel,
sourceNodeComponent,
false,
lineType,
connectionUniqueName+iterateId,
connectionId,
bean.getNbLine(),
bean.getStartTime(),
bean.getEndTime()
@@ -405,10 +415,11 @@ public class RunStat implements Runnable {
jscu.addConnectionMessage(
targetNodeId,
targetNodeLabel,
targetNodeComponent,
true,
"input",
connectionUniqueName+iterateId,
connectionId,
bean.getNbLine(),
bean.getStartTime(),
bean.getEndTime()
@@ -435,14 +446,14 @@ public class RunStat implements Runnable {
* work for avoiding the 65535 issue
*/
public synchronized boolean updateStatAndLog(boolean execStat, boolean enableLogStash, Map<String, Object> resourceMap, String iterateId, String connectionUniqueName, int mode, int nbLine,
JobStructureCatcherUtils jscu, String sourceNodeId, String sourceNodeComponent, String targetNodeId, String targetNodeComponent, String lineType) {
String sourceNodeId, String sourceNodeLabel, String sourceNodeComponent, String targetNodeId, String targetNodeLabel, String targetNodeComponent, String lineType) {
if(execStat) {
updateStat(resourceMap, iterateId, mode, nbLine, connectionUniqueName);
}
if(enableLogStash) {
return log(resourceMap, iterateId, connectionUniqueName, mode, nbLine,
jscu, sourceNodeId, sourceNodeComponent, targetNodeId, targetNodeComponent, lineType);
sourceNodeId, sourceNodeLabel, sourceNodeComponent, targetNodeId, targetNodeLabel, targetNodeComponent, lineType);
}
@@ -502,6 +513,23 @@ public class RunStat implements Runnable {
}
}
/**
* update stats
* @param execStat
* @param enableLogStash
* @param iterateId
* @param mode
* @param nbLine
* @param connectionUniqueNames
*/
private synchronized void updateStat(String iterateId, int mode, int nbLine, String... informationGroup) {
for(int i=0;i<informationGroup.length;i++) {
if((i % 7) == 0) {
updateStatOnConnection(informationGroup[i]+iterateId, mode, nbLine);
}
}
}
/**
* work for avoiding the 65535 issue
*/
@@ -511,6 +539,27 @@ public class RunStat implements Runnable {
}
}
/**
* update logs for performance monitor
* @param execStat
* @param enableLogStash
* @param iterateId
* @param mode
* @param nbLine
* @param connectionUniqueNames
*/
public synchronized boolean updateLog(String iterateId, int mode, int nbLine, String... informationGroup) {
boolean emit = false;
for(int i=0;i<informationGroup.length;i++) {
if((i % 7) == 0) {
//informationGroup ==> [connectionid, sourceid, sourcelabel, sourcecomponentname, targetid, targetlabel, targetcomponentname, ...]
emit |= log(informationGroup[i]+iterateId, mode, nbLine,
informationGroup[i+1], informationGroup[i+2], informationGroup[i+3],informationGroup[i+4], informationGroup[i+5], informationGroup[i+6]);
}
}
return emit;
}
/**
* TBD-9420 fix
*/
@@ -531,6 +580,28 @@ public class RunStat implements Runnable {
}
}
/**
* update states, and logs for performance monitor
* @param execStat
* @param enableLogStash
* @param iterateId
* @param mode
* @param nbLine
* @param connectionUniqueNames
*/
public synchronized boolean update(boolean execStat, boolean enableLogStash, String iterateId, int mode, int nbLine, String... informationGroup) {
if(execStat) {
updateStat(iterateId, mode, nbLine, informationGroup);
}
if(enableLogStash) {
boolean emit = updateLog(iterateId, mode, nbLine, informationGroup);
return emit;
}
return false;
}
/**
* work for avoiding the 65535 issue
*/

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