Compare commits
157 Commits
patch/TPS-
...
dsergent_f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73afef650a | ||
|
|
a35f91d12e | ||
|
|
b3427985ad | ||
|
|
fb9764306c | ||
|
|
0edee6a5db | ||
|
|
ddc38d0d2d | ||
|
|
826694ab1d | ||
|
|
66336b5c7b | ||
|
|
3c84a1865a | ||
|
|
e4cbcf6e1d | ||
|
|
d13ce8e033 | ||
|
|
eea0b918bc | ||
|
|
3dae8268a1 | ||
|
|
5d40d9aa80 | ||
|
|
c66242498d | ||
|
|
d66a99f465 | ||
|
|
f4124c696b | ||
|
|
2d8ea71237 | ||
|
|
f3f8c6e241 | ||
|
|
8bdbf54702 | ||
|
|
5a31dee1e6 | ||
|
|
54ea80c057 | ||
|
|
026da45e5f | ||
|
|
8008c962eb | ||
|
|
8434786772 | ||
|
|
9b6cc94bb3 | ||
|
|
5d8beaf970 | ||
|
|
4767634e17 | ||
|
|
9d2393ac06 | ||
|
|
8dcab9ecc7 | ||
|
|
4aabe7d7ec | ||
|
|
3cc9e21102 | ||
|
|
af92dc5b76 | ||
|
|
bc0e2f7260 | ||
|
|
7cc6f6ac15 | ||
|
|
2751dfe852 | ||
|
|
16aa76f641 | ||
|
|
692dcc9d02 | ||
|
|
f72e50612c | ||
|
|
ffdf68dc06 | ||
|
|
686c47fa3e | ||
|
|
5b4a39fab6 | ||
|
|
db3131e579 | ||
|
|
b3d6f5b488 | ||
|
|
cc4f98de11 | ||
|
|
d648ce0631 | ||
|
|
a590117841 | ||
|
|
b02afd0b6b | ||
|
|
c2518d5ff1 | ||
|
|
a0e98fe2ec | ||
|
|
0ecf059e06 | ||
|
|
18dcaa912e | ||
|
|
95c213d78d | ||
|
|
07d52b8207 | ||
|
|
62bc03fce1 | ||
|
|
1b9001bb4a | ||
|
|
4332e04aed | ||
|
|
9d4447b34f | ||
|
|
55d1005883 | ||
|
|
fd853ea406 | ||
|
|
eb2e2de35c | ||
|
|
c5080e8131 | ||
|
|
2d52068314 | ||
|
|
20da6e89bb | ||
|
|
1609b68ec7 | ||
|
|
52ef80d962 | ||
|
|
6a0298d19c | ||
|
|
893b43791a | ||
|
|
e3e802dcd1 | ||
|
|
8fe82b64de | ||
|
|
f6e5c968cd | ||
|
|
226c06a88a | ||
|
|
a258c4e630 | ||
|
|
adab2d7423 | ||
|
|
08256bd17c | ||
|
|
b39b600aee | ||
|
|
43af7e8f79 | ||
|
|
b8cb379ce8 | ||
|
|
dccaacef8e | ||
|
|
98160e5aed | ||
|
|
3dd18ce8b4 | ||
|
|
6a128dcd44 | ||
|
|
9c4302cf17 | ||
|
|
e86211e74d | ||
|
|
fce35ea640 | ||
|
|
8f530406a1 | ||
|
|
a9145e05ad | ||
|
|
63bd4a1253 | ||
|
|
7ab15ba51c | ||
|
|
0e754dafca | ||
|
|
773cf557cf | ||
|
|
4888bd71fd | ||
|
|
fbd94e6fde | ||
|
|
5528ba12b5 | ||
|
|
015c47b701 | ||
|
|
4181c69924 | ||
|
|
297f4ca718 | ||
|
|
cb3eeb5f00 | ||
|
|
60418702d5 | ||
|
|
d537d51b6a | ||
|
|
88e7223e60 | ||
|
|
e66c45bc8a | ||
|
|
18d5a99c5d | ||
|
|
b4aeedc543 | ||
|
|
5ce507ad14 | ||
|
|
fcef3bc66b | ||
|
|
1491a5739a | ||
|
|
67311d9d7f | ||
|
|
125a3fdfb8 | ||
|
|
cdc588f608 | ||
|
|
533301a787 | ||
|
|
4e58202b5a | ||
|
|
803a6e6ee0 | ||
|
|
3575dcde57 | ||
|
|
98dd599cd7 | ||
|
|
e036744720 | ||
|
|
5323e62bf0 | ||
|
|
9196c9c79d | ||
|
|
0dbe12a296 | ||
|
|
7aa1c0e7b2 | ||
|
|
7f6d41819f | ||
|
|
47d9a652a3 | ||
|
|
102e04bcf6 | ||
|
|
6f877d1272 | ||
|
|
33f2a34c18 | ||
|
|
3946746389 | ||
|
|
7de8cf0dd9 | ||
|
|
c0e8309908 | ||
|
|
7db41b47ec | ||
|
|
4aca59591b | ||
|
|
97cdeb17c0 | ||
|
|
f49282d082 | ||
|
|
2e7381fc92 | ||
|
|
27b2a92e96 | ||
|
|
b9f4b84ff9 | ||
|
|
1f9725c002 | ||
|
|
22dc91ebff | ||
|
|
b4d514d368 | ||
|
|
a6b0f424f9 | ||
|
|
98752ea5ac | ||
|
|
37419ed075 | ||
|
|
3b33b5865f | ||
|
|
3f1a1ccee5 | ||
|
|
e2869d0d42 | ||
|
|
afe1a09660 | ||
|
|
05c8fbc560 | ||
|
|
d6faa40ede | ||
|
|
874dc4b11f | ||
|
|
1514ffcc72 | ||
|
|
db67c962f0 | ||
|
|
8ce0822a05 | ||
|
|
216732d14c | ||
|
|
be5a66353e | ||
|
|
b5ab262801 | ||
|
|
6334b756c7 | ||
|
|
25079b1341 | ||
|
|
a68c9e0cfc |
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.abstractmap.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.abstractmap
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.abstractmap.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.alfrescooutput.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.alfrescooutput
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.alfrescooutput.nl</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.business.diagram.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Bundle-Vendor: .Talend SA.
|
||||
Fragment-Host: org.talend.designer.business.diagram
|
||||
Bundle-Localization: plugin
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.business.diagram.nl</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: org.talend.designer.codegen Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.codegen.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.codegen
|
||||
Bundle-Localization: plugin
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.codegen.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl
|
||||
Bundle-SymbolicName: org.talend.designer.components.exchange.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.components.exchange
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.components.exchange.nl</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Designer Plug-in Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.core.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.core
|
||||
Bundle-Localization: plugin
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.core.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.dbmap.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.dbmap
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.dbmap.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl
|
||||
Bundle-SymbolicName: org.talend.designer.documentation.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.documentation
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.documentation.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.fileoutputxml.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.fileoutputxml
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.fileoutputxml.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.gefabstractmap.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.gefabstractmap
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.gefabstractmap.nl</artifactId>
|
||||
|
||||
@@ -2,6 +2,6 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Mapper component Plug-in Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.mapper.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.mapper
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.mapper.nl</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Maven Job NL
|
||||
Bundle-SymbolicName: org.talend.designer.maven.job.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Bundle-Vendor: .Talend SA.
|
||||
Fragment-Host: org.talend.designer.maven.job
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.maven.job.nl</artifactId>
|
||||
|
||||
@@ -2,6 +2,6 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Rowgenerator Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.rowgenerator.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.rowgenerator
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.rowgenerator.nl</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: org.talend.designer.runprocess.nl fragment
|
||||
Bundle-SymbolicName: org.talend.designer.runprocess.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Bundle-Vendor: .Talend SA.
|
||||
Fragment-Host: org.talend.designer.runprocess
|
||||
Bundle-Localization: plugin
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.runprocess.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.scd.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.scd
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.scd.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.designer.webservice.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.webservice
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.webservice.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl
|
||||
Bundle-SymbolicName: org.talend.designer.xmlmap.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.designer.xmlmap
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.xmlmap.nl</artifactId>
|
||||
|
||||
@@ -2,6 +2,6 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Expression Builder Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.expressionbuilder.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.expressionbuilder
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.expressionbuilder.nl</artifactId>
|
||||
|
||||
@@ -2,6 +2,6 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: NL
|
||||
Bundle-SymbolicName: org.talend.presentation.onboarding.resource.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.presentation.onboarding.resource
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.presentation.onboarding.resource.nl</artifactId>
|
||||
|
||||
@@ -2,6 +2,6 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: NL
|
||||
Bundle-SymbolicName: org.talend.presentation.onboarding.resource.tos.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.presentation.onboarding.resource.tos
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.presentation.onboarding.resource.tos.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl
|
||||
Bundle-SymbolicName: org.talend.repository.ftp.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.repository.ftp
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.repository.ftp.nl</artifactId>
|
||||
|
||||
@@ -2,6 +2,6 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.repository.json.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.repository.json
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.repository.json.nl</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.repository.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.repository
|
||||
Bundle-Localization: plugin
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.repository.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl
|
||||
Bundle-SymbolicName: org.talend.repository.view.di.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.repository.view.di
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.repository.view.di.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.sbi.engines.client.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.sbi.engines.client
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.sbi.engines.client.nl</artifactId>
|
||||
|
||||
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.spagic.engines.client.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Fragment-Host: org.talend.spagic.engines.client
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.spagic.engines.client.nl</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: org.talend.sqlbuilder Nl Fragment
|
||||
Bundle-SymbolicName: org.talend.sqlbuilder.nl
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Bundle-Vendor: .Talend SA.
|
||||
Fragment-Host: org.talend.sqlbuilder
|
||||
Bundle-Localization: plugin
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.sqlbuilder.nl</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.designer.business.feature"
|
||||
label="Business Feature"
|
||||
version="7.1.1.qualifier"
|
||||
version="7.1.2.qualifier"
|
||||
provider-name=".Talend SA.">
|
||||
|
||||
<description url="http://www.talend.com/online/featuresdescription.html#business-feature">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.business.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.designer.feature"
|
||||
label="Designer Feature"
|
||||
version="7.1.1.qualifier"
|
||||
version="7.1.2.qualifier"
|
||||
provider-name=".Talend SA.">
|
||||
|
||||
<description url="http://www.talend.com/online/featuresdescription.html#designer-feature">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.rcp.branding.tos.feature"
|
||||
label="Tos branding feature"
|
||||
version="7.1.1.qualifier"
|
||||
version="7.1.2.qualifier"
|
||||
provider-name=".Talend SA."
|
||||
plugin="org.talend.rcp.branding.tos">
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.rcp.branding.tos.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.rcp.branding.tos.test.feature"
|
||||
label="Test feature for TOS"
|
||||
version="7.1.1.qualifier">
|
||||
version="7.1.2.qualifier">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
[Enter Feature Description here.]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.rcp.branding.tos.test.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.repository.feature"
|
||||
label="Repository Feature"
|
||||
version="7.1.1.qualifier"
|
||||
version="7.1.2.qualifier"
|
||||
provider-name=".Talend SA.">
|
||||
|
||||
<description url="http://www.talend.com/online/featuresdescription.html#repository-feature">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.repository.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.sbi.feature"
|
||||
label="SBI Feature"
|
||||
version="7.1.1.qualifier"
|
||||
version="7.1.2.qualifier"
|
||||
provider-name=".Talend SA.">
|
||||
|
||||
<description url="http://www.talend.com/online/featuresdescription.html#sbi-feature">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.sbi.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.spagic.feature"
|
||||
label="SPAGIC Feature"
|
||||
version="7.1.1.qualifier"
|
||||
version="7.1.2.qualifier"
|
||||
provider-name=".Talend SA.">
|
||||
|
||||
<description url="http://www.talend.com/online/featuresdescription.html#spagic-feature">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.spagic.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.tos.components.feature"
|
||||
label="Components-feature"
|
||||
version="7.1.1.qualifier">
|
||||
version="7.1.2.qualifier">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
[Enter Feature Description here.]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.tos.components.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.tos.core.feature"
|
||||
label="Feature"
|
||||
version="7.1.1.qualifier">
|
||||
version="7.1.2.qualifier">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
[Enter Feature Description here.]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.tos.core.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.tos.feature"
|
||||
label="Tos feature"
|
||||
version="7.1.1.qualifier"
|
||||
version="7.1.2.qualifier"
|
||||
provider-name=".Talend SA.">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.tos.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.tos.libraries.feature"
|
||||
label="Libraries_feature"
|
||||
version="7.1.1.qualifier">
|
||||
version="7.1.2.qualifier">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
[Enter Feature Description here.]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.tos.libraries.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Abstract Map Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.abstractmap;singleton:=true
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Bundle-Activator: org.talend.designer.abstractmap.MapPlugin
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.talend.core,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.abstractmap</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Alfresco Output Component Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.alfrescooutput;singleton:=true
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Bundle-Vendor: .Talend SA.
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.talend.core,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.alfrescooutput</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: %pluginName
|
||||
Bundle-SymbolicName: org.talend.designer.business.diagram; singleton:=true
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Bundle-ClassPath: .
|
||||
Bundle-Activator: org.talend.designer.business.model.business.diagram.part.BusinessDiagramEditorPlugin
|
||||
Bundle-Vendor: %providerName
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.business.diagram</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: CodeGen Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.codegen;singleton:=true
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Bundle-Localization: plugin
|
||||
Require-Bundle: org.talend.core.repository,
|
||||
org.eclipse.emf.codegen,
|
||||
|
||||
@@ -508,9 +508,12 @@
|
||||
}
|
||||
if (inContext != null) {
|
||||
//defaultProps is in order to keep the original context value
|
||||
defaultProps.load(inContext);
|
||||
if(context != null && context.isEmpty()) {
|
||||
defaultProps.load(inContext);
|
||||
context = new ContextProperties(defaultProps);
|
||||
}
|
||||
|
||||
inContext.close();
|
||||
context = new ContextProperties(defaultProps);
|
||||
} else if (!isDefaultContext) {
|
||||
//print info and job continue to run, for case: context_param is not empty.
|
||||
System.err.println("Could not find the context " + contextStr);
|
||||
@@ -528,107 +531,128 @@
|
||||
}
|
||||
<%
|
||||
String warningMessageFormat = "Null value will be used for context parameter %s: %s";
|
||||
for (IContextParameter ctxParam :params)
|
||||
{
|
||||
%>
|
||||
context.setContextType("<%=ctxParam.getName()%>", "<%=ctxParam.getType()%>");
|
||||
<%
|
||||
if (ctxParam.getType().equals("id_Password")) {
|
||||
%>
|
||||
String pwd_<%=ctxParam.getName()%>_value = context.getProperty("<%=ctxParam.getName()%>");
|
||||
context.<%=ctxParam.getName()%> = null;
|
||||
if(pwd_<%=ctxParam.getName()%>_value!=null) {
|
||||
if(context_param.containsKey("<%=ctxParam.getName()%>")) {//no need to decrypt if it come from program argument or parent job runtime
|
||||
context.<%=ctxParam.getName()%> = pwd_<%=ctxParam.getName()%>_value;
|
||||
} else if (!pwd_<%=ctxParam.getName()%>_value.isEmpty()) {
|
||||
try {
|
||||
context.<%=ctxParam.getName()%> = routines.system.PasswordEncryptUtil.decryptPassword(pwd_<%=ctxParam.getName()%>_value);
|
||||
context.put("<%=ctxParam.getName()%>",context.<%=ctxParam.getName()%>);
|
||||
} catch (java.lang.RuntimeException e) {
|
||||
//do nothing
|
||||
}
|
||||
}
|
||||
}
|
||||
<%
|
||||
continue;
|
||||
}
|
||||
String typeToGenerate ="String";
|
||||
if( !(ctxParam.getType().equals("id_File") || ctxParam.getType().equals("id_Directory") ||ctxParam.getType().equals("id_List Of Value")))
|
||||
{
|
||||
typeToGenerate=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true);
|
||||
}
|
||||
if(typeToGenerate.equals("java.util.Date"))
|
||||
{
|
||||
final int maxContextInOneMethodToProcess = 100;
|
||||
int lastMethodNumber = 0;
|
||||
%>
|
||||
class ContextProcessing {
|
||||
private void processContext_0() {
|
||||
<%
|
||||
for (int i = 1; i <= params.size(); i++) {
|
||||
IContextParameter ctxParam = params.get(i-1);
|
||||
if (i % maxContextInOneMethodToProcess == 0) {
|
||||
/* close previous method and declare new */
|
||||
lastMethodNumber++;
|
||||
%>
|
||||
}
|
||||
|
||||
%>
|
||||
try{
|
||||
String context_<%=ctxParam.getName()%>_value = context.getProperty("<%=ctxParam.getName()%>");
|
||||
if (context_<%=ctxParam.getName()%>_value == null){
|
||||
context_<%=ctxParam.getName()%>_value = "";
|
||||
}
|
||||
int context_<%=ctxParam.getName()%>_pos = context_<%=ctxParam.getName()%>_value.indexOf(";");
|
||||
String context_<%=ctxParam.getName()%>_pattern = "yyyy-MM-dd HH:mm:ss";
|
||||
if(context_<%=ctxParam.getName()%>_pos > -1){
|
||||
context_<%=ctxParam.getName()%>_pattern = context_<%=ctxParam.getName()%>_value.substring(0, context_<%=ctxParam.getName()%>_pos);
|
||||
context_<%=ctxParam.getName()%>_value = context_<%=ctxParam.getName()%>_value.substring(context_<%=ctxParam.getName()%>_pos + 1);
|
||||
}
|
||||
private void processContext_<%=lastMethodNumber%>() {
|
||||
<%
|
||||
} //endIf
|
||||
%>
|
||||
context.setContextType("<%=ctxParam.getName()%>", "<%=ctxParam.getType()%>");
|
||||
<%
|
||||
if (ctxParam.getType().equals("id_Password")) {
|
||||
%>
|
||||
String pwd_<%=ctxParam.getName()%>_value = context.getProperty("<%=ctxParam.getName()%>");
|
||||
context.<%=ctxParam.getName()%> = null;
|
||||
if(pwd_<%=ctxParam.getName()%>_value!=null) {
|
||||
if(context_param.containsKey("<%=ctxParam.getName()%>")) {//no need to decrypt if it come from program argument or parent job runtime
|
||||
context.<%=ctxParam.getName()%> = pwd_<%=ctxParam.getName()%>_value;
|
||||
} else if (!pwd_<%=ctxParam.getName()%>_value.isEmpty()) {
|
||||
try {
|
||||
context.<%=ctxParam.getName()%> = routines.system.PasswordEncryptUtil.decryptPassword(pwd_<%=ctxParam.getName()%>_value);
|
||||
context.put("<%=ctxParam.getName()%>",context.<%=ctxParam.getName()%>);
|
||||
} catch (java.lang.RuntimeException e) {
|
||||
//do nothing
|
||||
}
|
||||
}
|
||||
}
|
||||
<%
|
||||
continue;
|
||||
}
|
||||
String typeToGenerate ="String";
|
||||
if( !(ctxParam.getType().equals("id_File") || ctxParam.getType().equals("id_Directory") ||ctxParam.getType().equals("id_List Of Value"))) {
|
||||
typeToGenerate=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true);
|
||||
}
|
||||
if(typeToGenerate.equals("java.util.Date")) {
|
||||
%>
|
||||
try{
|
||||
String context_<%=ctxParam.getName()%>_value = context.getProperty("<%=ctxParam.getName()%>");
|
||||
if (context_<%=ctxParam.getName()%>_value == null){
|
||||
context_<%=ctxParam.getName()%>_value = "";
|
||||
}
|
||||
int context_<%=ctxParam.getName()%>_pos = context_<%=ctxParam.getName()%>_value.indexOf(";");
|
||||
String context_<%=ctxParam.getName()%>_pattern = "yyyy-MM-dd HH:mm:ss";
|
||||
if(context_<%=ctxParam.getName()%>_pos > -1){
|
||||
context_<%=ctxParam.getName()%>_pattern = context_<%=ctxParam.getName()%>_value.substring(0, context_<%=ctxParam.getName()%>_pos);
|
||||
context_<%=ctxParam.getName()%>_value = context_<%=ctxParam.getName()%>_value.substring(context_<%=ctxParam.getName()%>_pos + 1);
|
||||
}
|
||||
|
||||
context.<%=ctxParam.getName()%>=(java.util.Date)(new java.text.SimpleDateFormat(context_<%=ctxParam.getName()%>_pattern).parse(context_<%=ctxParam.getName()%>_value));
|
||||
context.<%=ctxParam.getName()%>=(java.util.Date)(new java.text.SimpleDateFormat(context_<%=ctxParam.getName()%>_pattern).parse(context_<%=ctxParam.getName()%>_value));
|
||||
|
||||
}catch(ParseException e)
|
||||
{
|
||||
} catch(ParseException e) {
|
||||
<%
|
||||
if (isLog4jEnabled) {
|
||||
if (isLog4jEnabled) {
|
||||
%>
|
||||
log.warn(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", e.getMessage()));
|
||||
log.warn(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", e.getMessage()));
|
||||
<%
|
||||
} else {
|
||||
} else {
|
||||
%>
|
||||
System.err.println(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", e.getMessage()));
|
||||
System.err.println(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", e.getMessage()));
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
context.<%=ctxParam.getName()%>=null;
|
||||
}
|
||||
<%
|
||||
}else if(typeToGenerate.equals("Object")||typeToGenerate.equals("String")||typeToGenerate.equals("java.lang.String") )
|
||||
{
|
||||
%>
|
||||
context.<%=ctxParam.getName()%>=(<%=typeToGenerate%>) context.getProperty("<%=ctxParam.getName()%>");
|
||||
<%
|
||||
}else if(typeToGenerate.equals("Character")&&ctxParam.getName()!=null)
|
||||
{
|
||||
%>
|
||||
context.<%=ctxParam.getName()%>= new java.text.StringCharacterIterator(context.getProperty("<%=ctxParam.getName()%>")).first();
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
try{
|
||||
context.<%=ctxParam.getName()%>=routines.system.ParserUtils.parseTo_<%=typeToGenerate%> (context.getProperty("<%=ctxParam.getName()%>"));
|
||||
}catch(NumberFormatException e){
|
||||
context.<%=ctxParam.getName()%>=null;
|
||||
}
|
||||
<%
|
||||
if (isLog4jEnabled) {
|
||||
} else if(typeToGenerate.equals("Object")||typeToGenerate.equals("String")||typeToGenerate.equals("java.lang.String")) {
|
||||
%>
|
||||
log.warn(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", e.getMessage()));
|
||||
context.<%=ctxParam.getName()%>=(<%=typeToGenerate%>) context.getProperty("<%=ctxParam.getName()%>");
|
||||
<%
|
||||
} else {
|
||||
} else if(typeToGenerate.equals("Character")&&ctxParam.getName()!=null) {
|
||||
%>
|
||||
System.err.println(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", e.getMessage()));
|
||||
context.<%=ctxParam.getName()%>= new java.text.StringCharacterIterator(context.getProperty("<%=ctxParam.getName()%>")).first();
|
||||
<%
|
||||
}
|
||||
} else {
|
||||
%>
|
||||
try{
|
||||
context.<%=ctxParam.getName()%>=routines.system.ParserUtils.parseTo_<%=typeToGenerate%> (context.getProperty("<%=ctxParam.getName()%>"));
|
||||
} catch(NumberFormatException e){
|
||||
<%
|
||||
if (isLog4jEnabled) {
|
||||
%>
|
||||
log.warn(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", e.getMessage()));
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
System.err.println(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", e.getMessage()));
|
||||
<%
|
||||
}
|
||||
%>
|
||||
context.<%=ctxParam.getName()%>=null;
|
||||
}
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
} <%/*close last method*/%>
|
||||
public void processAllContext() {
|
||||
<%
|
||||
for (int i = 0; i <=lastMethodNumber; i++) {
|
||||
%>
|
||||
processContext_<%=i %>();
|
||||
<%
|
||||
}
|
||||
%>
|
||||
context.<%=ctxParam.getName()%>=null;
|
||||
}
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
new ContextProcessing().processAllContext();
|
||||
} catch (java.io.IOException ie) {
|
||||
System.err.println("Could not load context "+contextStr);
|
||||
ie.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
// get context value from parent directly
|
||||
if (parentContextMap != null && !parentContextMap.isEmpty()) {
|
||||
<% for (IContextParameter ctxParam :params){
|
||||
|
||||
@@ -312,7 +312,7 @@ public <%=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true)%> get<%=Ch
|
||||
}
|
||||
%>
|
||||
}
|
||||
private ContextProperties context = new ContextProperties();
|
||||
protected ContextProperties context = new ContextProperties(); // will be instanciated by MS.
|
||||
public ContextProperties getContext() {
|
||||
return this.context;
|
||||
}
|
||||
@@ -512,6 +512,8 @@ private class TalendException extends Exception {
|
||||
|
||||
if(!(e instanceof TDieException)){
|
||||
<%
|
||||
boolean needCatchTalendException = false;
|
||||
|
||||
if (process.getNodesOfType("tLogCatcher").size() > 0) {
|
||||
List<INode> logCatchers = (List<INode>)process.getNodesOfType("tLogCatcher");
|
||||
for (INode logCatcher : logCatchers) {
|
||||
@@ -543,6 +545,7 @@ private class TalendException extends Exception {
|
||||
if (ElementParameterParser.getValue(logCatcher, "__CATCH_JAVA_EXCEPTION__").equals("true")) {
|
||||
if(logCatcher!=virtualNCatchNode){
|
||||
// 2) launch logCatcher subProcess
|
||||
needCatchTalendException = true;
|
||||
%>
|
||||
<%=logCatcher.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
||||
<%
|
||||
@@ -555,6 +558,7 @@ private class TalendException extends Exception {
|
||||
<%
|
||||
}
|
||||
if(virtualNCatchNode!=null){
|
||||
needCatchTalendException = true;
|
||||
%>
|
||||
<%=virtualNCatchNode.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
||||
<%
|
||||
@@ -568,31 +572,12 @@ private class TalendException extends Exception {
|
||||
%>
|
||||
}
|
||||
<%
|
||||
boolean needCatchTalendException = false;
|
||||
if (process.getNodesOfType("tLogCatcher").size() > 0) {
|
||||
for(INode node:process.getNodesOfType("tLogCatcher")){
|
||||
if(ElementParameterParser.getValue(node, "__CATCH_JAVA_EXCEPTION__").equals("true")){
|
||||
needCatchTalendException = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((!needCatchTalendException) && (process.getNodesOfType("tAssertCatcher").size() > 0)) {
|
||||
for(INode node:process.getNodesOfType("tAssertCatcher")){
|
||||
if(ElementParameterParser.getValue(node, "__CATCH_JAVA_EXCEPTION__").equals("true")){
|
||||
needCatchTalendException = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(needCatchTalendException) {
|
||||
if (process.getNodesOfType("tLogCatcher").size() > 0) {
|
||||
%>
|
||||
} catch (TalendException e) {
|
||||
// do nothing
|
||||
<%
|
||||
}
|
||||
//TODO should catch the TalendException in assertcatcher process? but before should not work too as use java reflect, this exception can't catch
|
||||
%>
|
||||
} catch (TalendException e) {
|
||||
// do nothing
|
||||
<%
|
||||
}
|
||||
%>
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.codegen</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Exchange Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.components.exchange;singleton:=true
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Bundle-Activator: org.talend.designer.components.exchange.ExchangePlugin
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.eclipse.ui,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>7.1.1</version>
|
||||
<version>7.1.2-SNAPSHOT</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.components.exchange</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Components Libs Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.components.libs
|
||||
Bundle-Version: 7.1.1.qualifier
|
||||
Bundle-Version: 7.1.2.qualifier
|
||||
Require-Bundle: org.eclipse.core.runtime
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.talend.libraries</groupId>
|
||||
<artifactId>checkArchive-1.1-20171121</artifactId>
|
||||
<artifactId>checkArchive-1.1-20181130</artifactId>
|
||||
<version>6.0.0</version>
|
||||
<name>checkArchive</name>
|
||||
<description>Dependence for tFileArchive and tFileUnAchive</description>
|
||||
|
||||
@@ -5,10 +5,6 @@ import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipException;
|
||||
import java.util.zip.ZipFile;
|
||||
import java.util.zip.ZipInputStream;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.CipherInputStream;
|
||||
@@ -17,7 +13,10 @@ import javax.crypto.SecretKeyFactory;
|
||||
import javax.crypto.spec.PBEKeySpec;
|
||||
import javax.crypto.spec.PBEParameterSpec;
|
||||
|
||||
import org.apache.commons.compress.archivers.ArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.zip.ZipFile;
|
||||
|
||||
// import javax.crypto.Cipher;
|
||||
|
||||
@@ -36,8 +35,6 @@ public class IntegrityUtil {
|
||||
zipFile = new ZipFile(file);
|
||||
|
||||
return true;
|
||||
} catch (ZipException e) {
|
||||
return false;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
} finally {
|
||||
@@ -58,7 +55,6 @@ public class IntegrityUtil {
|
||||
try {
|
||||
zipFile = new ZipFile(file);
|
||||
|
||||
} catch (ZipException e) {
|
||||
} catch (IOException e) {
|
||||
} finally {
|
||||
try {
|
||||
@@ -72,27 +68,6 @@ public class IntegrityUtil {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check the zip entry is valid
|
||||
*
|
||||
* @param input
|
||||
* @return
|
||||
*/
|
||||
public static boolean isZipEntryValid(final ZipInputStream input) {
|
||||
try {
|
||||
ZipEntry entry = input.getNextEntry();
|
||||
return true;
|
||||
|
||||
} catch (ZipException e) {
|
||||
// TODO Auto-generated catch block
|
||||
return false;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* To check if the encrpted zip file is corrupted or not
|
||||
*
|
||||
@@ -101,18 +76,15 @@ public class IntegrityUtil {
|
||||
* @return
|
||||
*/
|
||||
public static boolean isEncryptedZipValid(final File file, String password) {
|
||||
ZipInputStream input = null;
|
||||
ZipArchiveInputStream input = null;
|
||||
InputStream target = null;
|
||||
try {
|
||||
target = new FileInputStream(file);
|
||||
target = new CipherInputStream(target, createCipher(Cipher.DECRYPT_MODE, password));
|
||||
input = new ZipInputStream(target);
|
||||
ZipEntry entry = input.getNextEntry();
|
||||
input = new ZipArchiveInputStream(target);
|
||||
ArchiveEntry entry = input.getNextEntry();
|
||||
return true;
|
||||
|
||||
} catch (ZipException e) {
|
||||
// TODO Auto-generated catch block
|
||||
return false;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.talend.libraries</groupId>
|
||||
<artifactId>commons-net-ftps-proxy</artifactId>
|
||||
<version>3.6.1-talend-20190128</version>
|
||||
|
||||
<name>commons-net-talend</name>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>commons-net</groupId>
|
||||
<artifactId>commons-net</artifactId>
|
||||
<version>3.6</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
|
||||
</properties>
|
||||
|
||||
<distributionManagement>
|
||||
<snapshotRepository>
|
||||
<id>talend_nexus_deployment</id>
|
||||
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
|
||||
<snapshots><enabled>true</enabled></snapshots>
|
||||
<releases><enabled>false</enabled></releases>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>talend_nexus_deployment</id>
|
||||
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceRelease/</url>
|
||||
<snapshots><enabled>false</enabled></snapshots>
|
||||
<releases><enabled>true</enabled></releases>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@@ -0,0 +1,309 @@
|
||||
package org.talend.ftp;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.net.Inet6Address;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLException;
|
||||
import javax.net.ssl.SSLSocket;
|
||||
|
||||
import org.apache.commons.net.ftp.FTPCmd;
|
||||
import org.apache.commons.net.ftp.FTPReply;
|
||||
import org.apache.commons.net.util.Base64;
|
||||
|
||||
public class HTTPProxyFTPSClient extends SSLSessionReuseFTPSClient {
|
||||
|
||||
/** Default PROT Command */
|
||||
private static final String DEFAULT_PROT = "C";
|
||||
|
||||
private final String proxyHost;
|
||||
|
||||
private final int proxyPort;
|
||||
|
||||
private final String proxyUsername;
|
||||
|
||||
private final String proxyPassword;
|
||||
|
||||
private SSLContext context;
|
||||
|
||||
private String protectionLevel;
|
||||
|
||||
private String tunnelHost; // Save the host when setting up a tunnel (needed for EPSV)
|
||||
|
||||
private static final byte[] CRLF = { '\r', '\n' };
|
||||
|
||||
private final Base64 base64 = new Base64();
|
||||
|
||||
public HTTPProxyFTPSClient(boolean isImplicit, SSLContext context, String proxyHost, int proxyPort, String proxyUser,
|
||||
String proxyPass) {
|
||||
super(isImplicit, context);
|
||||
this.proxyHost = proxyHost;
|
||||
this.proxyPort = proxyPort;
|
||||
this.proxyUsername = proxyUser;
|
||||
this.proxyPassword = proxyPass;
|
||||
this.tunnelHost = null;
|
||||
this.context = context;
|
||||
this.protectionLevel = DEFAULT_PROT;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call execPROT from Parent class and stores current protection level
|
||||
*
|
||||
* @see org.apache.commons.net.ftp.FTPSClient#execPROT(String)
|
||||
*/
|
||||
@Override
|
||||
public void execPROT(String prot) throws SSLException, IOException {
|
||||
super.execPROT(prot);
|
||||
this.protectionLevel = prot;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.apache.commons.net.SocketClient#connect(java.lang.String, int)
|
||||
*/
|
||||
@Override
|
||||
public void connect(String host, int port) throws IOException {
|
||||
|
||||
_socket_ = new Socket(proxyHost, proxyPort);
|
||||
_input_ = _socket_.getInputStream();
|
||||
_output_ = _socket_.getOutputStream();
|
||||
|
||||
try {
|
||||
tunnelHandshake(host, port, _input_, _output_);
|
||||
} catch (Exception e) {
|
||||
throw new IOException("Could not connect to " + host + " using port " + port, e);
|
||||
}
|
||||
|
||||
super._connectAction_();
|
||||
}
|
||||
|
||||
/**
|
||||
* Open ssl socket (if private protection level selected) using tunnel socket
|
||||
*
|
||||
* @see org.apache.commons.net.ftp.FTPSClient#_openDataConnection_(java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
protected Socket _openDataConnection_(String command, String arg) throws IOException {
|
||||
//Force local passive mode, active mode not supported by through proxy
|
||||
if (getDataConnectionMode() != PASSIVE_LOCAL_DATA_CONNECTION_MODE) {
|
||||
throw new IllegalStateException("Only passive connection mode supported using proxy");
|
||||
}
|
||||
|
||||
final boolean isInet6Address = getRemoteAddress() instanceof Inet6Address;
|
||||
String passiveHost;
|
||||
|
||||
// Try EPSV command first on IPv6 - and IPv4 if enabled.
|
||||
// When using IPv4 with NAT it has the advantage
|
||||
// to work with more rare configurations.
|
||||
// E.g. if FTP server has a static PASV address (external network)
|
||||
// and the client is coming from another internal network.
|
||||
// In that case the data connection after PASV command would fail,
|
||||
// while EPSV would make the client succeed by taking just the port.
|
||||
boolean attemptEPSV = isUseEPSVwithIPv4() || isInet6Address;
|
||||
|
||||
if (attemptEPSV && epsv() == FTPReply.ENTERING_EPSV_MODE) {
|
||||
_parseExtendedPassiveModeReply(_replyLines.get(0));
|
||||
passiveHost = this.tunnelHost;
|
||||
} else {
|
||||
if (isInet6Address) {
|
||||
return null; // Must use EPSV for IPV6
|
||||
}
|
||||
|
||||
// If EPSV failed on IPV4, revert to PASV
|
||||
if (pasv() != FTPReply.ENTERING_PASSIVE_MODE) {
|
||||
return null;
|
||||
}
|
||||
|
||||
_parsePassiveModeReply(_replyLines.get(0));
|
||||
passiveHost = this.getPassiveHost();
|
||||
}
|
||||
|
||||
return DEFAULT_PROT.equals(protectionLevel) ?
|
||||
openPlainDataConnection(passiveHost, command, arg) : openEncryptedDataConnection(passiveHost, command, arg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create, configure and open SSLSocket via plain tunnel Socket
|
||||
* @param passiveHost host returned from ftp server after sending PASV command
|
||||
* @param command to execute
|
||||
* @param arg for command
|
||||
* @return SSLSocket using to Data transmit
|
||||
* @throws IOException
|
||||
*/
|
||||
private Socket openEncryptedDataConnection(String passiveHost, String command, String arg) throws IOException {
|
||||
Socket proxySocket = createTunnelSocket();
|
||||
|
||||
proxySocket.connect(new InetSocketAddress(proxyHost, proxyPort), getConnectTimeout());
|
||||
|
||||
tunnelHandshake(passiveHost, this.getPassivePort(), proxySocket.getInputStream(),
|
||||
proxySocket.getOutputStream());
|
||||
Socket socket = context.getSocketFactory().createSocket(proxySocket, passiveHost, this.getPassivePort(), true);
|
||||
_prepareDataSocket_(socket);
|
||||
|
||||
configureDataSocket(socket);
|
||||
|
||||
if (isRestartOffsetIncorrect()) {
|
||||
proxySocket.close();
|
||||
socket.close();
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!FTPReply.isPositivePreliminary(sendCommand(command, arg))) {
|
||||
proxySocket.close();
|
||||
socket.close();
|
||||
return null;
|
||||
}
|
||||
|
||||
if (socket instanceof SSLSocket) {
|
||||
SSLSocket sslSocket = (SSLSocket) socket;
|
||||
configureSSLDataSocket(sslSocket);
|
||||
sslSocket.startHandshake();
|
||||
}
|
||||
|
||||
return socket;
|
||||
}
|
||||
|
||||
private Socket createTunnelSocket() throws IOException {
|
||||
Socket proxySocket = new Socket();
|
||||
|
||||
configureDataSocket(proxySocket);
|
||||
|
||||
return proxySocket;
|
||||
}
|
||||
|
||||
private void configureSSLDataSocket(SSLSocket sslSocket) {
|
||||
sslSocket.setUseClientMode(getUseClientMode());
|
||||
sslSocket.setEnableSessionCreation(getEnableSessionCreation());
|
||||
|
||||
// server mode
|
||||
if (!getUseClientMode()) {
|
||||
sslSocket.setNeedClientAuth(getNeedClientAuth());
|
||||
sslSocket.setWantClientAuth(getWantClientAuth());
|
||||
}
|
||||
|
||||
if (getEnabledCipherSuites() != null) {
|
||||
sslSocket.setEnabledCipherSuites(getEnabledCipherSuites());
|
||||
}
|
||||
|
||||
if (getEnabledProtocols() != null) {
|
||||
sslSocket.setEnabledProtocols(getEnabledProtocols());
|
||||
}
|
||||
}
|
||||
|
||||
private void configureDataSocket(Socket socket) throws IOException {
|
||||
if (getReceiveDataSocketBufferSize() > 0) {
|
||||
socket.setReceiveBufferSize(getReceiveDataSocketBufferSize());
|
||||
}
|
||||
|
||||
if (getSendDataSocketBufferSize() > 0) {
|
||||
socket.setSendBufferSize(getSendDataSocketBufferSize());
|
||||
}
|
||||
|
||||
if (getPassiveLocalIPAddress() != null) {
|
||||
socket.bind(new InetSocketAddress(getPassiveLocalIPAddress(), 0));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.apache.commons.net.ftp.FTPHTTPClient#_openDataConnection_(FTPCmd, String)
|
||||
* @return Plain Socket using HTTP proxy
|
||||
*/
|
||||
private Socket openPlainDataConnection(String passiveHost, String command, String arg) throws IOException {
|
||||
Socket socket = preparePlainDataTunnelSocket(passiveHost);
|
||||
|
||||
if (isRestartOffsetIncorrect()) {
|
||||
socket.close();
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!FTPReply.isPositivePreliminary(sendCommand(command, arg))) {
|
||||
socket.close();
|
||||
return null;
|
||||
}
|
||||
|
||||
return socket;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create, prepare and connect plain data transmit socket via tunnel proxy
|
||||
*/
|
||||
private Socket preparePlainDataTunnelSocket(String passiveHost) throws IOException {
|
||||
Socket socket = _socketFactory_.createSocket(proxyHost, proxyPort);
|
||||
InputStream is = socket.getInputStream();
|
||||
OutputStream os = socket.getOutputStream();
|
||||
tunnelHandshake(passiveHost, this.getPassivePort(), is, os);
|
||||
|
||||
return socket;
|
||||
}
|
||||
|
||||
/**
|
||||
* HTTP handshake for proxy
|
||||
*/
|
||||
private void tunnelHandshake(String host, int port, InputStream input, OutputStream output) throws IOException {
|
||||
final String connectString = "CONNECT " + host + ":" + port + " HTTP/1.1";
|
||||
final String hostString = "Host: " + host + ":" + port;
|
||||
|
||||
this.tunnelHost = host;
|
||||
output.write(connectString.getBytes(StandardCharsets.UTF_8));
|
||||
output.write(CRLF);
|
||||
output.write(hostString.getBytes(StandardCharsets.UTF_8));
|
||||
output.write(CRLF);
|
||||
|
||||
if (proxyUsername != null && proxyPassword != null) {
|
||||
final String auth = proxyUsername + ":" + proxyPassword;
|
||||
final String header =
|
||||
"Proxy-Authorization: Basic " + base64.encodeToString(auth.getBytes(StandardCharsets.UTF_8));
|
||||
output.write(header.getBytes(StandardCharsets.UTF_8));
|
||||
}
|
||||
|
||||
output.write(CRLF);
|
||||
output.flush();
|
||||
|
||||
List<String> response = new ArrayList<>();
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(input, getCharset()));
|
||||
String responseLine;
|
||||
while ((responseLine = reader.readLine()) != null && responseLine.length() > 0) {
|
||||
response.add(responseLine);
|
||||
}
|
||||
|
||||
int size = response.size();
|
||||
|
||||
if (size == 0) {
|
||||
throw new IOException("No response from proxy");
|
||||
}
|
||||
|
||||
String code;
|
||||
String resp = response.get(0);
|
||||
|
||||
if (resp.startsWith("HTTP/") && resp.length() >= 12) {
|
||||
code = resp.substring(9, 12);
|
||||
} else {
|
||||
throw new IOException("Invalid response from proxy: " + resp);
|
||||
}
|
||||
|
||||
if (!"200".equals(code)) {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
msg.append("HTTPTunnelConnector: connection failed\r\n");
|
||||
msg.append("Response received from the proxy:\r\n");
|
||||
|
||||
for (String line : response) {
|
||||
msg.append(line);
|
||||
msg.append("\r\n");
|
||||
}
|
||||
|
||||
throw new IOException(msg.toString());
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isRestartOffsetIncorrect() throws IOException {
|
||||
return (getRestartOffset() > 0) && !restart(getRestartOffset());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package org.talend.ftp;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.Socket;
|
||||
import java.util.Locale;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLSession;
|
||||
import javax.net.ssl.SSLSessionContext;
|
||||
import javax.net.ssl.SSLSocket;
|
||||
|
||||
import org.apache.commons.net.ftp.FTPSClient;
|
||||
|
||||
public class SSLSessionReuseFTPSClient extends FTPSClient {
|
||||
|
||||
public SSLSessionReuseFTPSClient(boolean isImplicit, SSLContext context) {
|
||||
super(isImplicit, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void _prepareDataSocket_(final Socket socket) {
|
||||
if (socket instanceof SSLSocket) {
|
||||
final SSLSession session = ((SSLSocket) _socket_).getSession();
|
||||
final SSLSessionContext context = session.getSessionContext();
|
||||
try {
|
||||
final Field sessionHostPortCache = context.getClass().getDeclaredField("sessionHostPortCache");
|
||||
sessionHostPortCache.setAccessible(true);
|
||||
final Object cache = sessionHostPortCache.get(context);
|
||||
final Method putMethod = cache.getClass().getDeclaredMethod("put", Object.class, Object.class);
|
||||
putMethod.setAccessible(true);
|
||||
final Method getHostMethod = socket.getClass().getDeclaredMethod("getHost");
|
||||
getHostMethod.setAccessible(true);
|
||||
Object host = getHostMethod.invoke(socket);
|
||||
final String key =
|
||||
String.format("%s:%s", host, String.valueOf(socket.getPort())).toLowerCase(Locale.ROOT);
|
||||
putMethod.invoke(cache, key, session);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
<groupId>org.talend.libraries</groupId>
|
||||
<artifactId>talend-codegen-utils</artifactId>
|
||||
<!-- release for revert version of library -->
|
||||
<version>0.25.3</version>
|
||||
<version>0.25.4</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<properties>
|
||||
|
||||
@@ -100,4 +100,12 @@ public interface DiSchemaConstants {
|
||||
/** The key will have this as a prefix, pointing to the value. */
|
||||
String TALEND6_DYNAMIC_ADDITIONAL_PROPERTIES = "di.dynamic.prop."; //$NON-NLS-1$
|
||||
|
||||
/** tell Avro converter how to process Original Avro logical type time
|
||||
* if value is "TALEND_DATE", it mean use Talend Date, if not, will use Talend Integer like before
|
||||
* we add this only one purpose : for the old job, we keep Talend Integer, for new job, we use Talend Date
|
||||
* */
|
||||
public static final String LOGICAL_TIME_TYPE_AS = "LOGICAL_TIME_TYPE_AS";
|
||||
|
||||
public static final String AS_TALEND_DATE = "TALEND_DATE";
|
||||
|
||||
}
|
||||
|
||||
@@ -409,6 +409,8 @@ public class IncomingSchemaEnforcer {
|
||||
|
||||
// TODO(igonchar): This is wrong. However I left it as is. We have to fix it after release
|
||||
// Seems, talendType is added by Studio to schema
|
||||
//seems only a safe check for Date with Long and String type input,in fact, will not enter them, so consider remove the code below,
|
||||
//or it works for some old job?
|
||||
if ("java.util.Date".equals(javaClass) || "id_Date".equals(talendType)) {
|
||||
if (diValue instanceof Date) {
|
||||
avroValue = diValue;
|
||||
@@ -459,6 +461,12 @@ public class IncomingSchemaEnforcer {
|
||||
return;
|
||||
}
|
||||
|
||||
if (LogicalTypeUtils.isLogicalTimeMillis(fieldSchema)) {
|
||||
//the writer in snowflakewriter can process int and date both, snowflakewriter is the unique writer which studio use for logicalTime type.
|
||||
currentRecord.put(index, diValue);
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO(igonchar): I'm not sure it is correct. For me avro value should be string. Conversion to BigDecimal may be
|
||||
// delegated to component. Component should decide whether convert to BigDecimal
|
||||
if ("id_BigDecimal".equals(talendType) || "java.math.BigDecimal".equals(javaClass)) {
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
package org.talend.codegen.enforcer;
|
||||
|
||||
import static org.talend.codegen.DiSchemaConstants.TALEND6_COLUMN_TALEND_TYPE;
|
||||
import static org.talend.codegen.DiSchemaConstants.LOGICAL_TIME_TYPE_AS;
|
||||
import static org.talend.codegen.DiSchemaConstants.AS_TALEND_DATE;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
@@ -212,8 +214,13 @@ public class OutgoingSchemaEnforcer implements IndexedRecord {
|
||||
ZonedDateTime zonedDate = ld.atStartOfDay(ZoneId.systemDefault());
|
||||
return Date.from(zonedDate.toInstant());
|
||||
} else if (logicalType == LogicalTypes.timeMillis()) {
|
||||
return value;
|
||||
if (AS_TALEND_DATE.equals(valueField.getProp(LOGICAL_TIME_TYPE_AS))) {
|
||||
return new Date((Integer) value);
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
} else if (logicalType == LogicalTypes.timestampMillis()) {
|
||||
//TODO use java.sql.Timestamp for precision to nano second? not sure as logicalType is not only for database maybe
|
||||
return new Date((Long) value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,8 @@ public class OutgoingSchemaEnforcerTest {
|
||||
*/
|
||||
private static Schema talend6Schema;
|
||||
|
||||
private static Schema talend6Schema4LogicalTimeAsDateOutput;
|
||||
|
||||
/**
|
||||
* An actual record that a component would like to be emitted, which may or may not contain enriched schema
|
||||
* information.
|
||||
@@ -80,6 +82,20 @@ public class OutgoingSchemaEnforcerTest {
|
||||
.name("logicalTimestamp").type(AvroUtils._logicalTimestamp()).noDefault() //
|
||||
.endRecord(); //
|
||||
|
||||
talend6Schema4LogicalTimeAsDateOutput = SchemaBuilder.builder().record("Record").fields() //
|
||||
.name("id").type().intType().noDefault() //
|
||||
.name("name").type().stringType().noDefault() //
|
||||
.name("age").type().intType().noDefault() //
|
||||
.name("valid").type().booleanType().noDefault() //
|
||||
.name("createdDate").prop(DiSchemaConstants.TALEND6_COLUMN_TALEND_TYPE, "id_Date") //
|
||||
.prop(DiSchemaConstants.TALEND6_COLUMN_PATTERN, "yyyy-MM-dd'T'HH:mm:ss'000Z'").type().nullable().longType()
|
||||
.noDefault() //
|
||||
.name("logicalDate").type(AvroUtils._logicalDate()).noDefault() //
|
||||
.name("logicalTime").prop(DiSchemaConstants.LOGICAL_TIME_TYPE_AS, DiSchemaConstants.AS_TALEND_DATE)
|
||||
.type(AvroUtils._logicalTime()).noDefault() //
|
||||
.name("logicalTimestamp").type(AvroUtils._logicalTimestamp()).noDefault() //
|
||||
.endRecord(); //
|
||||
|
||||
record = new GenericData.Record(runtimeSchema);
|
||||
record.put(0, 1);
|
||||
record.put(1, "User");
|
||||
@@ -124,6 +140,22 @@ public class OutgoingSchemaEnforcerTest {
|
||||
assertThat(enforcer.get(7), equalTo((Object) new Date(1467170137872L)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDateOutput4LogicalTime() {
|
||||
IndexMapper indexMapper = new IndexMapperByIndex(talend6Schema4LogicalTimeAsDateOutput);
|
||||
OutgoingSchemaEnforcer enforcer = new OutgoingSchemaEnforcer(talend6Schema4LogicalTimeAsDateOutput, indexMapper);
|
||||
enforcer.setWrapped(record);
|
||||
|
||||
assertThat(enforcer.get(0), equalTo((Object) 1));
|
||||
assertThat(enforcer.get(1), equalTo((Object) "User"));
|
||||
assertThat(enforcer.get(2), equalTo((Object) 100));
|
||||
assertThat(enforcer.get(3), equalTo((Object) true));
|
||||
assertThat(enforcer.get(4), equalTo((Object) new Date(1467170137872L)));
|
||||
assertThat(enforcer.get(5), equalTo((Object) DATE_COMPARE));
|
||||
assertThat(enforcer.get(6), equalTo((Object) new Date(1000)));
|
||||
assertThat(enforcer.get(7), equalTo((Object) new Date(1467170137872L)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks {@link OutgoingSchemaEnforcer#get(int)} returns correct values retrieved from wrapped
|
||||
* {@link IndexedRecord} in case design and runtime schema have different order of the fields
|
||||
|
||||
@@ -4,7 +4,11 @@
|
||||
<groupId>org.talend</groupId>
|
||||
<artifactId>talend-httputil</artifactId>
|
||||
<name>talend-httputil</name>
|
||||
<version>1.0.1</version>
|
||||
<version>1.0.2</version>
|
||||
|
||||
<properties>
|
||||
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@@ -16,7 +20,7 @@
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>2.5.3</version>
|
||||
<version>2.9.7</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -34,6 +38,20 @@
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<distributionManagement>
|
||||
<snapshotRepository>
|
||||
<id>talend_nexus_deployment</id>
|
||||
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
|
||||
<snapshots><enabled>true</enabled></snapshots>
|
||||
<releases><enabled>false</enabled></releases>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>talend_nexus_deployment</id>
|
||||
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceRelease/</url>
|
||||
<snapshots><enabled>false</enabled></snapshots>
|
||||
<releases><enabled>true</enabled></releases>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
@@ -53,13 +71,5 @@
|
||||
<directory>src/main/java</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
<!--
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>src/test/java</directory>
|
||||
</testResource>
|
||||
</testResources>
|
||||
-->
|
||||
</build>
|
||||
</project>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user