Compare commits
42 Commits
maintenanc
...
release/7.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f77b21c2e0 | ||
|
|
f79e24d155 | ||
|
|
9859ecffab | ||
|
|
453fd4ba1d | ||
|
|
d152eb7b74 | ||
|
|
8ae03ccad0 | ||
|
|
0b79f42125 | ||
|
|
1e3453478e | ||
|
|
9cd3dea7f4 | ||
|
|
4214bc8d1e | ||
|
|
4a96843c74 | ||
|
|
65585cc5ca | ||
|
|
85da3cc1b8 | ||
|
|
fd17078a1a | ||
|
|
d5ac143b91 | ||
|
|
2b6f770fbb | ||
|
|
636bfa82a7 | ||
|
|
a2a60f163a | ||
|
|
2d13aeb955 | ||
|
|
8027f078ce | ||
|
|
31bac18a71 | ||
|
|
43ac06ee47 | ||
|
|
2ea8bdb18d | ||
|
|
3581d54bb5 | ||
|
|
8dd4052b1c | ||
|
|
895c37df7d | ||
|
|
fb4e90f5d0 | ||
|
|
2a4b027d35 | ||
|
|
59768ee766 | ||
|
|
4a49ce3774 | ||
|
|
a869bf9d97 | ||
|
|
0051ee2d70 | ||
|
|
17e6ecbee6 | ||
|
|
1e6d4bbb15 | ||
|
|
5f474c0238 | ||
|
|
f22d442cbd | ||
|
|
1d6e5d46fc | ||
|
|
56f900f470 | ||
|
|
4bbe901c00 | ||
|
|
d73e91b947 | ||
|
|
3db0fa1fbe | ||
|
|
8acb76e420 |
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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 \!
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}.
|
||||
|
||||
@@ -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...
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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\!
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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$
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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$
|
||||
}
|
||||
@@ -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");
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,6 +117,7 @@ public class JobAndNodesParametersRelationshipHandler implements IItemRelationsh
|
||||
}
|
||||
}
|
||||
}
|
||||
relationsMap.values().removeIf(value -> value.isEmpty());
|
||||
return relationsMap;
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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$
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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()))
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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$
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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$
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
1
main/plugins/org.talend.libraries.apache.common/.gitignore
vendored
Normal file
1
main/plugins/org.talend.libraries.apache.common/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
lib/commons-beanutils-1.9.4.jar
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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>
|
||||
|
||||
@@ -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
|
||||
Binary file not shown.
@@ -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>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,\
|
||||
|
||||
Binary file not shown.
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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$
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user