Compare commits
473 Commits
release/5.
...
release/5.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9ced8f0f1b | ||
|
|
c8fc6015a0 | ||
|
|
8d31416607 | ||
|
|
2b4177287a | ||
|
|
1ff6aec7f4 | ||
|
|
6859959d72 | ||
|
|
e93e573c62 | ||
|
|
49e5227bfa | ||
|
|
eb824c8c7e | ||
|
|
5fcfd98d40 | ||
|
|
deb8ee5933 | ||
|
|
132f27bccd | ||
|
|
0f645548c0 | ||
|
|
9ce0220f21 | ||
|
|
9d60e5eda7 | ||
|
|
eac9c051d4 | ||
|
|
10811fb005 | ||
|
|
66652eba42 | ||
|
|
5aba3c7448 | ||
|
|
c15c8ade4a | ||
|
|
51ab43ae42 | ||
|
|
74dade8861 | ||
|
|
fa1e0eedd2 | ||
|
|
8a97c7c478 | ||
|
|
470dc7fb42 | ||
|
|
67310fd7b9 | ||
|
|
d36f450273 | ||
|
|
b2200108fb | ||
|
|
edcf1436f2 | ||
|
|
08cb60840c | ||
|
|
0766c2e48e | ||
|
|
0d4a4d51c9 | ||
|
|
33835fd55b | ||
|
|
7a3c6713c3 | ||
|
|
585c0325dc | ||
|
|
697895bb25 | ||
|
|
03aab14184 | ||
|
|
2624e739f3 | ||
|
|
87d40aa533 | ||
|
|
86e090c2a7 | ||
|
|
07ed52f8c6 | ||
|
|
e1011b3977 | ||
|
|
5b7f06a5ff | ||
|
|
8e76d74b07 | ||
|
|
c9e2d5271c | ||
|
|
41a9369e16 | ||
|
|
b98e8e1891 | ||
|
|
144c01fc84 | ||
|
|
f4dbed6a4f | ||
|
|
968946e2b4 | ||
|
|
b5c00c9f95 | ||
|
|
88e952d92f | ||
|
|
5267310b8d | ||
|
|
91c25a0c8e | ||
|
|
ca952b7ef1 | ||
|
|
346340c1aa | ||
|
|
64390a18f6 | ||
|
|
953e259d22 | ||
|
|
74f74a885e | ||
|
|
59d2f1104b | ||
|
|
b517d2a175 | ||
|
|
acd7ec3ac9 | ||
|
|
1e30a1d3a9 | ||
|
|
d93d1517cf | ||
|
|
2eb636e743 | ||
|
|
2a86020878 | ||
|
|
f3fc1d09e2 | ||
|
|
2169d0875a | ||
|
|
5edf5f0050 | ||
|
|
17c84ef2a6 | ||
|
|
017dc09f93 | ||
|
|
c5bb672e81 | ||
|
|
6c267df2bb | ||
|
|
a9efec19b6 | ||
|
|
f15d0fda5b | ||
|
|
24fe60c2b9 | ||
|
|
78002a88d1 | ||
|
|
36b3b40166 | ||
|
|
d39a56b0ad | ||
|
|
ea13a14f3c | ||
|
|
57c6f0eb39 | ||
|
|
70bbac254d | ||
|
|
dc9bec4610 | ||
|
|
807b51b432 | ||
|
|
6a74487574 | ||
|
|
df5d263bd4 | ||
|
|
5129ea9d45 | ||
|
|
b57e6838e4 | ||
|
|
df50fe44de | ||
|
|
92511c9740 | ||
|
|
ebeed546c9 | ||
|
|
2be2113881 | ||
|
|
e856677491 | ||
|
|
e88ba34567 | ||
|
|
34f0de171b | ||
|
|
8b912a6c59 | ||
|
|
eab8d8b92c | ||
|
|
1f0368991a | ||
|
|
e200339580 | ||
|
|
e903925b16 | ||
|
|
d3ae3d09cb | ||
|
|
1c89078f08 | ||
|
|
3bf0b1817b | ||
|
|
4e9e3aa670 | ||
|
|
59e0d87b38 | ||
|
|
c909491254 | ||
|
|
c4bfaea624 | ||
|
|
92c6617608 | ||
|
|
b204a97dde | ||
|
|
58282559f3 | ||
|
|
82fb5ab048 | ||
|
|
312d5c3b1c | ||
|
|
892b7e0ecf | ||
|
|
7116dc9c3f | ||
|
|
d5d93005c2 | ||
|
|
36f96b3d8e | ||
|
|
b0438b34e3 | ||
|
|
f578e81eef | ||
|
|
26dabc8443 | ||
|
|
679170a50e | ||
|
|
8bf7b20e6d | ||
|
|
1739c1a1bd | ||
|
|
7a467134eb | ||
|
|
bd3d778df7 | ||
|
|
533b9b03ac | ||
|
|
dbfdd0462b | ||
|
|
02701a1167 | ||
|
|
be32e6eac8 | ||
|
|
6e072d36c7 | ||
|
|
8bbf5f6094 | ||
|
|
fd333f8500 | ||
|
|
0650b41b91 | ||
|
|
fe1829206e | ||
|
|
141113a3a8 | ||
|
|
db8bc0107c | ||
|
|
fc9b33624f | ||
|
|
b6e0a76541 | ||
|
|
09df7b6fd0 | ||
|
|
ada539abbb | ||
|
|
d55e8a6b2a | ||
|
|
0ec8a3a3fe | ||
|
|
5975aeeca1 | ||
|
|
7c656c3d14 | ||
|
|
8cda2616dd | ||
|
|
033c1ad0bd | ||
|
|
237a979e55 | ||
|
|
860a89dc39 | ||
|
|
e12d1f1e18 | ||
|
|
4e36c8912a | ||
|
|
4fcf357a28 | ||
|
|
4403b48949 | ||
|
|
4e45b057c3 | ||
|
|
d0bf29028c | ||
|
|
decc82bb41 | ||
|
|
423bcbbbd5 | ||
|
|
5b52f2b5b8 | ||
|
|
396a75fb47 | ||
|
|
c56ae16bc8 | ||
|
|
47679f5613 | ||
|
|
c5a2c24f46 | ||
|
|
df6c9843fd | ||
|
|
594df0be3e | ||
|
|
67f5567932 | ||
|
|
3fb11ab978 | ||
|
|
3050f7151e | ||
|
|
318a87c1da | ||
|
|
429961a447 | ||
|
|
4d999086c2 | ||
|
|
6e2a8359f2 | ||
|
|
987c8b61c9 | ||
|
|
0fd98a1a8b | ||
|
|
a71492b0c6 | ||
|
|
bbd5cb1cf7 | ||
|
|
f11f6956ee | ||
|
|
52ea14785f | ||
|
|
7f490ed6db | ||
|
|
c98de97595 | ||
|
|
cf6c524f57 | ||
|
|
7b9a8b7dc2 | ||
|
|
86508c434d | ||
|
|
68e33016ce | ||
|
|
3a82f17533 | ||
|
|
db752d2fde | ||
|
|
e6a787d069 | ||
|
|
1698c5c243 | ||
|
|
b1df0c6a4a | ||
|
|
ca91c1b27a | ||
|
|
9b0b67efe5 | ||
|
|
47893300f0 | ||
|
|
09db8ad528 | ||
|
|
bce841fa40 | ||
|
|
715c9ecda5 | ||
|
|
ce15c832ba | ||
|
|
1647ea03cd | ||
|
|
2ddc694763 | ||
|
|
24586f133b | ||
|
|
26f44b9774 | ||
|
|
9244cc0d78 | ||
|
|
6bf07a751f | ||
|
|
5bc2db9cf9 | ||
|
|
6577706874 | ||
|
|
0389a1c5e3 | ||
|
|
d954acb226 | ||
|
|
2c3bf8f95a | ||
|
|
ee291dbe94 | ||
|
|
46de87592a | ||
|
|
b469484489 | ||
|
|
78bccc337f | ||
|
|
4573bd3977 | ||
|
|
f59454ad5d | ||
|
|
cacdec7d63 | ||
|
|
49b92e98b4 | ||
|
|
47d5c6e990 | ||
|
|
f670f94782 | ||
|
|
b0e272f8c2 | ||
|
|
7634c2cb19 | ||
|
|
c043eaf013 | ||
|
|
b8994d6634 | ||
|
|
3078a06461 | ||
|
|
70eeb4e43d | ||
|
|
57e14acbd2 | ||
|
|
c89a5685d6 | ||
|
|
3960f4db81 | ||
|
|
3e04b4b039 | ||
|
|
e7b1c0fd28 | ||
|
|
c1e10cd30e | ||
|
|
a9855f04e2 | ||
|
|
3782dff09c | ||
|
|
44bb16adf9 | ||
|
|
0bc3a5e565 | ||
|
|
e800d7ffec | ||
|
|
269cca108f | ||
|
|
1c12ff5b62 | ||
|
|
a547f72182 | ||
|
|
1ea5b0983e | ||
|
|
44ba2561ba | ||
|
|
12620d7fe0 | ||
|
|
9151ed67f9 | ||
|
|
e14330172e | ||
|
|
cfb5fb68d3 | ||
|
|
9dd710db15 | ||
|
|
fe8a80e4ac | ||
|
|
e60352d672 | ||
|
|
a45b731b4e | ||
|
|
ac34e67475 | ||
|
|
9aae893730 | ||
|
|
5ee38547a7 | ||
|
|
b390d784c6 | ||
|
|
73c1ba4e8c | ||
|
|
663ebaeefa | ||
|
|
6fd0387017 | ||
|
|
358cbb908e | ||
|
|
b6bee45229 | ||
|
|
35eca94250 | ||
|
|
b475ad8d0d | ||
|
|
2a5c16a017 | ||
|
|
e67290268d | ||
|
|
fa54706af7 | ||
|
|
8fd6cb2104 | ||
|
|
bf1e5cc409 | ||
|
|
8079a69c24 | ||
|
|
4b059e3c0d | ||
|
|
b1d86bd6f2 | ||
|
|
9302172572 | ||
|
|
12d75e53bf | ||
|
|
2444886d2c | ||
|
|
39fc271ba1 | ||
|
|
0a86d32fee | ||
|
|
b852e655d4 | ||
|
|
1532e0e31c | ||
|
|
93c6aa74d7 | ||
|
|
2b01953149 | ||
|
|
118a623533 | ||
|
|
9da0dfa541 | ||
|
|
c3bab4b5ce | ||
|
|
debcc83d63 | ||
|
|
a8025c581f | ||
|
|
25318c023e | ||
|
|
e1f3063f0b | ||
|
|
62df2525c8 | ||
|
|
9ad54b096d | ||
|
|
17a5e88a24 | ||
|
|
b3992c0a29 | ||
|
|
2249dc0b2b | ||
|
|
feaf3d9cd4 | ||
|
|
0bace3f9e6 | ||
|
|
b080a3f67f | ||
|
|
a1209b7fdd | ||
|
|
fb46c02727 | ||
|
|
0df8a9a7b3 | ||
|
|
6b912c24f4 | ||
|
|
7669771d5a | ||
|
|
b0b4315aab | ||
|
|
b6f53d0120 | ||
|
|
713fef287e | ||
|
|
1fc1307eb6 | ||
|
|
afbf7443ba | ||
|
|
65e0f0c01b | ||
|
|
a6ffa96a30 | ||
|
|
4924d36567 | ||
|
|
4954dc6f72 | ||
|
|
b6083b0c52 | ||
|
|
6e59e06794 | ||
|
|
90f56e7f90 | ||
|
|
f174f3288c | ||
|
|
8ff13b15b5 | ||
|
|
87eaff4d67 | ||
|
|
c50f66561c | ||
|
|
863bffac81 | ||
|
|
01980f3095 | ||
|
|
b5f02580d9 | ||
|
|
6f81556e4a | ||
|
|
7c50c6ced3 | ||
|
|
bd0f383ff0 | ||
|
|
256fcf6f7b | ||
|
|
609bdd5999 | ||
|
|
8d3caaa412 | ||
|
|
1505c35333 | ||
|
|
eb9d978e34 | ||
|
|
897efd043a | ||
|
|
1f8b8c85ca | ||
|
|
18e3747090 | ||
|
|
1afe84de93 | ||
|
|
013eb8d3f0 | ||
|
|
021889afd3 | ||
|
|
3114d40c0c | ||
|
|
507439d785 | ||
|
|
8f5d2c0d49 | ||
|
|
2600486bbe | ||
|
|
6087a46523 | ||
|
|
0712a27213 | ||
|
|
0d172c3035 | ||
|
|
b3e6862bdc | ||
|
|
7a2b256756 | ||
|
|
9f6b9a8a44 | ||
|
|
2a9275f7c5 | ||
|
|
c77598c0ca | ||
|
|
d3b341d6a8 | ||
|
|
0884624c6a | ||
|
|
fe7c17f153 | ||
|
|
7b87a11d3c | ||
|
|
7d7c562971 | ||
|
|
bb8c1d0535 | ||
|
|
6a7e7a9c06 | ||
|
|
f5c517dca2 | ||
|
|
322187f198 | ||
|
|
88710514e5 | ||
|
|
31c12f2ee1 | ||
|
|
8483d35af1 | ||
|
|
ea084a503c | ||
|
|
25b0f0732a | ||
|
|
4c53ed17fb | ||
|
|
b769d705a4 | ||
|
|
a3045feaa5 | ||
|
|
32353b426a | ||
|
|
a72576cb27 | ||
|
|
329a937be1 | ||
|
|
a8b6657b61 | ||
|
|
e51fd38bf2 | ||
|
|
0c436b3d06 | ||
|
|
f9deb2012c | ||
|
|
981a8938cd | ||
|
|
077664e32c | ||
|
|
f1205ea06d | ||
|
|
9af54fff22 | ||
|
|
fe85dc960f | ||
|
|
5a0b2660ec | ||
|
|
8c64a864bb | ||
|
|
8a4947114d | ||
|
|
3821df40b3 | ||
|
|
056d418eaa | ||
|
|
ea713c82a5 | ||
|
|
9f89a4c2a8 | ||
|
|
4ecb191446 | ||
|
|
04dde29d67 | ||
|
|
37cbab1850 | ||
|
|
1706bc437f | ||
|
|
0fadd95dc5 | ||
|
|
1a985ff340 | ||
|
|
09cde10db9 | ||
|
|
6499a3e2bf | ||
|
|
99c447df11 | ||
|
|
73f703603d | ||
|
|
a4b5e57daa | ||
|
|
ead81dd2ca | ||
|
|
a36b3bd574 | ||
|
|
768aeb42c4 | ||
|
|
931d91b98a | ||
|
|
4fb075bb71 | ||
|
|
ae39a55e08 | ||
|
|
0596016727 | ||
|
|
ffd46f920f | ||
|
|
690d742025 | ||
|
|
aebbb564f2 | ||
|
|
d1c55280c3 | ||
|
|
9c22cb11b6 | ||
|
|
98d1b7a904 | ||
|
|
568a262627 | ||
|
|
39ab7686b9 | ||
|
|
876959ae12 | ||
|
|
90275b296d | ||
|
|
bf8934b40a | ||
|
|
e35cdbb279 | ||
|
|
a65b2affb8 | ||
|
|
6fe0f1a7cb | ||
|
|
d5806df81d | ||
|
|
4afeff8adf | ||
|
|
eeb97c2af8 | ||
|
|
513df73b07 | ||
|
|
8ff7087cb7 | ||
|
|
a7efce3a94 | ||
|
|
d92c155434 | ||
|
|
ad409f5a66 | ||
|
|
761ecb4fb5 | ||
|
|
f7cde6d12c | ||
|
|
706fd67f7d | ||
|
|
6bb3a9ef74 | ||
|
|
5fc6bb2996 | ||
|
|
5852506748 | ||
|
|
689edf6476 | ||
|
|
1c0e651025 | ||
|
|
8a1a9b0de0 | ||
|
|
af1da04bdf | ||
|
|
c3e81c3972 | ||
|
|
0875bbedb9 | ||
|
|
bb84837ace | ||
|
|
f3f3eef89f | ||
|
|
ef5ccb82c0 | ||
|
|
ff87fcb956 | ||
|
|
f2438c353d | ||
|
|
f27bfbeaef | ||
|
|
5f16bc105a | ||
|
|
2063762134 | ||
|
|
d7505c16a1 | ||
|
|
3a24558d56 | ||
|
|
c9cc45c3bf | ||
|
|
69bf0965fd | ||
|
|
624dba28ae | ||
|
|
fecd59404c | ||
|
|
18ea0c919d | ||
|
|
a9518edb4d | ||
|
|
599aa47478 | ||
|
|
929f6ea81c | ||
|
|
6d03b5e3b7 | ||
|
|
97fe058c33 | ||
|
|
876e5ae530 | ||
|
|
9309ec77fc | ||
|
|
f949752660 | ||
|
|
5319765903 | ||
|
|
d0f4f5576d | ||
|
|
f3a47d159c | ||
|
|
ecebf55d1a | ||
|
|
1029975b99 | ||
|
|
51d8f6a592 | ||
|
|
3964f425eb | ||
|
|
104c3e489c | ||
|
|
708a076329 | ||
|
|
91cab8553f | ||
|
|
e221a3ac2b | ||
|
|
5de9d7451f | ||
|
|
f5c9bcf84c | ||
|
|
a1eec2a5c0 | ||
|
|
c9fc6c5964 | ||
|
|
99d74db820 | ||
|
|
2b64f6abc9 | ||
|
|
13251c29c3 | ||
|
|
e41e2242f2 | ||
|
|
c8538a1fcc | ||
|
|
70b52f6f6b | ||
|
|
55315c8093 | ||
|
|
1ea0f9a08f | ||
|
|
8180f55dd3 | ||
|
|
a366fc48b2 |
@@ -46,7 +46,6 @@ ComponentProjectPreferencePage.Warning=Warnung
|
||||
AbstractXMLConfigPage.VERSIONTip=Ein Dezimalwert zur Angabe der Version Ihrer neuen Komponente.
|
||||
WizardJetFilesChoosePage.Directory=Verzeichnis:
|
||||
CreateComponentWizard.NewComponent=Neue Komponente
|
||||
WizardComponentFolderPage.Name=Name
|
||||
RemoveResourceAction.Remove=Entfernen
|
||||
WizardJetFilesChoosePage.UseIconFrom=Verwende Icon von:
|
||||
ImportComponentDialog.ImportFinished=Import der Komponente abgeschlossen
|
||||
|
||||
@@ -15,7 +15,6 @@ Require-Bundle: org.talend.model,
|
||||
org.apache.log4j,
|
||||
org.eclipse.jet.editor,
|
||||
org.talend.core,
|
||||
org.talend.core.ui,
|
||||
org.talend.designer.components.localprovider,
|
||||
org.eclipse.jdt.core,
|
||||
org.eclipse.xsd,
|
||||
@@ -29,4 +28,3 @@ Export-Package: org.talend.componentdesigner,
|
||||
org.talend.componentdesigner.manager,
|
||||
org.talend.componentdesigner.ui
|
||||
Bundle-ClassPath: .
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<extension point="org.eclipse.ui.perspectives">
|
||||
<perspective class="org.talend.componentdesigner.ui.Perspective"
|
||||
id="org.talend.componentdesigner.perspective"
|
||||
name="Component's Designer">
|
||||
name="Component Designer">
|
||||
</perspective>
|
||||
</extension>
|
||||
<extension point="org.eclipse.ui.perspectiveExtensions">
|
||||
|
||||
@@ -34,10 +34,8 @@ import org.talend.componentdesigner.i18n.internal.Messages;
|
||||
import org.talend.componentdesigner.util.XSDValidator;
|
||||
import org.talend.componentdesigner.util.file.FileCopy;
|
||||
import org.talend.core.CorePlugin;
|
||||
import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.model.components.IComponent;
|
||||
import org.talend.core.model.components.IComponentsFactory;
|
||||
import org.talend.core.service.IComponentsLocalProviderService;
|
||||
import org.talend.repository.model.ComponentsFactoryProvider;
|
||||
|
||||
/**
|
||||
@@ -95,14 +93,8 @@ public class PushToPaletteActionProvider extends CommonActionProvider {
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
String path = null;
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IComponentsLocalProviderService.class)) {
|
||||
IComponentsLocalProviderService service = (IComponentsLocalProviderService) GlobalServiceRegister.getDefault()
|
||||
.getService(IComponentsLocalProviderService.class);
|
||||
if (service != null) {
|
||||
path = service.getPreferenceStore().getString("USER_COMPONENTS_FOLDER"); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
String path = CorePlugin.getDefault().getComponentsLocalProviderService().getPreferenceStore()
|
||||
.getString("USER_COMPONENTS_FOLDER"); //$NON-NLS-1$
|
||||
if (path == null || path.length() == 0) {
|
||||
new MessageDialog(
|
||||
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
|
||||
|
||||
@@ -242,6 +242,7 @@
|
||||
<import plugin="com.ibm.icu" version="4.2.1.v20100412" match="equivalent"/>
|
||||
<import plugin="org.eclipse.wst.common.core" version="1.1.201" match="compatible"/>
|
||||
<import plugin="org.eclipse.osgi.util" version="3.1.300" match="compatible"/>
|
||||
<import plugin="org.talend.libraries.jdom"/>
|
||||
<import plugin="org.talend.common.ui.runtime"/>
|
||||
<import plugin="org.talend.libraries.jdbc.mysql"/>
|
||||
<import plugin="org.talend.libraries.jdbc.jtds"/>
|
||||
@@ -1388,6 +1389,12 @@
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="org.talend.libraries.jdom"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="org.talend.libraries.jexcel"
|
||||
download-size="0"
|
||||
@@ -1413,11 +1420,4 @@
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="org.talend.osgi.lib.loader"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
</feature>
|
||||
|
||||
@@ -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: 1.0.0.qualifier
|
||||
Bundle-Version: 2.2.0.qualifier
|
||||
Bundle-Activator: org.talend.designer.abstractmap.MapPlugin
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.talend.core,
|
||||
|
||||
@@ -40,6 +40,10 @@ public class DefaultDropTargetListener implements TransferDropTargetListener {
|
||||
|
||||
private Point lastCursorPosition;
|
||||
|
||||
private long lastDragTime;
|
||||
|
||||
private boolean scrollUp = false;
|
||||
|
||||
public DefaultDropTargetListener(AbstractMapperManager mapperManager) {
|
||||
super();
|
||||
this.mapperManager = mapperManager;
|
||||
@@ -53,12 +57,14 @@ public class DefaultDropTargetListener implements TransferDropTargetListener {
|
||||
return mapperManager.getUiManager();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dragEnter(DropTargetEvent event) {
|
||||
updatePopupPosition(event);
|
||||
// updatePopupPosition(event);
|
||||
setPopupVisible(true);
|
||||
event.detail = mapperManager.getUiManager().getCurrentDragDetail();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dragLeave(DropTargetEvent event) {
|
||||
dragFinished();
|
||||
}
|
||||
@@ -76,6 +82,7 @@ public class DefaultDropTargetListener implements TransferDropTargetListener {
|
||||
draggingInfosPopup.setVisible(visible);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dragOperationChanged(DropTargetEvent event) {
|
||||
updatePopupPosition(event);
|
||||
detectPressedKeys(event);
|
||||
@@ -124,6 +131,7 @@ public class DefaultDropTargetListener implements TransferDropTargetListener {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dragOver(DropTargetEvent event) {
|
||||
// System.out.println(((DropTarget)event.widget).getControl());
|
||||
event.detail = DND.DROP_NONE;
|
||||
@@ -133,20 +141,17 @@ public class DefaultDropTargetListener implements TransferDropTargetListener {
|
||||
}
|
||||
|
||||
private void updatePopupPosition(DropTargetEvent event) {
|
||||
|
||||
Point cursorPosition = new Point(event.x, event.y);
|
||||
if (!cursorPosition.equals(lastCursorPosition)) {
|
||||
AbstractUIManager uiManager = mapperManager.getUiManager();
|
||||
DraggingInfosPopup draggingInfosPopup = uiManager.getDraggingInfosPopup();
|
||||
draggingInfosPopup.setCursorPosition(event.x, event.y);
|
||||
}
|
||||
// System.out.println("updatePopupPosition:" + lastCursorPosition + "-->" + cursorPosition);
|
||||
lastCursorPosition = cursorPosition;
|
||||
}
|
||||
|
||||
private void autoScroll(DropTargetEvent event) {
|
||||
if (lastCursorPosition == null || lastCursorPosition.y == event.y) {
|
||||
return;
|
||||
}
|
||||
Composite currentComposite = null;
|
||||
Object source = event.getSource();
|
||||
if (source instanceof DropTarget) {
|
||||
@@ -163,22 +168,51 @@ public class DefaultDropTargetListener implements TransferDropTargetListener {
|
||||
if (parentScrolledComposite == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
ScrollBar vBar = parentScrolledComposite.getVerticalBar();
|
||||
int increment = event.y - lastCursorPosition.y;
|
||||
if (increment > 0) {
|
||||
increment = increment + 3;
|
||||
} else {
|
||||
increment = increment - 3;
|
||||
}
|
||||
|
||||
Control content = parentScrolledComposite.getContent();
|
||||
if (content != null) {
|
||||
Point location = content.getLocation();
|
||||
int vSelection = vBar.getSelection();
|
||||
int increment = 0;
|
||||
int thumb = vBar.getThumb();
|
||||
if (lastCursorPosition == null || lastCursorPosition.y == event.y) {
|
||||
long currentTimeMillis = System.currentTimeMillis();
|
||||
long time = currentTimeMillis - lastDragTime;
|
||||
|
||||
if (lastDragTime != 0 && time > 100) {
|
||||
Point pointToScrollComposite = parentScrolledComposite.toControl(event.x, event.y);
|
||||
|
||||
// scroll up
|
||||
if (pointToScrollComposite.y < 40) {
|
||||
increment = -20;
|
||||
}
|
||||
// scroll down
|
||||
else if (thumb - pointToScrollComposite.y < 40) {
|
||||
increment = 20;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
increment = event.y - lastCursorPosition.y;
|
||||
if (increment > 0) {
|
||||
increment = increment + 3;
|
||||
} else {
|
||||
increment = increment - 3;
|
||||
}
|
||||
}
|
||||
|
||||
if (vSelection >= 0 && vSelection + increment > 0 && vSelection + increment < vBar.getMaximum()) {
|
||||
vBar.setSelection(vSelection + increment);
|
||||
}
|
||||
content.setLocation(location.x, -vSelection);
|
||||
mapperManager.getUiManager().refreshBackground(true, false);
|
||||
lastDragTime = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
// Event e = new Event();
|
||||
@@ -205,6 +239,7 @@ public class DefaultDropTargetListener implements TransferDropTargetListener {
|
||||
return getParentScrolledComposite(composite.getParent());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drop(DropTargetEvent event) {
|
||||
dragFinished();
|
||||
}
|
||||
@@ -218,6 +253,7 @@ public class DefaultDropTargetListener implements TransferDropTargetListener {
|
||||
return getClass() != DefaultDropTargetListener.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dropAccept(DropTargetEvent event) {
|
||||
|
||||
}
|
||||
@@ -227,6 +263,7 @@ public class DefaultDropTargetListener implements TransferDropTargetListener {
|
||||
*
|
||||
* @see org.eclipse.jface.util.TransferDropTargetListener#getTransfer()
|
||||
*/
|
||||
@Override
|
||||
public Transfer getTransfer() {
|
||||
return TableEntriesTransfer.getInstance();
|
||||
}
|
||||
@@ -236,6 +273,7 @@ public class DefaultDropTargetListener implements TransferDropTargetListener {
|
||||
*
|
||||
* @see org.eclipse.jface.util.TransferDropTargetListener#isEnabled(org.eclipse.swt.dnd.DropTargetEvent)
|
||||
*/
|
||||
@Override
|
||||
public boolean isEnabled(DropTargetEvent event) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -14,5 +14,4 @@ AlfrescoOutputModelManager.prefixConflict=Kann das Modell nicht hinzuf
|
||||
AlfrescoOutputModelManager.notYetAdded=Dieses Modell wurde noch nicht hinzugefügt.
|
||||
AlfrescoModelDialog.type=Typ
|
||||
AlfrescoModelDialog.addModelFailed=Modell hinzufügen fehlgeschlagen
|
||||
AlfrescoModelDialog.modelTable.name=Name
|
||||
AlfrescoModelDialog.remove=Entfernen
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Alfresco Output Component Plug-in
|
||||
Bundle-Name: Alfresco Output external component
|
||||
Bundle-SymbolicName: org.talend.designer.alfrescooutput;singleton:=true
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Version: 2.2.0.qualifier
|
||||
Bundle-Vendor: .Talend SA.
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.talend.core,
|
||||
org.talend.core.ui,
|
||||
org.talend.commons.ui,
|
||||
org.talend.libraries.dom4j-jaxen,
|
||||
org.talend.designer.codegen,
|
||||
|
||||
@@ -16,7 +16,6 @@ BusinessModelingAssistantProvider.AvaiableDomainModelElements=Verf
|
||||
BusinessPaletteFactory.BidirectionalRelationShip=Bidirektionale Beziehung
|
||||
BusinessPaletteFactory.CreateDirectionalRelationShip=Direktionale Beziehung hinzufügen
|
||||
BusinessPaletteFactory.CreateBidirectionalRelationShip=Bidirektionale Beziehung hinzufügen
|
||||
AssignmentPropertySection.Name=Name
|
||||
CreateAssignmentCommand.CannotAssign=Zuordnung nicht möglich.
|
||||
BusinessNewDiagramFileWizard.DiagramRootElement=Diagramm root-Element
|
||||
BusinessNewDiagramFileWizard.NoDiagramRootElementSelectedError=Kein Diagram-Root Element ausgewählt
|
||||
|
||||
@@ -45,7 +45,7 @@ BusinessPaletteFactory.InputComment=Cr
|
||||
BusinessPaletteFactory.Data=Données
|
||||
BusinessPaletteFactory.Ellipse=Ellipse
|
||||
BusinessPaletteFactory.Input=Lecture
|
||||
BusinessPaletteFactory.List=liste
|
||||
BusinessPaletteFactory.List=Liste
|
||||
BusinessPaletteFactory.Relationshop=Relation
|
||||
BusinessAbstractParser.ValueOfBooleanIsExpected=Une valeur de type Boolean est attendue
|
||||
BusinessPaletteFactory.decision=Décision
|
||||
|
||||
@@ -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: 1.0.0.qualifier
|
||||
Bundle-Version: 2.2.0.qualifier
|
||||
Bundle-ClassPath: .
|
||||
Bundle-Activator: org.talend.designer.business.model.business.diagram.part.BusinessDiagramEditorPlugin
|
||||
Bundle-Vendor: %providerName
|
||||
@@ -19,7 +19,6 @@ Require-Bundle: org.eclipse.ui.ide,
|
||||
org.eclipse.gmf.runtime.diagram.ui.properties,
|
||||
org.apache.commons.collections,
|
||||
org.talend.core,
|
||||
org.talend.core.ui,
|
||||
org.talend.core.repository,
|
||||
org.talend.repository,
|
||||
org.talend.model,
|
||||
@@ -32,6 +31,5 @@ Require-Bundle: org.eclipse.ui.ide,
|
||||
org.apache.batik.ext.awt,
|
||||
org.talend.metadata.managment,
|
||||
com.ibm.icu,
|
||||
org.talend.libraries.apache,
|
||||
org.talend.repository.items.importexport
|
||||
org.talend.libraries.apache
|
||||
Eclipse-LazyStart: true
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
pluginName=Business Diagram Plug-in
|
||||
pluginName=Business Plugin
|
||||
providerName=.Talend SA.
|
||||
repository.businessProcess=Business Models
|
||||
@@ -590,20 +590,5 @@
|
||||
type="BUSINESS_PROCESS">
|
||||
</repositoryNode>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.talend.repository.items.importexport.handler">
|
||||
<importItemsProvider
|
||||
id="org.talend.designer.business.diagram.importProvider"
|
||||
name="Business Diagram importer"
|
||||
priority="NORMAL">
|
||||
<importItemsHandler
|
||||
class="org.talend.designer.business.diagram.views.handler.BusinessDiagramImportHandler">
|
||||
<parameter
|
||||
name="type"
|
||||
value="BUSINESS_PROCESS">
|
||||
</parameter>
|
||||
</importItemsHandler>
|
||||
</importItemsProvider>
|
||||
</extension>
|
||||
|
||||
</plugin>
|
||||
|
||||
@@ -86,8 +86,7 @@ public class CreateDiagramAction extends AContextualAction implements IIntroActi
|
||||
if (nodeType == ERepositoryObjectType.BUSINESS_PROCESS) {
|
||||
enabled = true;
|
||||
}
|
||||
if (repositoryNode.getObject() != null
|
||||
&& repositoryNode.getObject().getProperty().getItem().getState().isDeleted()) {
|
||||
if (repositoryNode.getObject() != null && repositoryNode.getObject().isDeleted()) {
|
||||
enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2013 Talend Inc. - www.talend.com
|
||||
//
|
||||
// This source code is available under agreement available at
|
||||
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
|
||||
//
|
||||
// You should have received a copy of the agreement
|
||||
// along with this program; if not, write to Talend SA
|
||||
// 9 rue Pages 92150 Suresnes, France
|
||||
//
|
||||
// ============================================================================
|
||||
package org.talend.designer.business.diagram.views.handler;
|
||||
|
||||
import org.eclipse.emf.common.util.URI;
|
||||
import org.eclipse.emf.ecore.resource.Resource;
|
||||
import org.talend.commons.emf.TalendXMIResource;
|
||||
import org.talend.repository.items.importexport.handlers.imports.ImportRepTypeHandler;
|
||||
|
||||
/**
|
||||
* DOC ggu class global comment. Detailled comment
|
||||
*/
|
||||
public class BusinessDiagramImportHandler extends ImportRepTypeHandler {
|
||||
|
||||
/**
|
||||
* DOC ggu BusinessDiagramImportHandler constructor comment.
|
||||
*/
|
||||
public BusinessDiagramImportHandler() {
|
||||
super();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* org.talend.repository.items.importexport.handlers.imports.ImportRepTypeHandler#createItemResource(org.eclipse
|
||||
* .emf.common.util.URI)
|
||||
*/
|
||||
@Override
|
||||
protected Resource createItemResource(URI pathUri) {
|
||||
return new TalendXMIResource(pathUri);
|
||||
}
|
||||
}
|
||||
@@ -49,6 +49,7 @@ import org.talend.core.model.properties.ItemState;
|
||||
import org.talend.core.model.properties.Property;
|
||||
import org.talend.core.model.repository.ERepositoryObjectType;
|
||||
import org.talend.core.model.repository.IRepositoryViewObject;
|
||||
import org.talend.core.model.repository.RepositoryManager;
|
||||
import org.talend.core.repository.model.ProxyRepositoryFactory;
|
||||
import org.talend.core.ui.ILastVersionChecker;
|
||||
import org.talend.designer.business.diagram.custom.actions.DiagramResourceManager;
|
||||
@@ -208,6 +209,7 @@ public class BusinessDiagramEditor extends FileDiagramEditor implements IGotoMar
|
||||
}
|
||||
propertyIsDirty = false;
|
||||
firePropertyChange(IEditorPart.PROP_DIRTY);
|
||||
RepositoryManager.refreshSavedNode(repositoryEditorInput.getRepositoryNode());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,6 @@ CodeGeneratorEmittersPoolFactory.componentCompiled=Komponenten kompiliert in {0}
|
||||
CodeGeneratorEmittersPoolFactory.failCompail=Kompilierung der Komponenten fehlgeschlafen : \r\n
|
||||
CodeGeneratorEmittersPoolFactory.initialException=Ausnahme bei der Initialisierung
|
||||
CodeGeneratorEmittersPoolFactory.jetEmitterInitialException=Fehler bei der JetEmitter Initialisierung
|
||||
CodeGeneratorService.invalidLanguage1=Ungültiger Sprachtyp
|
||||
CodeGeneratorService.invalidLanguage2=Ungültiger Sprachtyp
|
||||
CodeGenInit.createProject=Erstelle {0} Projekt
|
||||
CodeGenInit.deleteProject=Lösche {0} Projekt
|
||||
CodeGenInit.initTemplate=Initialisiere Templates
|
||||
|
||||
@@ -132,4 +132,3 @@ FAMILY.Vertica=Vertica
|
||||
FAMILY.VtigerCRM=VtigerCRM
|
||||
FAMILY.XML=XML
|
||||
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=Update the palette for editors
|
||||
ComponentsPreferencePage.componentAssist=Enable Component Creation Assistant
|
||||
|
||||
@@ -43,7 +43,7 @@ CodeGeneratorEmittersPoolFactory.dialogContent=La g
|
||||
CodeGeneratorEmittersPoolFactory.operationCanceled=Opération annulée
|
||||
ComponentsFactory.afterSystemComponent=après le(s) composant(s) système
|
||||
ComponentsFactory.componentNotFound=Impossible de trouver le dossier du composant :
|
||||
ComponentsFactory.load.components=Chargement des composants...
|
||||
ComponentsFactory.load.components=Charger des composants...
|
||||
ComponentsFactory.parentNotRecompiled=Attention\: les parents de *.inc.javajet ne sont pas recompilés.
|
||||
ComponentsLocalProviderService.componentLoadError=Erreur de chargement du composant
|
||||
ComponentsLocalProviderService.talendExchangeError=Erreur de Talend Exchange
|
||||
@@ -60,7 +60,6 @@ ComponenttRunJobPreferencePage.showCorrespondingJob=Afficher le Job correspondan
|
||||
XsdValidationCacheManager.unableLoadxsd=impossible de charger le fichier de cache de validation xsd
|
||||
XsdValidationCacheManager.unableSavexsd=impossible d'enregistrer le fichier de cache de validation xsd
|
||||
prefs.configuration.LINK_STYLE.AUTO=Auto
|
||||
prefs.configuration.LINK_STYLE.BEZIER_CURVE=Courbes
|
||||
prefs.configuration.LINK_STYLE.LINE=Lignes (rapide)
|
||||
FAMILY.AS400=AS400
|
||||
FAMILY.Access=Access
|
||||
@@ -112,7 +111,7 @@ FAMILY.OLAP_Cube=Cube OLAP
|
||||
FAMILY.Oracle=Oracle
|
||||
FAMILY.Orchestration=Orchestration
|
||||
FAMILY.Output=Ecriture
|
||||
FAMILY.ParAccel=Paraccel
|
||||
FAMILY.ParAccel=ParAccel
|
||||
FAMILY.PostgreSQL=PostgreSQL
|
||||
FAMILY.PostgresPlus=PostgresPlus
|
||||
FAMILY.Processing=Transformation
|
||||
|
||||
@@ -65,24 +65,24 @@ prefs.configuration.LINK_STYLE.LINE=\u76F4\u7DDA(\u6700\u901F)
|
||||
FAMILY.AS400=AS400
|
||||
FAMILY.Access=Access
|
||||
FAMILY.Alfresco=Alfresco
|
||||
FAMILY.Business=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3
|
||||
FAMILY.Business_Intelligence=\u30D3\u30B8\u30CD\u30B9\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30B9
|
||||
FAMILY.Business=Business
|
||||
FAMILY.Business_Intelligence=Business Intelligence
|
||||
FAMILY.CentricCRM=CentricCRM
|
||||
FAMILY.Charts=Charts
|
||||
FAMILY.Connections=\u63A5\u7D9A
|
||||
FAMILY.Custom_Code=\u30AB\u30B9\u30BF\u30E0\u30B3\u30FC\u30C9
|
||||
FAMILY.Connections=Connections
|
||||
FAMILY.Custom_Code=Custom Code
|
||||
FAMILY.DB2=DB2
|
||||
FAMILY.DB_Generic=\u6C4E\u7528ODBC
|
||||
FAMILY.DB_JDBC=\u6C4E\u7528JDBC
|
||||
FAMILY.DB_Generic=DB Generic
|
||||
FAMILY.DB_JDBC=DB JDBC
|
||||
FAMILY.DB_SCD=DB SCD
|
||||
FAMILY.Data_Quality=\u30C7\u30FC\u30BF\u30AF\u30AA\u30EA\u30C6\u30A3
|
||||
FAMILY.Databases=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
|
||||
FAMILY.Data_Quality=Data Quality
|
||||
FAMILY.Databases=Databases
|
||||
FAMILY.ELT=ELT
|
||||
FAMILY.ESB=ESB
|
||||
FAMILY.EXASolution=EXASolution
|
||||
FAMILY.eXist=eXist
|
||||
FAMILY.FTP=FTP
|
||||
FAMILY.Fields=\u9805\u76EE\u5024\u5909\u63DB
|
||||
FAMILY.Fields=Fields
|
||||
FAMILY.File=\u30D5\u30A1\u30A4\u30EB
|
||||
FAMILY.FireBird=Firebird
|
||||
FAMILY.Greenplum=Greenplum
|
||||
@@ -91,31 +91,30 @@ FAMILY.Healthcare=Healthcare
|
||||
FAMILY.Hive=Hive
|
||||
FAMILY.Informix=Informix
|
||||
FAMILY.Ingres=Ingres
|
||||
FAMILY.Input=\u30D5\u30A1\u30A4\u30EB\u5165\u529B
|
||||
FAMILY.Input=Input
|
||||
FAMILY.Interbase=Interbase
|
||||
FAMILY.Internet=Internet
|
||||
FAMILY.Jasper=Jasper
|
||||
FAMILY.JavaDB=JavaDB
|
||||
FAMILY.JDBC=\u6C4E\u7528JDBC
|
||||
FAMILY.JDBC=JDBC
|
||||
FAMILY.LDAP=LDAP
|
||||
FAMILY.Logs_Errors=\u30ED\u30B0\uFF06\u30A8\u30E9\u30FC\u30CF\u30F3\u30C9\u30EA\u30F3\u30B0
|
||||
FAMILY.Logs_Errors=Logs & Errors
|
||||
FAMILY.MS_SQL_Server=MS SQL Server
|
||||
FAMILY.MSSql=MSSql
|
||||
FAMILY.Management=\u30D5\u30A1\u30A4\u30EB\u64CD\u4F5C
|
||||
FAMILY.Management=Management
|
||||
FAMILY.MaxDB=MaxDB
|
||||
FAMILY.Microsoft_AX=Microsoft AX
|
||||
FAMILY.Microsoft_CRM=Microsoft CRM
|
||||
FAMILY.Misc=\u305D\u306E\u4ED6
|
||||
FAMILY.Misc=Misc
|
||||
FAMILY.MySQL=MySQL
|
||||
FAMILY.Netezza=Netezza
|
||||
FAMILY.OLAP_Cube=OLAP\u30AD\u30E5\u30FC\u30D6
|
||||
FAMILY.OLAP_Cube=OLAP Cube
|
||||
FAMILY.Oracle=Oracle
|
||||
FAMILY.Orchestration=\u30D7\u30ED\u30BB\u30B9\u5236\u5FA1
|
||||
FAMILY.Output=\u30D5\u30A1\u30A4\u30EB\u51FA\u529B
|
||||
FAMILY.Orchestration=Orchestration
|
||||
FAMILY.ParAccel=ParAccel
|
||||
FAMILY.PostgreSQL=PostgreSQL
|
||||
FAMILY.PostgresPlus=PostgresPlus
|
||||
FAMILY.Processing=\u5909\u63DB\u51E6\u7406
|
||||
FAMILY.Processing=Processing
|
||||
FAMILY.SAP=SAP
|
||||
FAMILY.Sas=Sas
|
||||
FAMILY.SCD=SCD
|
||||
|
||||
@@ -3,6 +3,6 @@ Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Test
|
||||
Bundle-SymbolicName: org.talend.designer.codegen.test
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Fragment-Host: org.talend.designer.codegen
|
||||
Fragment-Host: org.talend.designer.codegen;bundle-version="2.2.0"
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||
Require-Bundle: org.junit4
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: CodeGen Plug-in
|
||||
Bundle-Name: Codegen Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.codegen;singleton:=true
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Version: 2.2.0.qualifier
|
||||
Bundle-Localization: plugin
|
||||
Require-Bundle: org.talend.core.repository,
|
||||
org.eclipse.emf.codegen,
|
||||
org.eclipse.jdt.core,
|
||||
org.talend.repository,
|
||||
org.talend.commons.ui,
|
||||
org.eclipse.emf.ecore.xmi,
|
||||
org.talend.model,
|
||||
org.talend.metadata.managment,
|
||||
org.talend.designer.core,
|
||||
org.apache.xerces,
|
||||
org.talend.core,
|
||||
org.talend.core.ui,
|
||||
org.eclipse.ui.workbench,
|
||||
org.apache.log4j
|
||||
Eclipse-LazyStart: true
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?eclipse version="3.2"?>
|
||||
<plugin>
|
||||
<extension-point id="additional_jetfile" name="Additional Jet File to generate" schema="schema/additional_jetfile.exsd"/>
|
||||
<extension-point id="componentFilter" name="Component filter" schema="schema/componentFilter.exsd"/>
|
||||
<extension
|
||||
point="org.eclipse.ui.commands">
|
||||
<command
|
||||
@@ -51,13 +50,13 @@
|
||||
<page
|
||||
category="org.talend.core.prefs"
|
||||
class="org.talend.designer.codegen.components.ui.ComponentsPreferencePage"
|
||||
id="org.talend.designer.codegen.components.preference"
|
||||
id="org.talend.designer.codegen.components.localprovider.page1"
|
||||
name="%components">
|
||||
</page>
|
||||
<page
|
||||
category="org.talend.designer.codegen.components.preference"
|
||||
class="org.talend.designer.components.preference.ComponentsFormatPreferencePage"
|
||||
id="org.talend.designer.codegen.components.preference.format"
|
||||
category="org.talend.designer.codegen.components.localprovider.page1"
|
||||
class="org.talend.designer.components.preference.labelformat.ComponentsFormatPreferencePage"
|
||||
id="org.talend.designer.codegen.components.localprovider.page2"
|
||||
name="%format">
|
||||
</page>
|
||||
</extension>
|
||||
|
||||
@@ -72,47 +72,25 @@
|
||||
camelContext.setRegistry(contextRegister);
|
||||
|
||||
<%
|
||||
boolean isStudioEEVersion = org.talend.core.PluginChecker.isTIS();
|
||||
List<? extends INode> cxfNodes = process.getNodesOfType("cCXF");
|
||||
if( null != cxfNodes && cxfNodes.size() >0 ){
|
||||
boolean hasCXFConsumer = false;
|
||||
boolean hasCXFSAMLProvider = false;
|
||||
for(INode n: cxfNodes){
|
||||
int incomingConnections = n.getIncomingConnections().size();
|
||||
if(incomingConnections > 0){
|
||||
hasCXFConsumer = true;
|
||||
}else{
|
||||
String dataformat = ElementParameterParser.getValue(n, "__DATAFORMAT__");
|
||||
|
||||
String useServiceRegistry = ElementParameterParser.getValue(n, "__ENABLE_REGISTRY__");
|
||||
if(!isStudioEEVersion || "RAW".equals(dataformat) || "CXF_MESSAGE".equals(dataformat)){
|
||||
useServiceRegistry = "false";
|
||||
}
|
||||
|
||||
String useSecurity = ElementParameterParser.getValue(n, "__ENABLE_SECURITY__");
|
||||
if("true".equals(useServiceRegistry) || "RAW".equals(dataformat) || "CXF_MESSAGE".equals(dataformat)){
|
||||
useSecurity = "false";
|
||||
}
|
||||
|
||||
if("true".equals(useServiceRegistry) || ("true".equals(useSecurity) && "SAML".equals(ElementParameterParser.getValue(n, "__SECURITY_TYPE__")))){
|
||||
hasCXFSAMLProvider = true;
|
||||
}
|
||||
if(hasCXFConsumer && hasCXFSAMLProvider){
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(hasCXFConsumer){
|
||||
%>
|
||||
contextRegister.register("CXF_PAYLOAD_HEADER_FILTER", consumerSoapHeaderFilter);
|
||||
contextRegister.register("CXF_PAYLOAD_HEADER_FILTER", new CxfConsumerSoapHeaderFilter());
|
||||
<%
|
||||
}
|
||||
if(hasCXFSAMLProvider){
|
||||
%>
|
||||
contextRegister.register("DEFAULT_CXF_BINDING", new CXFProviderBinding());
|
||||
<% }
|
||||
}
|
||||
|
||||
%>
|
||||
|
||||
<%
|
||||
//then process cBeanRegister components
|
||||
List<? extends INode> beanRegisterNodes = process.getNodesOfType("cBeanRegister");
|
||||
if(beanRegisterNodes != null && beanRegisterNodes.size()>0){
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
return String.valueOf(obj);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
<%
|
||||
List<? extends INode> cMailNodes = process.getNodesOfType("cMail");
|
||||
if(cMailNodes.size() > 0){
|
||||
@@ -101,29 +101,19 @@
|
||||
boolean hasCXFComponent = false;
|
||||
boolean hasCXFSamlTokenProvider = false;
|
||||
boolean hasCXFSamlTokenConsumer = false;
|
||||
boolean hasCXFSamlTokenAuthorizationConsumer = false;
|
||||
boolean hasCXFUsernameTokenProvider = false;
|
||||
boolean hasCXFUsernameTokenConsumer = false;
|
||||
boolean hasCXFHTTPAuthConsumer = false;
|
||||
boolean hasCXFHTTPAuthProvider = false;
|
||||
boolean hasCXFComponentConsumer = false;
|
||||
boolean hasCXFRegistryProvider = false;
|
||||
boolean hasCXFRegistryConsumer = false;
|
||||
boolean hasCXFCorrelationConsumer = false;
|
||||
boolean hasCXFSAMLPropagateConsumer = false;
|
||||
boolean isStudioEEVersion = org.talend.core.PluginChecker.isTIS();
|
||||
boolean hasCXFComponentConsumerWithCXFMESSAGE = false;
|
||||
List<? extends INode> cxfNodes = process.getNodesOfType("cCXF");
|
||||
if( null != cxfNodes && cxfNodes.size() >0 ){
|
||||
hasCXFComponent = true;
|
||||
for(INode n: cxfNodes){
|
||||
String useRegistry = "false";
|
||||
if(isStudioEEVersion){
|
||||
useRegistry = ElementParameterParser.getValue(n, "__ENABLE_REGISTRY__");
|
||||
}
|
||||
String useSecurity = ElementParameterParser.getValue(n, "__ENABLE_SECURITY__");
|
||||
String formatType = ElementParameterParser.getValue(n, "__DATAFORMAT__");
|
||||
if("RAW".equals(formatType) || "CXF_MESSAGE".equals(formatType)){
|
||||
useRegistry = "false";
|
||||
useSecurity = "false";
|
||||
}
|
||||
String securityType = ElementParameterParser.getValue(n, "__SECURITY_TYPE__");
|
||||
@@ -131,44 +121,15 @@
|
||||
if(!hasCXFComponentConsumer && incomingConnections>0){
|
||||
hasCXFComponentConsumer = true;
|
||||
}
|
||||
String useCorrelation = ElementParameterParser.getValue(n, "__ENABLE_CORRELATION__");
|
||||
if("RAW".equals(formatType)){
|
||||
useCorrelation = "false";
|
||||
}
|
||||
if("false".equals(useCorrelation)){
|
||||
useCorrelation = useRegistry;
|
||||
}
|
||||
if("true".equals(useCorrelation) && incomingConnections>0 ){
|
||||
hasCXFCorrelationConsumer = true;
|
||||
}
|
||||
if("true".equals(useRegistry)){
|
||||
useSecurity = "false";
|
||||
if(incomingConnections == 0){
|
||||
hasCXFRegistryProvider = true;
|
||||
}else{
|
||||
hasCXFRegistryConsumer = true;
|
||||
if(!hasCXFSAMLPropagateConsumer && Boolean.parseBoolean(ElementParameterParser.getValue(n, "__USE_PROPAGATE_CREDENTIAL__"))){
|
||||
hasCXFSAMLPropagateConsumer = true;
|
||||
}
|
||||
}
|
||||
if(!hasCXFComponentConsumerWithCXFMESSAGE && incomingConnections>0 && "CXF_MESSAGE".equals(formatType)){
|
||||
hasCXFComponentConsumerWithCXFMESSAGE = true;
|
||||
}
|
||||
if("true".equals(useSecurity)){
|
||||
if("SAML".equals(securityType) && (!hasCXFSamlTokenProvider || !hasCXFSamlTokenConsumer || !hasCXFSAMLPropagateConsumer)){
|
||||
if("SAML".equals(securityType) && (!hasCXFSamlTokenProvider || !hasCXFSamlTokenConsumer)){
|
||||
if(incomingConnections == 0){
|
||||
hasCXFSamlTokenProvider = true;
|
||||
}else{
|
||||
hasCXFSamlTokenConsumer = true;
|
||||
if(!hasCXFSamlTokenAuthorizationConsumer && isStudioEEVersion){
|
||||
if("true".equals(ElementParameterParser.getValue(n, "__USE_AUTHORIZATION__"))){
|
||||
hasCXFSamlTokenAuthorizationConsumer = true;
|
||||
}
|
||||
}
|
||||
if(!hasCXFSAMLPropagateConsumer){
|
||||
String samlSecurityType = ElementParameterParser.getValue(n, "__SAML_SECURITY_TYPES__");
|
||||
if("PROPAGATE_UP".equals(samlSecurityType) || "PROPAGATE_AP".equals(samlSecurityType)){
|
||||
hasCXFSAMLPropagateConsumer = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if("USER".equals(securityType) && (!hasCXFUsernameTokenProvider || !hasCXFUsernameTokenConsumer)){
|
||||
if(incomingConnections == 0){
|
||||
@@ -187,74 +148,17 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(hasCXFSAMLPropagateConsumer){
|
||||
%>
|
||||
class CXFConsumerBinding extends org.apache.camel.component.cxf.DefaultCxfBinding {
|
||||
private org.apache.camel.component.cxf.CxfEndpoint endpoint;
|
||||
|
||||
public CXFConsumerBinding(org.apache.camel.component.cxf.CxfEndpoint endpoint){
|
||||
this.endpoint = endpoint;
|
||||
setHeaderFilterStrategy(consumerSoapHeaderFilter);
|
||||
}
|
||||
@Override
|
||||
protected void propagateHeadersFromCamelToCxf(org.apache.camel.Exchange camelExchange,
|
||||
Map<String, Object> camelHeaders, org.apache.cxf.message.Exchange cxfExchange,
|
||||
Map<String, Object> cxfContext) {
|
||||
super.propagateHeadersFromCamelToCxf(camelExchange, camelHeaders, cxfExchange, cxfContext);
|
||||
Object samlToken = camelHeaders.get("samlToken");
|
||||
if(samlToken == null){
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, Object> properties = endpoint.getProperties();
|
||||
if(properties == null){
|
||||
return;
|
||||
}
|
||||
Object object = properties.get(org.apache.cxf.ws.security.SecurityConstants.STS_CLIENT);
|
||||
if(object == null || !(object instanceof org.apache.cxf.ws.security.trust.STSClient)){
|
||||
return;
|
||||
}
|
||||
org.apache.cxf.ws.security.trust.STSClient stsClient = (org.apache.cxf.ws.security.trust.STSClient) object;
|
||||
stsClient.setOnBehalfOf(samlToken);
|
||||
}
|
||||
}
|
||||
<% }
|
||||
if(hasCXFRegistryProvider || hasCXFSamlTokenProvider){
|
||||
%>
|
||||
class CXFProviderBinding extends org.apache.camel.component.cxf.DefaultCxfBinding{
|
||||
|
||||
@Override
|
||||
protected void propagateHeadersFromCxfToCamel( org.apache.cxf.message.Message cxfMessage,
|
||||
org.apache.camel.Message camelMessage, org.apache.camel.Exchange camelExchange) {
|
||||
super.propagateHeadersFromCxfToCamel(cxfMessage, camelMessage, camelExchange);
|
||||
camelExchange.getIn().removeHeader("samlToken");
|
||||
org.apache.cxf.security.SecurityContext securityContext = cxfMessage.get(org.apache.cxf.security.SecurityContext.class);
|
||||
if(securityContext != null && securityContext instanceof org.apache.cxf.interceptor.security.SAMLSecurityContext){
|
||||
org.apache.cxf.interceptor.security.SAMLSecurityContext ssc = (org.apache.cxf.interceptor.security.SAMLSecurityContext) securityContext;
|
||||
org.w3c.dom.Element assertionElement = ssc.getAssertionElement();
|
||||
if(assertionElement != null){
|
||||
camelExchange.getIn().setHeader("samlToken", assertionElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
<%
|
||||
}
|
||||
|
||||
|
||||
if(hasCXFComponent){
|
||||
%>
|
||||
|
||||
private org.apache.camel.component.cxf.CxfEndpoint getCxfEndpoint(String uri, boolean isProvider, boolean useAuthorization, boolean usePropagateSamlAP, String... token){
|
||||
private org.apache.camel.component.cxf.CxfEndpoint getCxfEndpoint(String uri, boolean isProvider, String... token){
|
||||
org.apache.camel.component.cxf.CxfEndpoint cxfEndpoint = (org.apache.camel.component.cxf.CxfEndpoint)endpoint(uri);
|
||||
|
||||
<%if(hasCXFUsernameTokenProvider || hasCXFSamlTokenProvider || hasCXFSamlTokenConsumer || hasCXFHTTPAuthProvider || hasCXFRegistryProvider || hasCXFRegistryConsumer){%>
|
||||
if( null != bundleContext ){
|
||||
<%if(hasCXFUsernameTokenProvider || hasCXFSamlTokenProvider || hasCXFSamlTokenConsumer || hasCXFRegistryProvider || hasCXFRegistryConsumer){%>
|
||||
org.apache.cxf.Bus bus = cxfEndpoint.getBus();
|
||||
org.apache.cxf.Bus bus = cxfEndpoint.getBus();
|
||||
org.apache.cxf.configuration.ConfiguredBeanLocator cbl = bus==null?null:bus.getExtension(org.apache.cxf.configuration.ConfiguredBeanLocator.class);
|
||||
if(cbl != null){
|
||||
bus.setExtension(new org.apache.cxf.bus.osgi.OSGiBeanLocator(cbl, bundleContext), org.apache.cxf.configuration.ConfiguredBeanLocator.class);
|
||||
}
|
||||
<%
|
||||
}
|
||||
if(hasCXFUsernameTokenProvider){
|
||||
%>
|
||||
if(isProvider&&token!=null&&"UsernameToken".equals(token[0])){
|
||||
@@ -275,18 +179,11 @@
|
||||
|
||||
%>
|
||||
if(token!=null&&"SAMLToken".equals(token[0])){
|
||||
addSAMLToken(cxfEndpoint, bus, isProvider, useAuthorization, usePropagateSamlAP, token);
|
||||
}
|
||||
<% }
|
||||
if(hasCXFRegistryProvider || hasCXFRegistryConsumer){
|
||||
%>
|
||||
if(token!=null&&"Registry".equals(token[0])){
|
||||
addRegistry(cxfEndpoint, bus, isProvider, usePropagateSamlAP, token);
|
||||
addSAMLToken(cxfEndpoint, bus, isProvider, token);
|
||||
}
|
||||
<%}%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
if(hasCXFUsernameTokenConsumer){
|
||||
%>
|
||||
if(!isProvider&&token!=null&&token.length>=3&&"UsernameToken".equals(token[0])){
|
||||
@@ -397,7 +294,7 @@ if(hasCXFUsernameTokenConsumer){
|
||||
<%
|
||||
}
|
||||
}
|
||||
if(hasCXFSamlTokenConsumer || hasCXFRegistryConsumer){
|
||||
if(hasCXFSamlTokenConsumer){
|
||||
%>
|
||||
|
||||
private Map<String, String> clientProperties;
|
||||
@@ -443,18 +340,12 @@ class WSPasswordCallbackHandler implements javax.security.auth.callback.Callback
|
||||
|
||||
if(hasCXFComponentConsumer){
|
||||
%>
|
||||
org.apache.camel.component.cxf.common.header.CxfHeaderFilterStrategy consumerSoapHeaderFilter = new org.apache.camel.component.cxf.common.header.CxfHeaderFilterStrategy(){
|
||||
class CxfConsumerSoapHeaderFilter extends org.apache.camel.component.cxf.common.header.CxfHeaderFilterStrategy{
|
||||
public boolean applyFilterToCamelHeaders(String headerName,
|
||||
Object headerValue, org.apache.camel.Exchange exchange) {
|
||||
//filter propagated cxf header
|
||||
if(org.apache.cxf.headers.Header.HEADER_LIST.equals(headerName)){
|
||||
return true;
|
||||
}
|
||||
//remove correlationID header, if it's null or empty
|
||||
if("CorrelationID".equals(headerName)
|
||||
&& (headerValue == null || "".equals(headerValue.toString()))){
|
||||
return true;
|
||||
}
|
||||
return super.applyFilterToCamelHeaders(headerName, headerValue, exchange);
|
||||
}
|
||||
|
||||
@@ -465,139 +356,21 @@ org.apache.camel.component.cxf.common.header.CxfHeaderFilterStrategy consumerSoa
|
||||
}
|
||||
return super.applyFilterToExternalHeaders(headerName, headerValue, exchange);
|
||||
}
|
||||
};
|
||||
<%
|
||||
}
|
||||
if(hasCXFRegistryProvider || hasCXFRegistryConsumer){
|
||||
%>
|
||||
private void addRegistry(org.apache.camel.component.cxf.CxfEndpoint cxfEndpoint, org.apache.cxf.Bus bus,
|
||||
boolean isProvider, boolean usePropagateSamlAP, final String... token) {
|
||||
<%if(hasCXFRegistryConsumer){
|
||||
%>
|
||||
|
||||
if(!isProvider){
|
||||
if(usePropagateSamlAP && (token[4] == null)){
|
||||
usePropagateSamlAP = false ;
|
||||
}
|
||||
org.apache.cxf.ws.security.trust.STSClient stsClient = new org.apache.cxf.ws.security.trust.STSClient(
|
||||
bus);
|
||||
stsClient.setServiceQName(new javax.xml.namespace.QName(
|
||||
stsProperties.get("sts.namespace"), stsProperties
|
||||
.get("sts.service.name")));
|
||||
|
||||
Map<String, Object> stsProps = new HashMap<String, Object>();
|
||||
|
||||
for (Map.Entry<String, String> entry : stsProperties.entrySet()) {
|
||||
if (org.apache.cxf.ws.security.SecurityConstants.ALL_PROPERTIES
|
||||
.contains(entry.getKey())) {
|
||||
stsProps.put(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
if(usePropagateSamlAP) {
|
||||
stsClient.setWsdlLocation(stsProperties.get("sts.x509.wsdl.location"));
|
||||
stsClient.setEndpointQName(new javax.xml.namespace.QName(
|
||||
stsProperties.get("sts.namespace"), stsProperties
|
||||
.get("sts.x509.endpoint.name")));
|
||||
stsProps.put(org.apache.cxf.ws.security.SecurityConstants.STS_TOKEN_USERNAME,
|
||||
token[4]);
|
||||
}else {
|
||||
stsClient.setWsdlLocation(stsProperties.get("sts.wsdl.location"));
|
||||
stsClient.setEndpointQName(new javax.xml.namespace.QName(
|
||||
stsProperties.get("sts.namespace"), stsProperties
|
||||
.get("sts.endpoint.name")));
|
||||
stsProps.put(org.apache.cxf.ws.security.SecurityConstants.USERNAME,
|
||||
token[1]);
|
||||
stsProps.put(org.apache.cxf.ws.security.SecurityConstants.PASSWORD,
|
||||
token[2]);
|
||||
}
|
||||
stsClient.setProperties(stsProps);
|
||||
if (token[3]/*Role*/ != null && !("".equals(token[3]))) {
|
||||
ClaimValueCallbackHandler roleCallbackHandler = new ClaimValueCallbackHandler();
|
||||
roleCallbackHandler.setClaimValue(token[3]);
|
||||
stsClient.setClaimsCallbackHandler(roleCallbackHandler);
|
||||
}
|
||||
|
||||
Map<String, Object> clientProps = new HashMap<String, Object>();
|
||||
clientProps.put(org.apache.cxf.ws.security.SecurityConstants.USERNAME,
|
||||
token[1]);
|
||||
clientProps.put(org.apache.cxf.ws.security.SecurityConstants.PASSWORD,
|
||||
token[2]);
|
||||
|
||||
clientProps.put(
|
||||
org.apache.cxf.ws.security.SecurityConstants.STS_CLIENT,
|
||||
stsClient);
|
||||
|
||||
for (Map.Entry<String, String> entry : clientProperties.entrySet()) {
|
||||
if (org.apache.cxf.ws.security.SecurityConstants.ALL_PROPERTIES
|
||||
.contains(entry.getKey())) {
|
||||
clientProps.put(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
if(usePropagateSamlAP) {
|
||||
clientProps.put(org.apache.cxf.ws.security.SecurityConstants.SIGNATURE_USERNAME, token[4]);
|
||||
clientProps
|
||||
.put(org.apache.cxf.ws.security.SecurityConstants.CALLBACK_HANDLER,
|
||||
new WSPasswordCallbackHandler(token[4], token[2]));
|
||||
}else {
|
||||
clientProps
|
||||
.put(org.apache.cxf.ws.security.SecurityConstants.CALLBACK_HANDLER,
|
||||
new WSPasswordCallbackHandler(
|
||||
clientProperties
|
||||
.get(org.apache.cxf.ws.security.SecurityConstants.SIGNATURE_USERNAME),
|
||||
clientProperties
|
||||
.get("ws-security.signature.password")));
|
||||
}
|
||||
clientProps.put("soap.no.validate.parts", Boolean.TRUE);
|
||||
clientProps.put("use.service.registry", "true");
|
||||
// set the cxfEndpoint Properties
|
||||
cxfEndpoint.setProperties(clientProps);
|
||||
}
|
||||
<%
|
||||
}
|
||||
if(hasCXFRegistryProvider){
|
||||
%>
|
||||
if (isProvider) {
|
||||
String userName = (String) securityProps.get("ws-security.signature.username");
|
||||
String password = (String) securityProps.get("ws-security.signature.password");
|
||||
String properties = (String) securityProps.get("ws-security.signature.properties");
|
||||
String pdpAddress = (String) securityProps.get("tesb.pdp.address");
|
||||
|
||||
org.apache.ws.security.validate.JAASUsernameTokenValidator jaasUTValidator=
|
||||
new org.apache.ws.security.validate.JAASUsernameTokenValidator();
|
||||
jaasUTValidator.setContextName("karaf");
|
||||
// set endpoint properties
|
||||
org.apache.cxf.interceptor.security.NamePasswordCallbackHandler callbackHandler = new org.apache.cxf.interceptor.security.NamePasswordCallbackHandler(
|
||||
userName, password, "setPassword");
|
||||
Map<String, Object> endpointProps = new HashMap<String, Object>();
|
||||
endpointProps.put("ws-security.signature.username", userName);
|
||||
endpointProps.put("ws-security.signature.properties", properties);
|
||||
endpointProps.put("ws-security.callback-handler", callbackHandler);
|
||||
endpointProps.put("ws-security.ut.validator", jaasUTValidator);
|
||||
endpointProps.put("tesb.pdp.address", pdpAddress);
|
||||
endpointProps.put("use.service.registry", "true");
|
||||
cxfEndpoint.setProperties(endpointProps);
|
||||
|
||||
|
||||
}
|
||||
<%}%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
|
||||
if(hasCXFSamlTokenProvider || hasCXFRegistryProvider){
|
||||
if(hasCXFSamlTokenProvider){
|
||||
%>
|
||||
private Map<String, String> securityProps;
|
||||
private Map<String, String> samlProps;
|
||||
|
||||
public void setSecurityProps(Map<String, String> securityProps){
|
||||
this.securityProps = securityProps;
|
||||
public void setSamlProps(Map<String, String> samlProps){
|
||||
this.samlProps = samlProps;
|
||||
}
|
||||
<%
|
||||
}
|
||||
|
||||
if(hasCXFSamlTokenProvider || hasCXFSamlTokenConsumer
|
||||
||hasCXFRegistryProvider || hasCXFRegistryConsumer){
|
||||
if(hasCXFSamlTokenProvider || hasCXFSamlTokenConsumer){
|
||||
%>
|
||||
|
||||
|
||||
@@ -629,79 +402,27 @@ public void registerPolicies(org.apache.cxf.Bus bus) {
|
||||
org.apache.neethi.PolicyRegistry policyRegistry =
|
||||
bus.getExtension(org.apache.cxf.ws.policy.PolicyEngine.class).getRegistry();
|
||||
policyRegistry.register("org.talend.esb.job.token.policy",
|
||||
loadPolicy(policies.get("policy.username"), bus));
|
||||
loadPolicy(policies.get("policy.token"), bus));
|
||||
policyRegistry.register("org.talend.esb.job.saml.policy",
|
||||
loadPolicy(policies.get("policy.saml"), bus));
|
||||
|
||||
policyRegistry.register("org.talend.esb.job.saml.authz.policy",
|
||||
loadPolicy(policies.get("policy.saml.authz"), bus));
|
||||
}
|
||||
}
|
||||
|
||||
<%if(hasCXFSamlTokenAuthorizationConsumer || hasCXFRegistryConsumer){%>
|
||||
class ClaimValueCallbackHandler implements javax.security.auth.callback.CallbackHandler {
|
||||
|
||||
private String claimValue;
|
||||
|
||||
public void handle(javax.security.auth.callback.Callback[] callbacks)
|
||||
throws java.io.IOException, javax.security.auth.callback.UnsupportedCallbackException {
|
||||
for (int i = 0; i < callbacks.length; i++) {
|
||||
if (callbacks[i] instanceof org.apache.cxf.ws.security.trust.claims.ClaimsCallback) {
|
||||
org.apache.cxf.ws.security.trust.claims.ClaimsCallback callback = (org.apache.cxf.ws.security.trust.claims.ClaimsCallback) callbacks[i];
|
||||
callback.setClaims(createClaims());
|
||||
|
||||
} else {
|
||||
throw new javax.security.auth.callback.UnsupportedCallbackException(callbacks[i], "Unrecognized Callback");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Claims Element for a "role"
|
||||
*/
|
||||
private org.w3c.dom.Element createClaims() {
|
||||
org.w3c.dom.Document doc = org.apache.cxf.helpers.DOMUtils.createDocument();
|
||||
org.w3c.dom.Element claimsElement =
|
||||
doc.createElementNS("http://docs.oasis-open.org/ws-sx/ws-trust/200512", "Claims");
|
||||
claimsElement.setAttributeNS(null, "Dialect", "http://schemas.xmlsoap.org/ws/2005/05/identity");
|
||||
|
||||
org.w3c.dom.Element claimValueElement =
|
||||
doc.createElementNS("http://schemas.xmlsoap.org/ws/2005/05/identity", "ClaimValue");
|
||||
claimValueElement.setAttributeNS(null, "Uri", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role");
|
||||
org.w3c.dom.Element value = doc.createElementNS("http://schemas.xmlsoap.org/ws/2005/05/identity", "Value");
|
||||
value.setTextContent(claimValue);
|
||||
claimValueElement.appendChild(value);
|
||||
|
||||
claimsElement.appendChild(claimValueElement);
|
||||
|
||||
return claimsElement;
|
||||
}
|
||||
|
||||
public String getClaimValue() {
|
||||
return claimValue;
|
||||
}
|
||||
|
||||
public void setClaimValue(String claimValue) {
|
||||
this.claimValue = claimValue;
|
||||
}
|
||||
|
||||
}
|
||||
<%}
|
||||
if(hasCXFSamlTokenConsumer || hasCXFSamlTokenProvider){
|
||||
%>
|
||||
|
||||
private void addSAMLToken(org.apache.camel.component.cxf.CxfEndpoint cxfEndpoint, org.apache.cxf.Bus bus,
|
||||
boolean isProvider, boolean useAuthorization, boolean usePropagateSamlAP, String... token) {
|
||||
boolean isProvider, String... token) {
|
||||
<%
|
||||
if(hasCXFSamlTokenConsumer){
|
||||
%>
|
||||
if (!isProvider) {
|
||||
org.apache.cxf.ws.security.trust.STSClient stsClient = new org.apache.cxf.ws.security.trust.STSClient(
|
||||
bus);
|
||||
stsClient.setWsdlLocation(stsProperties.get("sts.wsdl.location"));
|
||||
stsClient.setServiceQName(new javax.xml.namespace.QName(
|
||||
stsProperties.get("sts.namespace"), stsProperties
|
||||
.get("sts.service.name")));
|
||||
|
||||
.get("sts.service.name")));
|
||||
stsClient.setEndpointQName(new javax.xml.namespace.QName(
|
||||
stsProperties.get("sts.namespace"), stsProperties
|
||||
.get("sts.endpoint.name")));
|
||||
|
||||
Map<String, Object> stsProps = new HashMap<String, Object>();
|
||||
|
||||
@@ -712,31 +433,12 @@ if(hasCXFSamlTokenConsumer){
|
||||
}
|
||||
}
|
||||
|
||||
if(usePropagateSamlAP) {
|
||||
stsClient.setWsdlLocation(stsProperties.get("sts.x509.wsdl.location"));
|
||||
stsClient.setEndpointQName(new javax.xml.namespace.QName(
|
||||
stsProperties.get("sts.namespace"), stsProperties
|
||||
.get("sts.x509.endpoint.name")));
|
||||
stsProps.put(org.apache.cxf.ws.security.SecurityConstants.STS_TOKEN_USERNAME,
|
||||
token[4]);
|
||||
}else {
|
||||
stsClient.setWsdlLocation(stsProperties.get("sts.wsdl.location"));
|
||||
stsClient.setEndpointQName(new javax.xml.namespace.QName(
|
||||
stsProperties.get("sts.namespace"), stsProperties
|
||||
.get("sts.endpoint.name")));
|
||||
stsProps.put(org.apache.cxf.ws.security.SecurityConstants.USERNAME,
|
||||
token[1]);
|
||||
stsProps.put(org.apache.cxf.ws.security.SecurityConstants.PASSWORD,
|
||||
token[2]);
|
||||
}
|
||||
stsProps.put(org.apache.cxf.ws.security.SecurityConstants.USERNAME,
|
||||
token[1]);
|
||||
stsProps.put(org.apache.cxf.ws.security.SecurityConstants.PASSWORD,
|
||||
token[2]);
|
||||
stsClient.setProperties(stsProps);
|
||||
<%if(hasCXFSamlTokenAuthorizationConsumer){%>
|
||||
if (token[3] != null && !("".equals(token[3]))) {
|
||||
ClaimValueCallbackHandler roleCallbackHandler = new ClaimValueCallbackHandler();
|
||||
roleCallbackHandler.setClaimValue(token[3]);
|
||||
stsClient.setClaimsCallbackHandler(roleCallbackHandler);
|
||||
}
|
||||
<%}%>
|
||||
|
||||
Map<String, Object> clientProps = new HashMap<String, Object>();
|
||||
clientProps.put(
|
||||
org.apache.cxf.ws.security.SecurityConstants.STS_CLIENT,
|
||||
@@ -748,30 +450,19 @@ if(hasCXFSamlTokenConsumer){
|
||||
clientProps.put(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
if(usePropagateSamlAP) {
|
||||
clientProps.put(org.apache.cxf.ws.security.SecurityConstants.SIGNATURE_USERNAME, token[4]);
|
||||
clientProps
|
||||
.put(org.apache.cxf.ws.security.SecurityConstants.CALLBACK_HANDLER,
|
||||
new WSPasswordCallbackHandler(token[4], token[2]));
|
||||
}else {
|
||||
clientProps
|
||||
.put(org.apache.cxf.ws.security.SecurityConstants.CALLBACK_HANDLER,
|
||||
new WSPasswordCallbackHandler(
|
||||
clientProperties
|
||||
.get(org.apache.cxf.ws.security.SecurityConstants.SIGNATURE_USERNAME),
|
||||
clientProperties
|
||||
.get("ws-security.signature.password")));
|
||||
}
|
||||
clientProps
|
||||
.put(org.apache.cxf.ws.security.SecurityConstants.CALLBACK_HANDLER,
|
||||
new WSPasswordCallbackHandler(
|
||||
clientProperties
|
||||
.get(org.apache.cxf.ws.security.SecurityConstants.SIGNATURE_USERNAME),
|
||||
clientProperties
|
||||
.get("ws-security.signature.password")));
|
||||
// set the cxfEndpoint Properties
|
||||
cxfEndpoint.setProperties(clientProps);
|
||||
|
||||
// add policy
|
||||
org.apache.neethi.PolicyReference policyReference = new org.apache.neethi.PolicyReference();
|
||||
if(useAuthorization){
|
||||
policyReference.setURI("org.talend.esb.job.saml.authz.policy");
|
||||
}else{
|
||||
policyReference.setURI("org.talend.esb.job.saml.policy");
|
||||
}
|
||||
policyReference.setURI("org.talend.esb.job.saml.policy");
|
||||
org.apache.neethi.Policy policy = new org.apache.neethi.Policy();
|
||||
policy.addPolicyComponent(policyReference);
|
||||
|
||||
@@ -787,19 +478,17 @@ if(hasCXFSamlTokenProvider){
|
||||
%>
|
||||
if (isProvider) {
|
||||
// get saml properties
|
||||
String userName = (String) securityProps
|
||||
String userName = (String) samlProps
|
||||
.get("ws-security.signature.username");
|
||||
String password = (String) securityProps
|
||||
String password = (String) samlProps
|
||||
.get("ws-security.signature.password");
|
||||
String properties = (String) securityProps
|
||||
String properties = (String) samlProps
|
||||
.get("ws-security.signature.properties");
|
||||
// add in intercept
|
||||
Map<String, Object> props = new HashMap<String, Object>();
|
||||
props.put(
|
||||
org.apache.ws.security.handler.WSHandlerConstants.ACTION,
|
||||
org.apache.ws.security.handler.WSHandlerConstants.ENCRYPT+" "
|
||||
+org.apache.ws.security.handler.WSHandlerConstants.SAML_TOKEN_SIGNED+" "
|
||||
+org.apache.ws.security.handler.WSHandlerConstants.SIGNATURE);
|
||||
org.apache.ws.security.handler.WSHandlerConstants.SAML_TOKEN_SIGNED);
|
||||
props.put(
|
||||
org.apache.ws.security.handler.WSHandlerConstants.SIG_PROP_FILE,
|
||||
properties);
|
||||
@@ -817,20 +506,10 @@ if (isProvider) {
|
||||
properties);
|
||||
endpointProps.put("ws-security.callback-handler",
|
||||
callbackHandler);
|
||||
endpointProps.put("use.service.registry",
|
||||
"false");
|
||||
if(useAuthorization){
|
||||
endpointProps.put("tesb.pdp.address", (String)securityProps
|
||||
.get("tesb.pdp.address"));
|
||||
}
|
||||
cxfEndpoint.setProperties(endpointProps);
|
||||
// add policy
|
||||
org.apache.neethi.PolicyReference policyReference = new org.apache.neethi.PolicyReference();
|
||||
if(!useAuthorization){
|
||||
policyReference.setURI("org.talend.esb.job.saml.policy");
|
||||
}else{
|
||||
policyReference.setURI("org.talend.esb.job.saml.authz.policy");
|
||||
}
|
||||
policyReference.setURI("org.talend.esb.job.saml.policy");
|
||||
org.apache.neethi.Policy policy = new org.apache.neethi.Policy();
|
||||
policy.addPolicyComponent(policyReference);
|
||||
|
||||
@@ -841,13 +520,67 @@ if (isProvider) {
|
||||
registerPolicies(bus);
|
||||
}
|
||||
<%
|
||||
}//end if(hasCXFSamlTokenProvider){
|
||||
}
|
||||
%>
|
||||
}<%
|
||||
}//end if(hasCXFSamlTokenConsumer || hasCXFSamlTokenProvider){
|
||||
}//end if(hasCXFSamlTokenProvider || hasCXFSamlTokenConsumer
|
||||
//||hasCXFRegistryProvider || hasCXFRegistryConsumer){
|
||||
}
|
||||
<%
|
||||
}
|
||||
if(hasCXFComponentConsumerWithCXFMESSAGE){
|
||||
%>
|
||||
|
||||
/*
|
||||
* on CXF_MESSAGE case (call a service)
|
||||
* if the response is fault, then will run into problem
|
||||
*/
|
||||
private void addCXFMESSAGEFaultInterceptor(org.apache.camel.component.cxf.CxfEndpoint cxfEndpoint){
|
||||
cxfEndpoint.getBus().getInFaultInterceptors().add(new org.apache.cxf.interceptor.DocLiteralInInterceptor() {
|
||||
@Override
|
||||
public void handleMessage(org.apache.cxf.message.Message message) {
|
||||
// if has List content, then return
|
||||
if(message.getContent(java.util.List.class) != null){
|
||||
return;
|
||||
}
|
||||
if (isFaultMessage(message)) {
|
||||
org.apache.cxf.message.Message inFaultMessage = message
|
||||
.getExchange().getInFaultMessage();
|
||||
org.apache.cxf.message.MessageContentsList parameters = new org.apache.cxf.message.MessageContentsList();
|
||||
if (inFaultMessage != null) {
|
||||
org.apache.cxf.staxutils.W3CDOMStreamWriter content = inFaultMessage
|
||||
.get(org.apache.cxf.staxutils.W3CDOMStreamWriter.class);
|
||||
parameters.add(content);
|
||||
}
|
||||
message.setContent(java.util.List.class, parameters);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isFaultMessage(org.apache.cxf.message.Message msg) {
|
||||
if (msg == null
|
||||
|| !(msg instanceof org.apache.cxf.binding.soap.SoapMessage)) {
|
||||
return false;
|
||||
}
|
||||
org.apache.cxf.binding.soap.SoapMessage message = (org.apache.cxf.binding.soap.SoapMessage) msg;
|
||||
|
||||
//if it's not a CXF_MESSAGE, then return false
|
||||
Object dataFormat = message.getContextualProperty(org.apache.camel.component.cxf.common.message.CxfConstants.DATA_FORMAT_PROPERTY);
|
||||
if(org.apache.camel.component.cxf.DataFormat.CXF_MESSAGE != dataFormat){
|
||||
return false;
|
||||
}
|
||||
|
||||
javax.xml.stream.XMLStreamReader xmlReader = message
|
||||
.getContent(javax.xml.stream.XMLStreamReader.class);
|
||||
if (xmlReader == null) {
|
||||
return false;
|
||||
}
|
||||
if (message.getVersion().getFault()
|
||||
.equals(xmlReader.getName())
|
||||
&& isRequestor(message)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
<%}%>
|
||||
/**
|
||||
* please initial uri map
|
||||
*/
|
||||
@@ -872,103 +605,48 @@ if (isProvider) {
|
||||
String endpointVar = "endpoint_" + node.getUniqueName();
|
||||
String uriRef = "uriMap.get(\"" + cid + "\")";
|
||||
String formatType = ElementParameterParser.getValue(node, "__DATAFORMAT__");
|
||||
|
||||
boolean useRegistry = false;
|
||||
boolean useSecurity = false;
|
||||
if(!"RAW".equals(formatType) && !"CXF_MESSAGE".equals(formatType)){
|
||||
if(isStudioEEVersion){
|
||||
useRegistry = "true".equals(ElementParameterParser.getValue(node, "__ENABLE_REGISTRY__"));
|
||||
}
|
||||
if(!useRegistry){
|
||||
useSecurity = "true".equals(ElementParameterParser.getValue(node, "__ENABLE_SECURITY__"));
|
||||
}
|
||||
String useSecurity = ElementParameterParser.getValue(node, "__ENABLE_SECURITY__");
|
||||
if("RAW".equals(formatType) || "CXF_MESSAGE".equals(formatType)){
|
||||
useSecurity = "false";
|
||||
}
|
||||
|
||||
String role = ElementParameterParser.getValue(node, "__ROLE_NAME__");
|
||||
|
||||
String securityType = ElementParameterParser.getValue(node, "__SECURITY_TYPE__");
|
||||
String username = ElementParameterParser.getValue(node, "__USERNAME__");
|
||||
String password = ElementParameterParser.getValue(node, "__PASSWORD__");
|
||||
String roleName = "\"\"";
|
||||
String alias = ElementParameterParser.getValue(node, "__ALIASNAME__").trim();
|
||||
boolean isProvider = node.getIncomingConnections().size()>0?false:true;
|
||||
boolean isUseAuthorization = false;
|
||||
String securityToken = "(String[])null";
|
||||
boolean isUsePropagateSamlUP = false;
|
||||
boolean isUsePropagateSamlAP = false;
|
||||
if(useRegistry){
|
||||
securityToken = "\"Registry\"";
|
||||
String usePropagate = ElementParameterParser.getValue(node, "__USE_PROPAGATE_CREDENTIAL__");
|
||||
if("true".equals(usePropagate)){
|
||||
if(alias == null || alias.matches("\"?\\s*\"?")) {
|
||||
//no alias.
|
||||
isUsePropagateSamlUP = true;
|
||||
}else {
|
||||
isUsePropagateSamlUP = false;
|
||||
}
|
||||
isUsePropagateSamlAP = !isUsePropagateSamlUP;
|
||||
}
|
||||
}else if(useSecurity){
|
||||
if("true".equals(useSecurity)){
|
||||
if("USER".equals(securityType)){
|
||||
securityToken = "\"UsernameToken\"";
|
||||
}else if("SAML".equals(securityType)){
|
||||
securityToken = "\"SAMLToken\"";
|
||||
String samlSecurityType = ElementParameterParser.getValue(node, "__SAML_SECURITY_TYPES__");
|
||||
if("PROPAGATE_UP".equals(samlSecurityType)) {
|
||||
isUsePropagateSamlUP = true;
|
||||
}else if ("PROPAGATE_AP".equals(samlSecurityType)) {
|
||||
isUsePropagateSamlAP = true;
|
||||
username = "null";
|
||||
}
|
||||
if(isStudioEEVersion){
|
||||
isUseAuthorization = "true".equals(ElementParameterParser.getValue(node, "__USE_AUTHORIZATION__"));
|
||||
}
|
||||
}else if("BASIC".equals(securityType)){
|
||||
securityToken = "org.apache.cxf.transport.http.auth.HttpAuthHeader.AUTH_TYPE_BASIC";
|
||||
}else if("DIGEST".equals(securityType)){
|
||||
securityToken = "org.apache.cxf.transport.http.auth.HttpAuthHeader.AUTH_TYPE_DIGEST";
|
||||
}
|
||||
}else{
|
||||
isProvider = false;
|
||||
}
|
||||
if(!isProvider && (useRegistry || isUseAuthorization)) {
|
||||
roleName = ElementParameterParser.getValue(node, "__ROLE_NAME__");
|
||||
if(null == roleName || "".equals(roleName)){
|
||||
roleName = "\"\"";
|
||||
}
|
||||
}
|
||||
|
||||
%>
|
||||
// CXF endpoint for <%=cid%>
|
||||
org.apache.camel.component.cxf.CxfEndpoint <%=endpointVar%> = getCxfEndpoint(<%=uriRef%>, <%=isProvider%>, <%=isUseAuthorization%>, <%=isUsePropagateSamlAP%>, <%=securityToken%>
|
||||
org.apache.camel.component.cxf.CxfEndpoint <%=endpointVar%> = getCxfEndpoint(<%=uriRef%>, <%=isProvider%>, <%=securityToken%>
|
||||
<%
|
||||
if((useSecurity || useRegistry) && !isProvider){
|
||||
if("true".equals(useSecurity) && !isProvider){
|
||||
%>
|
||||
,<%=username%>,<%=password%>, <%=roleName%>, <%=alias%>
|
||||
,<%=username%>,<%=password%>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
);
|
||||
<%
|
||||
|
||||
if((isUsePropagateSamlUP || isUsePropagateSamlAP) && !isProvider){
|
||||
if("CXF_MESSAGE".equals(formatType) && node.getIncomingConnections().size() > 0){
|
||||
%>
|
||||
<%=endpointVar%>.setCxfBinding(new CXFConsumerBinding(<%=endpointVar%>));
|
||||
<%
|
||||
}
|
||||
addCXFMESSAGEFaultInterceptor(<%=endpointVar%>);
|
||||
<% }
|
||||
String useSL = ElementParameterParser.getValue(node, "__ENABLE_SL__");
|
||||
String useSAM = ElementParameterParser.getValue(node, "__ENABLE_SAM__");
|
||||
String useCorrelation = ElementParameterParser.getValue(node, "__ENABLE_CORRELATION__");
|
||||
if("RAW".equals(formatType)){
|
||||
useCorrelation = "false";
|
||||
}
|
||||
String correlationValue = ElementParameterParser.getValue(node, "__CORRELATION_VALUE__");
|
||||
if(correlationValue != null && "".equals(correlationValue.trim())){
|
||||
correlationValue = null;
|
||||
}
|
||||
|
||||
if ("true".equals(useCorrelation) && !useRegistry) {
|
||||
%>
|
||||
<%=endpointVar%>.getFeatures().add(new org.talend.esb.policy.correlation.feature.CorrelationIDFeature());
|
||||
<% }
|
||||
if ("true".equals(useSL) && (isProvider || !useRegistry)) {
|
||||
if ("true".equals(useSL)) {
|
||||
List<Map<String, String>> customProperties = (List<Map<String,String>>) ElementParameterParser.getObjectValue(node, "__SL_META_DATA__");
|
||||
%>
|
||||
// Add Service Locator Service to <%=endpointVar%>
|
||||
@@ -1003,13 +681,11 @@ if (isProvider) {
|
||||
<%
|
||||
}
|
||||
//http://jira.talendforge.org/browse/TESB-3850
|
||||
// !"true".equals(useRegistry) - https://jira.talendforge.org/browse/TESB-10725
|
||||
|
||||
if ("true".equals(useSAM) && !"RAW".equals(formatType) && !useRegistry) {
|
||||
if ("true".equals(useSAM) && !"RAW".equals(formatType)) {
|
||||
%>
|
||||
// Add Service Activity Monitor Service to <%=endpointVar%>
|
||||
if (eventFeature != null) {
|
||||
((org.apache.camel.component.cxf.CxfEndpoint)<%=endpointVar%>).getFeatures().add(new FeatureWrapper(eventFeature));
|
||||
((org.apache.camel.component.cxf.CxfEndpoint)<%=endpointVar%>).getFeatures().add(eventFeature);
|
||||
}
|
||||
<%
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
org.talend.core.model.metadata.types.JavaType
|
||||
java.util.Map
|
||||
java.util.List
|
||||
java.util.ArrayList
|
||||
java.util.Set
|
||||
java.util.HashSet
|
||||
"
|
||||
@@ -37,23 +38,44 @@ boolean isRunInMultiThread = codeGenArgument.getIsRunInMultiThread();
|
||||
|
||||
Set<IConnection> connSet = new HashSet<IConnection>();
|
||||
connSet.addAll(node.getIncomingConnections(EConnectionType.FLOW_MAIN));
|
||||
connSet.addAll(node.getIncomingConnections(EConnectionType.FLOW_MERGE));
|
||||
connSet.addAll(node.getOutgoingConnections(EConnectionType.FLOW_MERGE));
|
||||
|
||||
Set<IConnection> iterateConnSet = new HashSet<IConnection>();
|
||||
iterateConnSet.addAll(node.getOutgoingConnections(EConnectionType.ITERATE));
|
||||
|
||||
List<IConnection> allSubProcessConnection = codeGenArgument.getAllMainSubTreeConnections();
|
||||
|
||||
if((codePart.equals(ECodePart.END))&&(stat)&&connSet.size()>0){
|
||||
for(IConnection con:connSet){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=con.getUniqueName()%>"
|
||||
+iterateId,2, 0);
|
||||
if((codePart.equals(ECodePart.END))&&(stat)){
|
||||
boolean iterateInVFComp = (node.getVirtualLinkTo() != null && node.getVirtualLinkTo() == EConnectionType.ITERATE);
|
||||
if(iterateInVFComp){
|
||||
List<String> needToEndConnNames = new ArrayList<String>();
|
||||
INode nextNode = node.getOutgoingConnections(EConnectionType.ITERATE).get(0).getTarget();
|
||||
NodeUtil.fillConnectionsForStat(needToEndConnNames, nextNode);
|
||||
%>
|
||||
if(execStat){
|
||||
<%
|
||||
for(String connName : needToEndConnNames){
|
||||
%>
|
||||
runStat.updateStatOnConnection("<%=connName%>"+iterateId,2, 0);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
if(connSet.size()>0){
|
||||
for(IConnection con:connSet){
|
||||
%>
|
||||
if(execStat){
|
||||
if(resourceMap.get("inIterateVComp") == null || !((Boolean)resourceMap.get("inIterateVComp"))){
|
||||
runStat.updateStatOnConnection("<%=con.getUniqueName()%>"+iterateId,2, 0);
|
||||
}
|
||||
}
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
<%
|
||||
}
|
||||
}%>
|
||||
%>
|
||||
|
||||
<%
|
||||
|
||||
@@ -311,6 +333,9 @@ end_Hash.put("<%=node.getUniqueName() %>", System.currentTimeMillis());
|
||||
if (!status.equals("failure")) {
|
||||
status = errorThread_<%=iterateTargetNodeName %>.status;
|
||||
}
|
||||
if(errorThread_<%=iterateTargetNodeName %>.exception!=null){
|
||||
throw errorThread_<%=iterateTargetNodeName %>.exception;
|
||||
}
|
||||
}else{
|
||||
Integer threadErrorCode = mtp_<%=iterateTargetNodeName %>.getTalendThreadResult().getErrorCode();
|
||||
String threadStatus = mtp_<%=iterateTargetNodeName %>.getTalendThreadResult().getStatus();
|
||||
@@ -338,6 +363,9 @@ end_Hash.put("<%=node.getUniqueName() %>", System.currentTimeMillis());
|
||||
if (!localStatus.equals("failure")) {
|
||||
((java.util.Map) threadLocal.get()).put("status", errorThread_<%=iterateTargetNodeName %>.status);
|
||||
}
|
||||
if(errorThread_<%=iterateTargetNodeName %>.exception!=null){
|
||||
throw errorThread_<%=iterateTargetNodeName %>.exception;
|
||||
}
|
||||
}else{
|
||||
Integer threadErrorCode = mtp_<%=iterateTargetNodeName %>.getTalendThreadResult().getErrorCode();
|
||||
String threadStatus = mtp_<%=iterateTargetNodeName %>.getTalendThreadResult().getStatus();
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
org.talend.core.model.utils.NodeUtil
|
||||
org.talend.core.model.process.IConnectionCategory
|
||||
java.util.List
|
||||
java.util.Set
|
||||
java.util.ArrayList
|
||||
java.util.Set
|
||||
java.util.HashSet
|
||||
java.util.Iterator
|
||||
"
|
||||
@@ -34,12 +35,12 @@
|
||||
|
||||
List<IConnection> allSubProcessConnection = codeGenArgument.getAllMainSubTreeConnections();
|
||||
%>
|
||||
|
||||
/**
|
||||
* [<%=node.getUniqueName() %> <%=codePart %> ] start
|
||||
*/
|
||||
|
||||
/**
|
||||
* [<%=node.getUniqueName() %> <%=codePart %> ] start
|
||||
*/
|
||||
|
||||
<%
|
||||
<%
|
||||
//This part in order to feedback with the iterate_subprocess_header.javajet and iterate_subprocess_footer.javajet
|
||||
|
||||
if (codePart.equals(ECodePart.BEGIN)) {
|
||||
@@ -48,146 +49,195 @@
|
||||
for (IConnection iterateConn : iterateConnSet) {
|
||||
parallelIterate = "true".equals(ElementParameterParser.getValue(iterateConn, "__ENABLE_PARALLEL__"));
|
||||
if (parallelIterate) {
|
||||
%>
|
||||
TalendThreadPool mtp_<%=iterateConn.getTarget().getUniqueName() %> = new TalendThreadPool(<%=ElementParameterParser.getValue(iterateConn,"__NUMBER_PARALLEL__") %>);
|
||||
%>
|
||||
TalendThreadPool mtp_<%=iterateConn.getTarget().getUniqueName() %> = new TalendThreadPool(<%=ElementParameterParser.getValue(iterateConn,"__NUMBER_PARALLEL__") %>);
|
||||
|
||||
<%
|
||||
if(!hasParallelIterate){
|
||||
hasParallelIterate = true;
|
||||
%>
|
||||
<%
|
||||
if(!hasParallelIterate){
|
||||
hasParallelIterate = true;
|
||||
%>
|
||||
|
||||
final Object[] lockWrite = new Object[0];
|
||||
int threadIdCounter =0;
|
||||
<%}%>
|
||||
final Object[] lockWrite = new Object[0];
|
||||
int threadIdCounter =0;
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
<%
|
||||
}
|
||||
|
||||
String iterateNodeName = iterateConn.getTarget().getUniqueName();
|
||||
%>
|
||||
%>
|
||||
int NB_ITERATE_<%=iterateNodeName %> = 0; //for statistics
|
||||
<%
|
||||
<%
|
||||
continue;
|
||||
}
|
||||
}
|
||||
%>
|
||||
%>
|
||||
|
||||
<%
|
||||
<%
|
||||
if (codePart.equals(ECodePart.BEGIN)) {
|
||||
%>
|
||||
<% if(trace){ %>
|
||||
globalMap.put("ENABLE_TRACES_CONNECTION_<%=startNodeCid%>",Boolean.FALSE);
|
||||
<% } %>
|
||||
ok_Hash.put("<%=node.getUniqueName() %>", false);
|
||||
start_Hash.put("<%=node.getUniqueName() %>", System.currentTimeMillis());
|
||||
<%
|
||||
%>
|
||||
<%
|
||||
if(trace){
|
||||
%>
|
||||
globalMap.put("ENABLE_TRACES_CONNECTION_<%=startNodeCid%>",Boolean.FALSE);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
ok_Hash.put("<%=node.getUniqueName() %>", false);
|
||||
start_Hash.put("<%=node.getUniqueName() %>", System.currentTimeMillis());
|
||||
<%
|
||||
String statCatcher = ElementParameterParser.getValue(node,"__TSTATCATCHER_STATS__");
|
||||
if ((node.getProcess().getNodesOfType("tStatCatcher").size() > 0) && (statCatcher.equals("true"))) {
|
||||
for (INode statCatcherNode : node.getProcess().getNodesOfType("tStatCatcher")) {
|
||||
%>
|
||||
<%=statCatcherNode.getUniqueName() %>.addMessage("begin","<%=node.getUniqueName() %>");
|
||||
<%=statCatcherNode.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
||||
<%
|
||||
%>
|
||||
<%=statCatcherNode.getUniqueName() %>.addMessage("begin","<%=node.getUniqueName() %>");
|
||||
<%=statCatcherNode.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
if(codePart.equals(ECodePart.MAIN)) {
|
||||
List<INode> meterCatchers = (List<INode>)node.getProcess().getNodesOfType("tFlowMeterCatcher");
|
||||
if ((node.getProcess().getNodesOfType("tFlowMeter").size() > 0))
|
||||
{
|
||||
for(IConnection temp_conn : node.getIncomingConnections(EConnectionType.FLOW_MAIN))
|
||||
{
|
||||
if ((node.getProcess().getNodesOfType("tFlowMeter").size() > 0)){
|
||||
for(IConnection temp_conn : node.getIncomingConnections(EConnectionType.FLOW_MAIN)){
|
||||
String name_conn = temp_conn.getUniqueName();
|
||||
if(temp_conn.isUseByMetter())
|
||||
{
|
||||
%>
|
||||
<%
|
||||
if (meterCatchers != null) {
|
||||
for (INode meterCatcher : meterCatchers) {
|
||||
%>
|
||||
<%=meterCatcher.getUniqueName() %>.addLineToRow("<%=name_conn%>_count");
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
<%
|
||||
if(temp_conn.isUseByMetter()){
|
||||
%>
|
||||
<%
|
||||
if (meterCatchers != null) {
|
||||
for (INode meterCatcher : meterCatchers) {
|
||||
%>
|
||||
<%=meterCatcher.getUniqueName() %>.addLineToRow("<%=name_conn%>_count");
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(IConnection temp_conn : node.getIncomingConnections(EConnectionType.FLOW_MERGE))
|
||||
{
|
||||
for(IConnection temp_conn : node.getIncomingConnections(EConnectionType.FLOW_MERGE)){
|
||||
String name_conn = temp_conn.getUniqueName();
|
||||
if(name_conn == incomingName && temp_conn.isUseByMetter())
|
||||
{
|
||||
%>
|
||||
<%
|
||||
if (meterCatchers != null) {
|
||||
for (INode meterCatcher : meterCatchers) {
|
||||
%>
|
||||
<%=meterCatcher.getUniqueName() %>.addLineToRow("<%=name_conn%>_count");
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
<%
|
||||
if(name_conn == incomingName && temp_conn.isUseByMetter()){
|
||||
if (meterCatchers != null) {
|
||||
for (INode meterCatcher : meterCatchers) {
|
||||
%>
|
||||
<%=meterCatcher.getUniqueName() %>.addLineToRow("<%=name_conn%>_count");
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
<%
|
||||
%>
|
||||
<%
|
||||
if(node.isVirtualGenerateNode()){
|
||||
%>
|
||||
currentVirtualComponent = "<%=NodeUtil.getVirtualUniqueName(node)%>";
|
||||
<%
|
||||
%>
|
||||
currentVirtualComponent = "<%=NodeUtil.getVirtualUniqueName(node)%>";
|
||||
<%
|
||||
}
|
||||
%>
|
||||
currentComponent="<%=node.getUniqueName() %>";
|
||||
%>
|
||||
currentComponent="<%=node.getUniqueName() %>";
|
||||
|
||||
<%
|
||||
<%
|
||||
connSet = new HashSet<IConnection>();
|
||||
connSet.addAll(node.getIncomingConnections(EConnectionType.FLOW_MAIN));
|
||||
connSet.addAll(node.getIncomingConnections(EConnectionType.FLOW_MERGE));
|
||||
connSet.addAll(node.getOutgoingConnections(EConnectionType.FLOW_MERGE));
|
||||
|
||||
if ((codePart.equals(ECodePart.BEGIN))&&(stat)&&connSet.size()>0) {
|
||||
for(IConnection con:connSet){
|
||||
%>
|
||||
%>
|
||||
if (execStat) {
|
||||
if(resourceMap.get("inIterateVComp") == null){
|
||||
java.util.concurrent.ConcurrentHashMap<Object, Object> concurrentHashMap_<%=con.getUniqueName() %> = (java.util.concurrent.ConcurrentHashMap) globalMap.get("concurrentHashMap");
|
||||
concurrentHashMap_<%=con.getUniqueName() %>.putIfAbsent("<%=con.getUniqueName() %>" + iterateLoop,new java.util.concurrent.atomic.AtomicInteger(0));
|
||||
java.util.concurrent.atomic.AtomicInteger stats_<%=con.getUniqueName() %> = (java.util.concurrent.atomic.AtomicInteger) concurrentHashMap_<%=con.getUniqueName() %>.get("<%=con.getUniqueName() %>" + iterateLoop);
|
||||
runStat.updateStatOnConnection("<%=con.getUniqueName() %>" + iterateId, stats_<%=con.getUniqueName() %>.incrementAndGet()<=1?0:1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (execStat) {
|
||||
java.util.concurrent.ConcurrentHashMap<Object, Object> concurrentHashMap_<%=con.getUniqueName() %> = (java.util.concurrent.ConcurrentHashMap) globalMap.get("concurrentHashMap");
|
||||
concurrentHashMap_<%=con.getUniqueName() %>.putIfAbsent("<%=con.getUniqueName() %>" + iterateLoop,new java.util.concurrent.atomic.AtomicInteger(0));
|
||||
java.util.concurrent.atomic.AtomicInteger stats_<%=con.getUniqueName() %> = (java.util.concurrent.atomic.AtomicInteger) concurrentHashMap_<%=con.getUniqueName() %>.get("<%=con.getUniqueName() %>" + iterateLoop);
|
||||
runStat.updateStatOnConnection("<%=con.getUniqueName() %>" + iterateId, stats_<%=con.getUniqueName() %>.incrementAndGet()<=1?0:1, 0);
|
||||
}
|
||||
|
||||
<% }
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
||||
if((codePart.equals(ECodePart.MAIN))&&(stat)&&connSet.size()>0){
|
||||
for(IConnection con:connSet){
|
||||
%>
|
||||
%>
|
||||
|
||||
//<%=con.getUniqueName()%>
|
||||
//<%=(String)codeGenArgument.getIncomingName()%>
|
||||
//<%=con.getUniqueName()%>
|
||||
//<%=(String)codeGenArgument.getIncomingName()%>
|
||||
|
||||
|
||||
<%if (!node.getComponent().useMerge()) {%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=con.getUniqueName() %>"+iterateId,1, 1);
|
||||
}
|
||||
<%
|
||||
} else if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=con.getUniqueName() %>"+iterateId,1, 1);
|
||||
}
|
||||
<%}%>
|
||||
<%if (!node.getComponent().useMerge()) {%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=con.getUniqueName() %>"+iterateId,1, 1);
|
||||
}
|
||||
<%
|
||||
} else if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=con.getUniqueName() %>"+iterateId,1, 1);
|
||||
}
|
||||
<%}%>
|
||||
|
||||
<%
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
%>
|
||||
|
||||
<%if(codePart.equals(ECodePart.BEGIN)){ %>
|
||||
int tos_count_<%=node.getUniqueName() %> = 0;
|
||||
<%}%>
|
||||
<%
|
||||
if(codePart.equals(ECodePart.BEGIN)){
|
||||
%>
|
||||
int tos_count_<%=node.getUniqueName() %> = 0;
|
||||
<%
|
||||
}
|
||||
if(stat){
|
||||
boolean iterateInVFComp = (node.getVirtualLinkTo() != null && node.getVirtualLinkTo() == EConnectionType.ITERATE);
|
||||
if(iterateInVFComp){
|
||||
if(codePart.equals(ECodePart.BEGIN)){
|
||||
List<String> needToStartConnNames = new ArrayList<String>();
|
||||
INode nextNode = node.getOutgoingConnections(EConnectionType.ITERATE).get(0).getTarget();
|
||||
NodeUtil.fillConnectionsForStat(needToStartConnNames, nextNode);
|
||||
%>
|
||||
if(execStat){
|
||||
<%
|
||||
for(String connName : needToStartConnNames){
|
||||
%>
|
||||
java.util.concurrent.ConcurrentHashMap<Object, Object> concurrentHashMap_<%=connName%> = (java.util.concurrent.ConcurrentHashMap) globalMap.get("concurrentHashMap");
|
||||
concurrentHashMap_<%=connName%>.putIfAbsent("<%=connName%>" + iterateLoop,new java.util.concurrent.atomic.AtomicInteger(0));
|
||||
java.util.concurrent.atomic.AtomicInteger stats_<%=connName%> = (java.util.concurrent.atomic.AtomicInteger) concurrentHashMap_<%=connName%>.get("<%=connName%>" + iterateLoop);
|
||||
runStat.updateStatOnConnection("<%=connName%>" + iterateId, stats_<%=connName%>.incrementAndGet()<=1?0:1, 0);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}else if(codePart.equals(ECodePart.MAIN)){
|
||||
%>
|
||||
resourceMap.put("inIterateVComp", true);
|
||||
<%
|
||||
}else if(codePart.equals(ECodePart.END)){
|
||||
%>
|
||||
resourceMap.remove("inIterateVComp");
|
||||
<%
|
||||
}
|
||||
}else{
|
||||
IConnection preIterate = (node.getIncomingConnections(EConnectionType.ITERATE) != null && node.getIncomingConnections(EConnectionType.ITERATE).size() == 1) ? node.getIncomingConnections(EConnectionType.ITERATE).get(0) : null;
|
||||
if(preIterate != null){
|
||||
boolean iterateInVSComp = (preIterate.getSource().getVirtualLinkTo() != null && preIterate.getSource().getVirtualLinkTo() == EConnectionType.ITERATE);
|
||||
if(iterateInVSComp){
|
||||
if(codePart.equals(ECodePart.BEGIN)){
|
||||
%>
|
||||
resourceMap.remove("inIterateVComp");
|
||||
<%
|
||||
}else if(codePart.equals(ECodePart.END)){
|
||||
%>
|
||||
resourceMap.put("inIterateVComp", true);
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
List<IContextParameter> params = new ArrayList<IContextParameter>();
|
||||
params=process.getContextManager().getDefaultContext().getContextParameterList();
|
||||
String jobFolderName = JavaResourcesHelper.getJobFolderName(process.getName(), process.getVersion());
|
||||
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(process, "__LOG4J_ACTIVATE__"));
|
||||
|
||||
boolean exist_tParallelize = false;
|
||||
List<? extends INode> tParallelizeList = process.getNodesOfType("tParallelize");
|
||||
@@ -91,7 +90,6 @@
|
||||
public String fatherNode = null;
|
||||
public long startTime = 0;
|
||||
public boolean isChildJob = false;
|
||||
public String log4jLevel = null;
|
||||
|
||||
private boolean execStat = true;
|
||||
|
||||
@@ -106,9 +104,9 @@
|
||||
|
||||
<% if (hasSAM4RS) { %>
|
||||
// ESB Service Activity Monitor Feature
|
||||
private org.apache.cxf.feature.Feature eventFeature;
|
||||
private org.apache.cxf.feature.AbstractFeature eventFeature;
|
||||
|
||||
public void setEventFeature(org.apache.cxf.feature.Feature eventFeature) {
|
||||
public void setEventFeature(org.apache.cxf.feature.AbstractFeature eventFeature) {
|
||||
this.eventFeature = eventFeature;
|
||||
}
|
||||
<% } %>
|
||||
@@ -144,12 +142,6 @@
|
||||
final <%=process.getName() %> <%=process.getName() %>Class = new <%=process.getName() %>();
|
||||
|
||||
int exitCode = <%=process.getName() %>Class.runJobInTOS(args);
|
||||
<%if(isLog4jEnabled){%>
|
||||
if(exitCode==0){
|
||||
log.info("TalendJob: '<%=codeGenArgument.getJobName()%>' - Done.");
|
||||
}
|
||||
<%}%>
|
||||
|
||||
System.exit(exitCode);
|
||||
}
|
||||
|
||||
@@ -177,7 +169,7 @@
|
||||
public int runJobInTOS(String[] args) {
|
||||
// reset status
|
||||
status = "";
|
||||
|
||||
|
||||
String lastStr = "";
|
||||
for (String arg : args) {
|
||||
if (arg.equalsIgnoreCase("--context_param")) {
|
||||
@@ -190,28 +182,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
<%if(isLog4jEnabled){%>
|
||||
if(log4jLevel!=null){
|
||||
if("trace".equalsIgnoreCase(log4jLevel)){
|
||||
log.setLevel(org.apache.log4j.Level.TRACE);
|
||||
}else if("debug".equalsIgnoreCase(log4jLevel)){
|
||||
log.setLevel(org.apache.log4j.Level.DEBUG);
|
||||
}else if("info".equalsIgnoreCase(log4jLevel)){
|
||||
log.setLevel(org.apache.log4j.Level.INFO);
|
||||
}else if("warn".equalsIgnoreCase(log4jLevel)){
|
||||
log.setLevel(org.apache.log4j.Level.WARN);
|
||||
}else if("error".equalsIgnoreCase(log4jLevel)){
|
||||
log.setLevel(org.apache.log4j.Level.ERROR);
|
||||
}else if("fatal".equalsIgnoreCase(log4jLevel)){
|
||||
log.setLevel(org.apache.log4j.Level.FATAL);
|
||||
}else if ("off".equalsIgnoreCase(log4jLevel)){
|
||||
log.setLevel(org.apache.log4j.Level.OFF);
|
||||
}
|
||||
org.apache.log4j.Logger.getRootLogger().setLevel(log.getLevel());
|
||||
}
|
||||
log.info("TalendJob: '<%=codeGenArgument.getJobName()%>' - Start.");
|
||||
<%}%>
|
||||
|
||||
if(clientHost == null) {
|
||||
clientHost = defaultClientHost;
|
||||
}
|
||||
@@ -740,9 +710,7 @@ if (execStat) {
|
||||
context_param.put(keyValue.substring(0, index), keyValue.substring(index + 1) );
|
||||
}
|
||||
}
|
||||
}else if (arg.startsWith("--log4jLevel=")) {
|
||||
log4jLevel = arg.substring(13);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -35,9 +35,10 @@ public class CLASS
|
||||
// toReturn += failure_singleThread;
|
||||
// }
|
||||
|
||||
toReturn += "globalMap.put(\""+rootNode.getUniqueName()+ "_SUBPROCESS_STATE\", -1);\n";
|
||||
|
||||
toReturn += "\ne_" + rootNode.getUniqueName() + ".printStackTrace();\n";
|
||||
|
||||
toReturn += "globalMap.put(\""+rootNode.getUniqueName()+ "_SUBPROCESS_STATE\", -1);\n";
|
||||
|
||||
//List< ? extends IConnection> onSubJobErrorConns = rootNode.getOutgoingConnections(EConnectionType.ON_SUBJOB_ERROR);
|
||||
//if(onSubJobErrorConns!=null){
|
||||
@@ -47,8 +48,8 @@ public class CLASS
|
||||
//}
|
||||
if(isMultiThread){
|
||||
toReturn += "\n}catch (Error e_" + rootNode.getUniqueName() + ") {\n";
|
||||
toReturn += "\ne_" + rootNode.getUniqueName() + ".printStackTrace();\n";
|
||||
toReturn += "globalMap.put(\""+rootNode.getUniqueName()+ "_SUBPROCESS_STATE\", -1);\n";
|
||||
toReturn += "\ne_" + rootNode.getUniqueName() + ".printStackTrace();\n";
|
||||
}
|
||||
toReturn += "\n}";
|
||||
return toReturn;
|
||||
|
||||
@@ -80,27 +80,18 @@ if(librariesSb.length()>0){
|
||||
}
|
||||
<%
|
||||
}
|
||||
if(stats) { %>
|
||||
|
||||
// add statistics which shows on the connection
|
||||
final routines.system.CamelStat runStat = new routines.system.CamelStat(getCamelContexts().get(0));
|
||||
<%
|
||||
for (INode node : processNodes) {
|
||||
if (node.isActivate()) {
|
||||
for(int i=0; i<node.getIncomingConnections().size(); i++) {
|
||||
%>
|
||||
runStat.addConnectionMapping("<%=node.getUniqueName()%>", "<%=node.getIncomingConnections().get(i).getUniqueName()%>");
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
runStat.initStatisticsInterceptor();
|
||||
<% } //if stats %>
|
||||
//start camel context
|
||||
getCamelContexts().get(0).start();
|
||||
|
||||
|
||||
<% if(stats) { %>
|
||||
|
||||
// add statistics which shows on the connection
|
||||
routines.system.CamelStat runStat = new routines.system.CamelStat(getCamelContexts().get(0));
|
||||
|
||||
runStat.setParams();
|
||||
|
||||
runStat.openSocket(true);
|
||||
runStat.setAllPID(pid, pid, pid, jobName);
|
||||
runStat.startThreadStat(clientHost, portStats);
|
||||
@@ -417,68 +408,62 @@ for (IContextParameter ctxParam : params) {
|
||||
}
|
||||
}
|
||||
|
||||
class <%=process.getName()%>_Registry extends SimpleRegistry {
|
||||
class <%=process.getName()%>_Registry implements Registry {
|
||||
|
||||
private Map<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
private Registry wrapped = null;
|
||||
|
||||
public <%=process.getName()%>_Registry() {
|
||||
this(new SimpleRegistry());
|
||||
this(null);
|
||||
}
|
||||
|
||||
public <%=process.getName()%>_Registry(Registry wrapped) {
|
||||
this.wrapped = wrapped;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object lookupByName(String name) {
|
||||
public Object lookup(String name) {
|
||||
Object obj = null;
|
||||
if (wrapped != null) {
|
||||
obj = wrapped.lookupByName(name);
|
||||
obj = wrapped.lookup(name);
|
||||
}
|
||||
if (obj == null) {
|
||||
obj = super.lookupByName(name);
|
||||
obj = map.get(name);
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T lookupByNameAndType(String name, Class<T> type) {
|
||||
public <T> T lookup(String name, Class<T> type) {
|
||||
T t = null;
|
||||
if (wrapped != null) {
|
||||
t = wrapped.lookupByNameAndType(name, type);
|
||||
t = wrapped.lookup(name, type);
|
||||
}
|
||||
if (t == null) {
|
||||
t = super.lookupByNameAndType(name, type);
|
||||
t = (T) map.get(name);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> Map<String, T> findByTypeWithName(Class<T> type) {
|
||||
|
||||
public <T> Map<String, T> lookupByType(Class<T> type) {
|
||||
Map<String, T> result = null;
|
||||
if (wrapped != null) {
|
||||
result = wrapped.findByTypeWithName(type);
|
||||
result = wrapped.lookupByType(type);
|
||||
}
|
||||
if (result == null) {
|
||||
result = super.findByTypeWithName(type);
|
||||
result = new HashMap<String, T>();
|
||||
}
|
||||
if (result.isEmpty()) {
|
||||
for (Map.Entry<String, Object> entry : map.entrySet()) {
|
||||
if (type.isInstance(entry.getValue())) {
|
||||
result.put(entry.getKey(), type.cast(entry.getValue()));
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> Set<T> findByType(Class<T> type){
|
||||
Set<T> result = null;
|
||||
if (wrapped != null) {
|
||||
result = wrapped.findByType(type);
|
||||
}
|
||||
if (result == null) {
|
||||
result = super.findByType(type);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void register(String name, Object instance) {
|
||||
put(name, instance);
|
||||
map.put(name, instance);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -118,8 +118,6 @@ boolean actAsConsumer = !process.getNodesOfType("tESBConsumer").isEmpty();
|
||||
boolean talendEsbJob = actAsProvider || actAsConsumer || !process.getNodesOfType("tRouteInput").isEmpty();
|
||||
boolean talendEsbJobFactory = actAsProvider || !process.getNodesOfType("tRouteInput").isEmpty();
|
||||
|
||||
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(process, "__LOG4J_ACTIVATE__"));
|
||||
|
||||
if (talendMdmJob) {
|
||||
talendJobInterfaces += ", TalendMDMJob"; // Talend MDM job
|
||||
}
|
||||
@@ -131,10 +129,6 @@ if (talendEsbJobFactory) {
|
||||
}
|
||||
%>
|
||||
public class <%=process.getName()%> implements <%=talendJobInterfaces%> {
|
||||
<%if(isLog4jEnabled){%>
|
||||
static {System.setProperty("TalendJob.log", "<%=process.getName() %>.log");}
|
||||
private static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(<%=process.getName() %>.class);
|
||||
<%}%>
|
||||
|
||||
<% if (talendEsbJob) { %>
|
||||
private ESBEndpointRegistry registry = null;
|
||||
@@ -400,13 +394,32 @@ private class TalendException extends java.lang.Exception {
|
||||
return this.currentComponent;
|
||||
}
|
||||
|
||||
<%//For TDI-27789%>
|
||||
public String getExceptionCauseMessage(java.lang.Exception e){
|
||||
Throwable cause = e;
|
||||
String message = null;
|
||||
int i = 10;
|
||||
while (null != cause && 0 < i--) {
|
||||
message = cause.getMessage();
|
||||
if (null == message) {
|
||||
cause = cause.getCause();
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (null == message) {
|
||||
message = e.getClass().getName();
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printStackTrace() {
|
||||
if (!(e instanceof TalendException || e instanceof TDieException)) {
|
||||
if(virtualComponentName!=null && currentComponent.indexOf(virtualComponentName+"_")==0){
|
||||
globalMap.put(virtualComponentName+"_ERROR_MESSAGE",e.getMessage());
|
||||
globalMap.put(virtualComponentName+"_ERROR_MESSAGE",getExceptionCauseMessage(e));
|
||||
}
|
||||
globalMap.put(currentComponent+"_ERROR_MESSAGE",e.getMessage());
|
||||
globalMap.put(currentComponent+"_ERROR_MESSAGE",getExceptionCauseMessage(e));
|
||||
System.err.println("Exception in component " + currentComponent);
|
||||
}
|
||||
if (!(e instanceof TDieException)) {
|
||||
@@ -543,11 +556,7 @@ private class TalendException extends java.lang.Exception {
|
||||
// 1) add the message to the stack
|
||||
%>
|
||||
if(!(exception instanceof TDieException)){
|
||||
<%if("true".equals(ElementParameterParser.getValue(assertCatcher, "__GET_ORIGINAL_EXCEPTION__"))){%>
|
||||
<%=assertCatcher.getUniqueName()%>.addMessage(pid, projectName, jobName, "java", null, "Failed", "Job execution error", exception);
|
||||
<%}else{%>
|
||||
<%=assertCatcher.getUniqueName()%>.addMessage(pid, projectName, jobName, "java", null, "Failed", "Job execution error", exception.getMessage());
|
||||
<%}%>
|
||||
<%=assertCatcher.getUniqueName()%>.addMessage(pid, projectName, jobName, "java", null, "Failed", "Job execution error", exception.getMessage());
|
||||
<%=assertCatcher.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
||||
}
|
||||
<%
|
||||
|
||||
@@ -34,8 +34,6 @@
|
||||
IProcess process = (IProcess) v.get(0);
|
||||
String version = (String) v.get(1);
|
||||
|
||||
boolean isStudioEEVersion = org.talend.core.PluginChecker.isTIS();
|
||||
|
||||
List<? extends INode> processNodes = (List<? extends INode>) process.getGeneratingNodes();
|
||||
List<? extends INode> graphicalNodes = (List<? extends INode>) process.getGraphicalNodes();
|
||||
boolean stats = codeGenArgument.isStatistics();
|
||||
@@ -87,8 +85,6 @@ package <%= packageName %>;
|
||||
importsSet.add("import java.util.Properties");
|
||||
importsSet.add("import org.apache.camel.management.JmxNotificationEventNotifier");
|
||||
importsSet.add("import org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext");
|
||||
importsSet.add("import org.apache.camel.impl.SimpleRegistry");
|
||||
importsSet.add("import java.util.Set");
|
||||
|
||||
String headerImports = ElementParameterParser.getValue(process, "__HEADER_IMPORT__");
|
||||
if(headerImports!=null && !"".equals(headerImports.trim())){
|
||||
@@ -166,49 +162,16 @@ package <%= packageName %>;
|
||||
%>
|
||||
|
||||
<%
|
||||
|
||||
for (INode node : graphicalNodes) {
|
||||
String useRegistry = "false";
|
||||
String dataFormat = ElementParameterParser.getValue(node, "__DATAFORMAT__");
|
||||
if(isStudioEEVersion && !"RAW".equals(dataFormat) && !"CXF_MESSAGE".equals(dataFormat)){
|
||||
useRegistry = ElementParameterParser.getValue(node, "__ENABLE_REGISTRY__");
|
||||
}
|
||||
if("cCXF".equals(node.getComponent().getName())
|
||||
&& "true".equals(ElementParameterParser.getValue(node, "__ENABLE_SAM__"))
|
||||
&& !"RAW".equals(ElementParameterParser.getValue(node, "__DATAFORMAT__"))&& !"true".equals(useRegistry) ) { %>
|
||||
&& !"RAW".equals(ElementParameterParser.getValue(node, "__DATAFORMAT__"))) { %>
|
||||
//ESB Service Activity Monitor Feature
|
||||
private org.apache.cxf.feature.Feature eventFeature;
|
||||
private org.apache.cxf.feature.AbstractFeature eventFeature;
|
||||
|
||||
public void setEventFeature(org.apache.cxf.feature.Feature eventFeature) {
|
||||
public void setEventFeature(org.apache.cxf.feature.AbstractFeature eventFeature) {
|
||||
this.eventFeature = eventFeature;
|
||||
}
|
||||
|
||||
// https://issues.apache.org/jira/browse/CAMEL-6783
|
||||
static class FeatureWrapper extends org.apache.cxf.feature.AbstractFeature {
|
||||
|
||||
private final org.apache.cxf.feature.Feature f;
|
||||
|
||||
public FeatureWrapper(org.apache.cxf.feature.Feature f) {
|
||||
this.f = f;
|
||||
}
|
||||
|
||||
public void initialize(org.apache.cxf.endpoint.Server server, org.apache.cxf.Bus bus) {
|
||||
f.initialize(server, bus);
|
||||
}
|
||||
|
||||
public void initialize(org.apache.cxf.endpoint.Client client, org.apache.cxf.Bus bus) {
|
||||
f.initialize(client, bus);
|
||||
}
|
||||
|
||||
public void initialize(org.apache.cxf.interceptor.InterceptorProvider interceptorProvider, org.apache.cxf.Bus bus) {
|
||||
f.initialize(interceptorProvider, bus);
|
||||
}
|
||||
|
||||
public void initialize(org.apache.cxf.Bus bus) {
|
||||
f.initialize(bus);
|
||||
}
|
||||
}
|
||||
|
||||
<% break;
|
||||
}
|
||||
}
|
||||
@@ -315,35 +278,6 @@ for (INode node : graphicalNodes) {
|
||||
uri = uri + sb.toString();
|
||||
}
|
||||
}
|
||||
}else if("cDirectVM".equals(componentName)){
|
||||
boolean inputName= getBoolValue(node, "____INPUT_ENDPOINT_NAME____");
|
||||
boolean isProducer = node.getIncomingConnections().size()>0;
|
||||
|
||||
INode consumerNode = node;
|
||||
if(isProducer && !inputName){
|
||||
String desNodeName= (String)getValue(node, "____ROUTE_COMPONENT_TYPE_ID____");
|
||||
if(desNodeName!=null){
|
||||
List<? extends INode> allNodes = node.getProcess().getGraphicalNodes();
|
||||
for(INode aNode : allNodes){
|
||||
if(aNode.getUniqueName().equals(desNodeName)){
|
||||
consumerNode=aNode;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String endpointName=getValue(consumerNode, "__ENDPOINT_NAME__");
|
||||
|
||||
uri="\"direct-vm:\"+" + endpointName;
|
||||
|
||||
if(isProducer){
|
||||
boolean isBlock= getBoolValue(node, "____BLOCK____");
|
||||
if(isBlock){
|
||||
uri += "+\"?block=true&timeout="+getValue(consumerNode, "__TIMEOUT__")+"\"";
|
||||
}
|
||||
}
|
||||
|
||||
}else if("cTimer".equals(componentName)){
|
||||
uri = "\"timer:\"+\""+node.getUniqueName()+"\"";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
@@ -508,26 +442,16 @@ for (INode node : graphicalNodes) {
|
||||
|
||||
} else if ("cCXF".equals(componentName)) {
|
||||
String url = ElementParameterParser.getValue(node, "__ADDRESS__").trim();
|
||||
|
||||
|
||||
String dataformat = ElementParameterParser.getValue(node, "__DATAFORMAT__");
|
||||
|
||||
String useServiceRegistry = ElementParameterParser.getValue(node, "__ENABLE_REGISTRY__");
|
||||
if(!isStudioEEVersion || "RAW".equals(dataformat) || "CXF_MESSAGE".equals(dataformat)){
|
||||
useServiceRegistry = "false";
|
||||
}
|
||||
|
||||
String useSecurity = ElementParameterParser.getValue(node, "__ENABLE_SECURITY__");
|
||||
if("true".equals(useServiceRegistry) || "RAW".equals(dataformat) || "CXF_MESSAGE".equals(dataformat)){
|
||||
useSecurity = "false";
|
||||
}
|
||||
|
||||
|
||||
List<? extends IConnection> conns = node.getIncomingConnections();
|
||||
if ("true".equals(ElementParameterParser.getValue(node, "__ENABLE_SL__"))
|
||||
&& "false".equals(useServiceRegistry)) {
|
||||
if ("true".equals(ElementParameterParser.getValue(node, "__ENABLE_SL__"))) {
|
||||
if (!conns.isEmpty()) {
|
||||
// consumer role
|
||||
url = "((null == bundleContext) ? " + url + " : \"locator://locator/\")";
|
||||
INode source = conns.get(0).getSource();
|
||||
if (!("cErrorHandler".equals(source.getComponent().getName())
|
||||
&& source.getIncomingConnections().isEmpty())) {
|
||||
// consumer role
|
||||
url = "((null == bundleContext) ? " + url + " : \"locator://locator/\")";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -555,7 +479,7 @@ for (INode node : graphicalNodes) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
String dataformat = ElementParameterParser.getValue(node, "__DATAFORMAT__");
|
||||
sb.append("+\"&dataFormat=" + dataformat + "\"");
|
||||
|
||||
String specifyService = ElementParameterParser.getValue(node, "__SPECIFY_SERVICE__");
|
||||
@@ -573,8 +497,6 @@ for (INode node : graphicalNodes) {
|
||||
|
||||
if(!conns.isEmpty()){
|
||||
sb.append("+\"&headerFilterStrategy=#CXF_PAYLOAD_HEADER_FILTER\"");
|
||||
}else if("true".equals(useServiceRegistry) || ("true".equals(useSecurity) && "SAML".equals(ElementParameterParser.getValue(node, "__SECURITY_TYPE__")))) {
|
||||
sb.append("+\"&cxfBinding=#DEFAULT_CXF_BINDING\"");
|
||||
}
|
||||
uri = sb.toString();
|
||||
|
||||
|
||||
@@ -12,16 +12,20 @@
|
||||
org.talend.designer.codegen.config.NodesSubTree
|
||||
org.talend.core.model.utils.NodeUtil
|
||||
java.util.List
|
||||
java.util.Set
|
||||
java.util.Set
|
||||
java.util.HashSet
|
||||
java.util.Iterator
|
||||
java.util.Vector
|
||||
"
|
||||
class="IterateSubProcessFooter"
|
||||
skeleton="subprocess_header_java.skeleton"
|
||||
%>
|
||||
<%
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
INode node = (INode)codeGenArgument.getArgument();
|
||||
Vector v = (Vector) codeGenArgument.getArgument();
|
||||
INode node = (INode) v.get(0);
|
||||
String finallyPart = v.get(1).toString();
|
||||
|
||||
ECodePart codePart = codeGenArgument.getCodePart();
|
||||
//boolean trace = codeGenArgument.isTrace();
|
||||
boolean stat = codeGenArgument.isStatistics();
|
||||
@@ -51,65 +55,81 @@
|
||||
schemaInstanceDeclaration = "," + schemaInstanceDeclaration.substring(0,schemaInstanceDeclaration.length()-1);
|
||||
}
|
||||
if(stat){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=iterateConn.getUniqueName() %>",2,"exec"+iterateId);
|
||||
}
|
||||
<%
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=iterateConn.getUniqueName() %>",2,"exec"+iterateId);
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
} catch (java.lang.Exception e) {
|
||||
this.status = "failure";
|
||||
Integer localErrorCode = (Integer) (((java.util.Map) threadLocal.get()).get("errorCode"));
|
||||
if (localErrorCode != null) {
|
||||
if (this.errorCode == null || localErrorCode.compareTo(this.errorCode) > 0) {
|
||||
this.errorCode = localErrorCode;
|
||||
}
|
||||
}
|
||||
talendThreadPool.setErrorThread(this);
|
||||
talendThreadPool.stopAllWorkers();
|
||||
|
||||
TalendException te = new TalendException(e, currentComponent, globalMap);
|
||||
<%
|
||||
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
|
||||
%>
|
||||
te.setVirtualComponentName(currentVirtualComponent);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
te.printStackTrace();
|
||||
|
||||
}
|
||||
this.isRunning = false;
|
||||
|
||||
Integer localErrorCode = (Integer) (((java.util.Map) threadLocal.get()).get("errorCode"));
|
||||
String localStatus = (String) (((java.util.Map) threadLocal.get()).get("status"));
|
||||
if (localErrorCode != null) {
|
||||
if (this.errorCode == null || localErrorCode.compareTo(this.errorCode) > 0) {
|
||||
this.errorCode = localErrorCode;
|
||||
}
|
||||
}
|
||||
if (!this.status.equals("failure")) {
|
||||
this.status = localStatus;
|
||||
}
|
||||
|
||||
talendThreadPool.getTalendThreadResult().setErrorCode(this.errorCode);
|
||||
talendThreadPool.getTalendThreadResult().setStatus(this.status);
|
||||
}
|
||||
}
|
||||
|
||||
<%=node.getUniqueName() %>Thread bt_<%=node.getUniqueName() %> = new <%=node.getUniqueName() %>Thread(globalMap<%=schemaInstanceDeclaration %>,threadIdCounter++);
|
||||
mtp_<%=node.getUniqueName() %>.execute(bt_<%=node.getUniqueName() %>);
|
||||
%>
|
||||
} catch (java.lang.Exception e) {
|
||||
this.status = "failure";
|
||||
Integer localErrorCode = (Integer) (((java.util.Map) threadLocal.get()).get("errorCode"));
|
||||
if (localErrorCode != null) {
|
||||
if (this.errorCode == null || localErrorCode.compareTo(this.errorCode) > 0) {
|
||||
this.errorCode = localErrorCode;
|
||||
}
|
||||
}
|
||||
|
||||
TalendException te = new TalendException(e, currentComponent, globalMap);
|
||||
<%
|
||||
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
|
||||
%>
|
||||
te.setVirtualComponentName(currentVirtualComponent);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
this.exception = te;
|
||||
talendThreadPool.setErrorThread(this);
|
||||
talendThreadPool.stopAllWorkers();
|
||||
|
||||
<%
|
||||
} finally {
|
||||
try{
|
||||
<%=finallyPart%>
|
||||
}catch(java.lang.Exception e){
|
||||
//ignore
|
||||
}catch(java.lang.Error error){
|
||||
//ignore
|
||||
}
|
||||
resourceMap = null;
|
||||
}
|
||||
this.isRunning = false;
|
||||
|
||||
Integer localErrorCode = (Integer) (((java.util.Map) threadLocal.get()).get("errorCode"));
|
||||
String localStatus = (String) (((java.util.Map) threadLocal.get()).get("status"));
|
||||
if (localErrorCode != null) {
|
||||
if (this.errorCode == null || localErrorCode.compareTo(this.errorCode) > 0) {
|
||||
this.errorCode = localErrorCode;
|
||||
}
|
||||
}
|
||||
if (!this.status.equals("failure")) {
|
||||
this.status = localStatus;
|
||||
}
|
||||
|
||||
talendThreadPool.getTalendThreadResult().setErrorCode(this.errorCode);
|
||||
talendThreadPool.getTalendThreadResult().setStatus(this.status);
|
||||
}
|
||||
}
|
||||
|
||||
<%=node.getUniqueName() %>Thread bt_<%=node.getUniqueName() %> = new <%=node.getUniqueName() %>Thread(globalMap<%=schemaInstanceDeclaration %>,threadIdCounter++);
|
||||
mtp_<%=node.getUniqueName() %>.execute(bt_<%=node.getUniqueName() %>);
|
||||
|
||||
<%
|
||||
continue;
|
||||
}else {//3
|
||||
if(stat){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=iterateConn.getUniqueName() %>", 2, "exec" + NB_ITERATE_<%=iterateNodeName %>);
|
||||
}
|
||||
<%
|
||||
if(node.getDesignSubjobStartNode().getComponent().getName().equals("tCollector")){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnIterate("<%=iterateConn.getUniqueName() %>", RunStat.END);
|
||||
}
|
||||
<%
|
||||
}else{%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=iterateConn.getUniqueName() %>", 2, "exec" + NB_ITERATE_<%=iterateNodeName %>);
|
||||
}
|
||||
<%
|
||||
}
|
||||
}
|
||||
}//3
|
||||
}//2
|
||||
|
||||
@@ -50,12 +50,10 @@ params = process.getContextManager().getDefaultContext().getContextParameterList
|
||||
List<IConnection> allSubProcessConnection = codeGenArgument.getAllMainSubTreeConnections();
|
||||
boolean parallelIterate = false;
|
||||
for (IConnection iterateConn : iterateConnSet) { //1
|
||||
|
||||
%>
|
||||
NB_ITERATE_<%=iterateNodeName %>++;
|
||||
iterateLoop++;
|
||||
<%
|
||||
|
||||
<%
|
||||
parallelIterate = "true".equals(ElementParameterParser.getValue(iterateConn, "__ENABLE_PARALLEL__"));
|
||||
if (parallelIterate) {//2
|
||||
if (codePart.equals(ECodePart.BEGIN)) {//3
|
||||
@@ -64,163 +62,176 @@ for (IConnection iterateConn : iterateConnSet) { //1
|
||||
rowList += conn.getUniqueName()+"Struct "+conn.getUniqueName()+",";
|
||||
}
|
||||
rowList = rowList.substring(0, rowList.length()-1);
|
||||
%>
|
||||
class <%=node.getUniqueName() %>Thread extends TalendThread {//implements routines.system.TalendThreadPool.PropertySettable
|
||||
%>
|
||||
class <%=node.getUniqueName() %>Thread extends TalendThread {//implements routines.system.TalendThreadPool.PropertySettable
|
||||
|
||||
class ThreadedMap extends java.util.HashMap<String, Object> {
|
||||
class ThreadedMap extends java.util.HashMap<String, Object> {
|
||||
|
||||
private static final long serialVersionUID = 0L;
|
||||
|
||||
public ThreadedMap(java.util.Map<String, Object> globalMap) {
|
||||
super(globalMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object put(String key, Object value) {
|
||||
<%if(!isRunInMultiThread){%>
|
||||
synchronized (<%=process.getName()%>.this.obj) {
|
||||
<%}%>
|
||||
super.put(key, value);
|
||||
return <%=process.getName()%>.this.globalMap.put(key, value);
|
||||
<%if(!isRunInMultiThread){%>
|
||||
}
|
||||
<%}%>
|
||||
}
|
||||
}
|
||||
<% if(isRunJob) {%>
|
||||
private final ContextProperties localContext = new ContextProperties();
|
||||
<% } %>
|
||||
private java.util.Map<String, Object> globalMap = null;
|
||||
boolean isRunning = false;
|
||||
String iterateId = "";
|
||||
int iterateLoop = 0;
|
||||
<%
|
||||
if(!subTree.isMergeSubTree()) {
|
||||
List< ? extends IConnection> rootConns = subTree.getRootNode().getOutgoingConnections();
|
||||
if ((rootConns!=null)&&(rootConns.size()>0)) {
|
||||
%>
|
||||
<%=createPrivateClassInstance(subTree.getRootNode(), rootConns.get(0).getName(), false)%>
|
||||
<%
|
||||
}
|
||||
} else {
|
||||
List<INode> sortedMergeBranchStarts = subTree.getSortedMergeBranchStarts();
|
||||
for (INode startNode : sortedMergeBranchStarts) {
|
||||
List< ? extends IConnection> rootConns = startNode.getOutgoingConnections();
|
||||
if ((rootConns!=null)&&(rootConns.size()>0)) {
|
||||
%>
|
||||
<%=createPrivateClassInstance(startNode, rootConns.get(0).getName(), false)%>
|
||||
<%
|
||||
private static final long serialVersionUID = 0L;
|
||||
|
||||
public ThreadedMap(java.util.Map<String, Object> globalMap) {
|
||||
super(globalMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object put(String key, Object value) {
|
||||
<%if(!isRunInMultiThread){%>
|
||||
synchronized (<%=process.getName()%>.this.obj) {
|
||||
<%}%>
|
||||
super.put(key, value);
|
||||
return <%=process.getName()%>.this.globalMap.put(key, value);
|
||||
<%if(!isRunInMultiThread){%>
|
||||
}
|
||||
<%}%>
|
||||
}
|
||||
}
|
||||
<% if(isRunJob) {%>
|
||||
private final ContextProperties localContext = new ContextProperties();
|
||||
<% } %>
|
||||
private java.util.Map<String, Object> globalMap = null;
|
||||
boolean isRunning = false;
|
||||
String iterateId = "";
|
||||
int iterateLoop = 0;
|
||||
<%
|
||||
if(!subTree.isMergeSubTree()) {
|
||||
List< ? extends IConnection> rootConns = subTree.getRootNode().getOutgoingConnections();
|
||||
if ((rootConns!=null)&&(rootConns.size()>0)) {
|
||||
%>
|
||||
<%=createPrivateClassInstance(subTree.getRootNode(), rootConns.get(0).getName(), false)%>
|
||||
<%
|
||||
}
|
||||
} else {
|
||||
List<INode> sortedMergeBranchStarts = subTree.getSortedMergeBranchStarts();
|
||||
for (INode startNode : sortedMergeBranchStarts) {
|
||||
List< ? extends IConnection> rootConns = startNode.getOutgoingConnections();
|
||||
if ((rootConns!=null)&&(rootConns.size()>0)) {
|
||||
%>
|
||||
<%=createPrivateClassInstance(startNode, rootConns.get(0).getName(), false)%>
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
||||
List< ? extends IConnection> rootConns = subTree.getMergeNode().getOutgoingConnections();
|
||||
if ((rootConns!=null)&&(rootConns.size()>0)) {
|
||||
%>
|
||||
<%=createPrivateClassInstance(subTree.getMergeNode(), rootConns.get(0).getName(), false)%>
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
||||
List< ? extends IConnection> rootConns = subTree.getMergeNode().getOutgoingConnections();
|
||||
if ((rootConns!=null)&&(rootConns.size()>0)) {
|
||||
%>
|
||||
<%=createPrivateClassInstance(subTree.getMergeNode(), rootConns.get(0).getName(), false)%>
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
||||
String schemaInstanceDeclaration = createPriveClassMethodDeclaration(subTree.getRootNode(), subTree.getRootNode().getOutgoingConnections().get(0).getName(), false, new java.util.HashSet<String>());
|
||||
if (schemaInstanceDeclaration.length()>0) {
|
||||
schemaInstanceDeclaration = "," + schemaInstanceDeclaration.substring(0,schemaInstanceDeclaration.length()-1);
|
||||
}
|
||||
%>
|
||||
String schemaInstanceDeclaration = createPriveClassMethodDeclaration(subTree.getRootNode(), subTree.getRootNode().getOutgoingConnections().get(0).getName(), false, new java.util.HashSet<String>());
|
||||
if (schemaInstanceDeclaration.length()>0) {
|
||||
schemaInstanceDeclaration = "," + schemaInstanceDeclaration.substring(0,schemaInstanceDeclaration.length()-1);
|
||||
}
|
||||
%>
|
||||
|
||||
public <%=node.getUniqueName() %>Thread(java.util.Map<String, Object> globalMap<%=schemaInstanceDeclaration %>, int threadID) {
|
||||
super();
|
||||
<%
|
||||
for (IConnection connection : allSubProcessConnection) {
|
||||
IMetadataTable table = connection.getMetadataTable();
|
||||
%>
|
||||
if(<%= connection.getName() %> != null){
|
||||
<%
|
||||
List<IMetadataColumn> listColumns = table.getListColumns();
|
||||
for (IMetadataColumn column : listColumns) {
|
||||
%>this.<%= connection.getName() %>.<%= column.getLabel() %> = <%= connection.getName() %>.<%= column.getLabel() %>;
|
||||
<%
|
||||
}
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%
|
||||
// if codeGenArgument.getIsRunInMultiThread() is true, the job.this.globalMap will wrapped with synchronizedMap, use synchronized(job.this.globalMap) when use globalMap.keySet().iterator()
|
||||
// when codeGenArgument.getIsRunInMultiThread() is false, the job.this.globalMap is HashMap, use synchronized(job.this.object) when do the job.this.globalMap.put() operation(tMap,tIterateToFlow).
|
||||
if(isRunInMultiThread){%>
|
||||
synchronized (globalMap) {
|
||||
this.globalMap = java.util.Collections.synchronizedMap(new ThreadedMap(globalMap));
|
||||
<%}else{%>
|
||||
synchronized (<%=process.getName()%>.this.obj) {
|
||||
this.globalMap = new ThreadedMap(globalMap);
|
||||
<%}%>
|
||||
public <%=node.getUniqueName() %>Thread(java.util.Map<String, Object> globalMap<%=schemaInstanceDeclaration %>, int threadID) {
|
||||
super();
|
||||
<%
|
||||
for (IConnection connection : allSubProcessConnection) {
|
||||
IMetadataTable table = connection.getMetadataTable();
|
||||
%>
|
||||
if(<%= connection.getName() %> != null){
|
||||
<%
|
||||
List<IMetadataColumn> listColumns = table.getListColumns();
|
||||
for (IMetadataColumn column : listColumns) {
|
||||
%>
|
||||
this.<%= connection.getName() %>.<%= column.getLabel() %> = <%= connection.getName() %>.<%= column.getLabel() %>;
|
||||
<%
|
||||
}
|
||||
%>
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%
|
||||
// if codeGenArgument.getIsRunInMultiThread() is true, the job.this.globalMap will wrapped with synchronizedMap, use synchronized(job.this.globalMap) when use globalMap.keySet().iterator()
|
||||
// when codeGenArgument.getIsRunInMultiThread() is false, the job.this.globalMap is HashMap, use synchronized(job.this.object) when do the job.this.globalMap.put() operation(tMap,tIterateToFlow).
|
||||
if(isRunInMultiThread){%>
|
||||
synchronized (globalMap) {
|
||||
this.globalMap = java.util.Collections.synchronizedMap(new ThreadedMap(globalMap));
|
||||
<%}else{%>
|
||||
synchronized (<%=process.getName()%>.this.obj) {
|
||||
this.globalMap = new ThreadedMap(globalMap);
|
||||
<%}%>
|
||||
}
|
||||
iterateId = "." + threadID;
|
||||
iterateLoop++;
|
||||
<%if(isRunJob) {%>
|
||||
//bug21906 copy context to local for mutilthread
|
||||
context.synchronizeContext();
|
||||
java.util.Enumeration<?> propertyNames = context.propertyNames();
|
||||
while(propertyNames.hasMoreElements()) {
|
||||
String propertyName = (String)propertyNames.nextElement();
|
||||
String propertyValue = context.getProperty(propertyName);
|
||||
localContext.setProperty(propertyName, propertyValue);
|
||||
}
|
||||
<% for (IContextParameter ctxParam : params){%>
|
||||
localContext.<%=ctxParam.getName()%> = context.<%=ctxParam.getName()%>;
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
}
|
||||
iterateId = "." + threadID;
|
||||
iterateLoop++;
|
||||
<%if(isRunJob) {%>
|
||||
//bug21906 copy context to local for mutilthread
|
||||
context.synchronizeContext();
|
||||
java.util.Enumeration<?> propertyNames = context.propertyNames();
|
||||
while(propertyNames.hasMoreElements()) {
|
||||
String propertyName = (String)propertyNames.nextElement();
|
||||
String propertyValue = context.getProperty(propertyName);
|
||||
localContext.setProperty(propertyName, propertyValue);
|
||||
}
|
||||
<% for (IContextParameter ctxParam : params){%>
|
||||
localContext.<%=ctxParam.getName()%> = context.<%=ctxParam.getName()%>;
|
||||
<% } %>
|
||||
<% } %>
|
||||
}
|
||||
|
||||
|
||||
public void run() {
|
||||
|
||||
java.util.Map threadRunResultMap = new java.util.HashMap();
|
||||
threadRunResultMap.put("errorCode", null);
|
||||
threadRunResultMap.put("status", "");
|
||||
threadLocal.set(threadRunResultMap);
|
||||
|
||||
this.isRunning = true;
|
||||
String currentComponent = "";
|
||||
<%
|
||||
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
|
||||
%>
|
||||
String currentVirtualComponent = null;
|
||||
<%
|
||||
}
|
||||
%>
|
||||
try {
|
||||
<%
|
||||
if(stat){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=iterateConn.getUniqueName() %>",0,"exec"+iterateId);
|
||||
}
|
||||
<%
|
||||
}
|
||||
}//3
|
||||
continue;
|
||||
}else {//2
|
||||
if(stat){
|
||||
%>
|
||||
|
||||
<%
|
||||
public void run() {
|
||||
|
||||
java.util.Map threadRunResultMap = new java.util.HashMap();
|
||||
threadRunResultMap.put("errorCode", null);
|
||||
threadRunResultMap.put("status", "");
|
||||
threadLocal.set(threadRunResultMap);
|
||||
|
||||
this.isRunning = true;
|
||||
String currentComponent = "";
|
||||
java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();
|
||||
<%
|
||||
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
|
||||
%>
|
||||
String currentVirtualComponent = null;
|
||||
<%
|
||||
}
|
||||
%>
|
||||
try {
|
||||
<%
|
||||
if(stat){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=iterateConn.getUniqueName() %>",0,"exec"+iterateId);
|
||||
}
|
||||
<%
|
||||
}
|
||||
}//3
|
||||
continue;
|
||||
}else {//2
|
||||
if(stat){
|
||||
//iterateConn.getSource().getVirtualLinkTo() only works on the first component of a virtual component, if it works for the second one, the code should change
|
||||
boolean iterateInVComp = iterateConn.getSource().getVirtualLinkTo() != null && iterateConn.getSource().getVirtualLinkTo() == EConnectionType.ITERATE;
|
||||
if(!iterateInVComp){
|
||||
Set<? extends IConnection> allInLineJobConns = NodeUtil.getAllInLineJobConnections(iterateConn.getTarget());
|
||||
for (IConnection inLineConn : allInLineJobConns) {
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=inLineConn.getUniqueName() %>", 3, 0);
|
||||
}
|
||||
<%
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=inLineConn.getUniqueName() %>", 3, 0);
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=iterateConn.getUniqueName() %>", 1, "exec" + NB_ITERATE_<%=iterateNodeName %>);
|
||||
//Thread.sleep(1000);
|
||||
}
|
||||
<%
|
||||
}
|
||||
}//2
|
||||
}//1
|
||||
}
|
||||
if(node.getDesignSubjobStartNode().getComponent().getName().equals("tCollector")){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnIterate("<%=iterateConn.getUniqueName() %>", RunStat.RUNNING);
|
||||
}
|
||||
<%
|
||||
}else{
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=iterateConn.getUniqueName() %>", 1, "exec" + NB_ITERATE_<%=iterateNodeName %>);
|
||||
//Thread.sleep(1000);
|
||||
}
|
||||
<%
|
||||
}
|
||||
}
|
||||
}//2
|
||||
}//1
|
||||
%>
|
||||
|
||||
@@ -10,24 +10,24 @@
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
java.util.List
|
||||
java.util.Iterator
|
||||
org.talend.core.model.process.IProcess
|
||||
java.util.Vector
|
||||
org.talend.core.model.utils.NodeUtil
|
||||
"
|
||||
class="SubProcessFooter"
|
||||
%>
|
||||
<%
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
Vector v = (Vector) codeGenArgument.getArgument();
|
||||
NodesSubTree subTree = (NodesSubTree) v.get(0);
|
||||
String finallyPart = v.get(1).toString();
|
||||
boolean stat = codeGenArgument.isStatistics();
|
||||
NodesSubTree subTree = (NodesSubTree) codeGenArgument.getArgument();
|
||||
IProcess process = subTree.getRootNode().getProcess();
|
||||
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(process, "__LOG4J_ACTIVATE__"));
|
||||
for (INode node : subTree.getNodes()) {
|
||||
for(INode node : subTree.getNodes()){
|
||||
List<IMetadataTable> metadatas = node.getMetadataList();
|
||||
List< ? extends IConnection> conns = node.getOutgoingConnections();
|
||||
}
|
||||
|
||||
boolean isParallelize = false;
|
||||
for (INode node : subTree.getNodes()) {
|
||||
for(INode node : subTree.getNodes()){
|
||||
if(node!=null){
|
||||
String parallelize = ElementParameterParser.getValue(node, "__PARALLELIZE__");
|
||||
if(parallelize!=null &¶llelize.equals("true")){
|
||||
@@ -37,7 +37,7 @@
|
||||
}
|
||||
}
|
||||
if(isParallelize){
|
||||
%>
|
||||
%>
|
||||
|
||||
} catch (java.lang.Exception e) {
|
||||
this.status = "failure";
|
||||
@@ -50,6 +50,15 @@
|
||||
pool.setErrorThread(this, new TalendException(e, currentComponent, globalMap));
|
||||
//pool.setErrorThread(this,e);
|
||||
pool.stopAllThreads();
|
||||
}finally{
|
||||
try{
|
||||
<%=finallyPart%>
|
||||
}catch(java.lang.Exception e){
|
||||
//ignore
|
||||
}catch(java.lang.Error error){
|
||||
//ignore
|
||||
}
|
||||
resourceMap = null;
|
||||
}
|
||||
this.isRunning = false;
|
||||
|
||||
@@ -79,7 +88,7 @@
|
||||
}
|
||||
} else {
|
||||
// Start a new thread
|
||||
<%=subTree.getName() %>_ParallelThread pt = new <%=subTree.getName()%>_ParallelThread(
|
||||
<%=subTree.getName()%>_ParallelThread pt = new <%=subTree.getName()%>_ParallelThread(
|
||||
globalMap, (Object[]) globalMap
|
||||
.get("PARALLEL_FLOW_LOCK_<%=(subTree.getName()).replaceAll("tAsyncIn", "tAsyncOut")%>"));
|
||||
pt.putBuffer(buffer);
|
||||
@@ -90,212 +99,198 @@
|
||||
} catch (java.lang.Exception te) {
|
||||
throw new TalendException(te, currentComponent, globalMap);
|
||||
}
|
||||
<%
|
||||
<%
|
||||
}else{
|
||||
%>
|
||||
%>
|
||||
}//end the resume
|
||||
|
||||
|
||||
|
||||
<%
|
||||
//this part for "Resume Management"
|
||||
{
|
||||
INode firstNode = subTree.getNode(subTree.getName());
|
||||
|
||||
List<String> beforeSubProcesses = subTree.getBeforeSubProcesses();
|
||||
|
||||
//System.out.println(firstNode.getUniqueName());
|
||||
List<? extends IConnection> outConns = firstNode.getOutgoingConnections();
|
||||
|
||||
//System.out.println(inConns.size());
|
||||
for(IConnection conn : outConns){
|
||||
|
||||
// boolean activeResume = "true".equals(ElementParameterParser.getValue(conn, "__RESUMING_CHECKPOINT__"));
|
||||
boolean activeResume = true;
|
||||
|
||||
//System.out.println("Test:" + ElementParameterParser.getValue(conn, "__RESUMING_CHECKPOINT__"));
|
||||
|
||||
String uniqueNameTargetNode = conn.getTarget().getUniqueName();
|
||||
|
||||
EConnectionType lineStyle = conn.getLineStyle();
|
||||
|
||||
}
|
||||
}
|
||||
%>
|
||||
}//end the resume
|
||||
|
||||
<%
|
||||
if (subTree.getRootNode().getProcess().getNodesOfType("tFlowMeterCatcher").size() > 0
|
||||
&& subTree.getRootNode().getProcess().getNodesOfType("tFlowMeter").size() >0 ) {
|
||||
List<INode> metterCatchers = (List<INode>)subTree.getRootNode().getProcess().getNodesOfType("tFlowMeterCatcher");
|
||||
List<INode> metters = (List<INode>)subTree.getRootNode().getProcess().getNodesOfType("tFlowMeter");
|
||||
List<INode> nodes = (List<INode>)subTree.getNodes();
|
||||
|
||||
boolean hasMetterProcess = false;
|
||||
for(INode tmp : nodes)
|
||||
{
|
||||
for(INode metter : metters)
|
||||
{
|
||||
if(tmp.getUniqueName().equals(metter.getUniqueName()))
|
||||
{
|
||||
hasMetterProcess = true;
|
||||
break;
|
||||
<%
|
||||
if(subTree.getRootNode().getProcess().getNodesOfType("tFlowMeterCatcher").size() > 0
|
||||
&& subTree.getRootNode().getProcess().getNodesOfType("tFlowMeter").size() > 0){
|
||||
List<INode> metterCatchers = (List<INode>)subTree.getRootNode().getProcess().getNodesOfType("tFlowMeterCatcher");
|
||||
List<INode> metters = (List<INode>)subTree.getRootNode().getProcess().getNodesOfType("tFlowMeter");
|
||||
List<INode> nodes = (List<INode>)subTree.getNodes();
|
||||
|
||||
boolean hasMetterProcess = false;
|
||||
for(INode tmp : nodes){
|
||||
for(INode metter : metters){
|
||||
if(tmp.getUniqueName().equals(metter.getUniqueName())){
|
||||
hasMetterProcess = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(hasMetterProcess){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(hasMetterProcess){
|
||||
for(INode metterCatcher : metterCatchers){
|
||||
%>
|
||||
<%=metterCatcher.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(hasMetterProcess)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(hasMetterProcess)
|
||||
{
|
||||
for (INode metterCatcher : metterCatchers) {
|
||||
|
||||
%>
|
||||
<%=metterCatcher.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
||||
<%
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
<%
|
||||
//this part for "Resume Management"
|
||||
{
|
||||
INode firstNode = subTree.getNode(subTree.getName());
|
||||
|
||||
List<String> beforeSubProcesses = subTree.getBeforeSubProcesses();
|
||||
|
||||
//System.out.println(firstNode.getUniqueName());
|
||||
List<? extends IConnection> outConns = firstNode.getOutgoingConnections();
|
||||
|
||||
//System.out.println(inConns.size());
|
||||
for(IConnection conn : outConns){
|
||||
|
||||
// boolean activeResume = "true".equals(ElementParameterParser.getValue(conn, "__RESUMING_CHECKPOINT__"));
|
||||
boolean activeResume = true;
|
||||
|
||||
//System.out.println("Test:" + ElementParameterParser.getValue(conn, "__RESUMING_CHECKPOINT__"));
|
||||
|
||||
String uniqueNameTargetNode = conn.getTarget().getUniqueName();
|
||||
|
||||
EConnectionType lineStyle = conn.getLineStyle();
|
||||
|
||||
if(beforeSubProcesses.indexOf(uniqueNameTargetNode) != -1) {
|
||||
if(activeResume){
|
||||
%>
|
||||
if( resumeEntryMethodName == null || globalResumeTicket){
|
||||
resumeUtil.addLog("CHECKPOINT", "CONNECTION:<%=lineStyle.getName() %>:<%=subTree.getName() %>:<%=conn.getName() %><%=conn.getOutputId() > 0 ? conn.getOutputId() : "" %>", "", Thread.currentThread().getId() + "", "", "", "", "", "");
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%
|
||||
if(stat){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=conn.getUniqueName() %>", 0, "ok");
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%= uniqueNameTargetNode %>Process(globalMap);
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
|
||||
|
||||
|
||||
} catch(java.lang.Exception e) {
|
||||
<%if(isLog4jEnabled){%>
|
||||
log.error(currentComponent + " " + e.getMessage());
|
||||
<%}%>
|
||||
TalendException te = new TalendException(e, currentComponent, globalMap);
|
||||
<%
|
||||
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
|
||||
%>
|
||||
te.setVirtualComponentName(currentVirtualComponent);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
throw te;
|
||||
|
||||
} catch(java.lang.Error error) {
|
||||
|
||||
<%
|
||||
if(stat){
|
||||
%>
|
||||
runStat.stopThreadStat();
|
||||
<%
|
||||
}
|
||||
%>
|
||||
throw error;
|
||||
|
||||
}
|
||||
<%
|
||||
//generate the code to free memory for lookup link and virtual component buffered datas
|
||||
boolean firstIn = true;
|
||||
boolean needGc = false;
|
||||
List<INode> nodes = subTree.getNodes();
|
||||
for(INode node:nodes){
|
||||
|
||||
boolean isVirtualGenerateNode = node.isVirtualGenerateNode();
|
||||
|
||||
//check the virtual component generate node
|
||||
if(isVirtualGenerateNode){
|
||||
String origin = ElementParameterParser.getValue(node, "__ORIGIN__");
|
||||
if(origin != null && !"".equals(origin)){
|
||||
if(!needGc) needGc = true;
|
||||
%>
|
||||
<%if(firstIn){%> finally{ <% firstIn = false;}%>
|
||||
//free memory for "<%=node.getUniqueName() %>"
|
||||
globalMap.remove("<%=origin %>");
|
||||
<%
|
||||
}
|
||||
}else{
|
||||
//check the Lookup link
|
||||
List<? extends IConnection> lookupInput = node.getIncomingConnections(EConnectionType.FLOW_REF);
|
||||
if(lookupInput!=null && lookupInput.size()>0){
|
||||
if(!needGc) needGc = true;
|
||||
//check the tMap like this, instanceof can't work
|
||||
if(node.getClass().getName().equals("org.talend.designer.mapper.MapperComponent")){
|
||||
for(IConnection connection:lookupInput){
|
||||
%>
|
||||
<%if(firstIn){%> finally{ <% firstIn = false;}%>
|
||||
//free memory for "<%=node.getUniqueName() %>"
|
||||
globalMap.remove("tHash_Lookup_<%=connection.getName() %>");
|
||||
<%
|
||||
}
|
||||
}else{
|
||||
for(IConnection connection:lookupInput){
|
||||
%>
|
||||
<%if(firstIn){%> finally{ <% firstIn = false;}%>
|
||||
//free memory for "<%=node.getUniqueName() %>"
|
||||
globalMap.remove("tHash_<%=connection.getName() %>");
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(needGc) {
|
||||
%>
|
||||
//this part for "Resume Management"
|
||||
{
|
||||
INode firstNode = subTree.getNode(subTree.getName());
|
||||
|
||||
List<String> beforeSubProcesses = subTree.getBeforeSubProcesses();
|
||||
|
||||
//System.out.println(firstNode.getUniqueName());
|
||||
List<? extends IConnection> outConns = firstNode.getOutgoingConnections();
|
||||
|
||||
//System.out.println(inConns.size());
|
||||
for(IConnection conn : outConns){
|
||||
|
||||
//boolean activeResume = "true".equals(ElementParameterParser.getValue(conn, "__RESUMING_CHECKPOINT__"));
|
||||
boolean activeResume = true;
|
||||
|
||||
//System.out.println("Test:" + ElementParameterParser.getValue(conn, "__RESUMING_CHECKPOINT__"));
|
||||
|
||||
String uniqueNameTargetNode = conn.getTarget().getUniqueName();
|
||||
|
||||
EConnectionType lineStyle = conn.getLineStyle();
|
||||
|
||||
}
|
||||
<%
|
||||
}
|
||||
}//isParallelize
|
||||
%>
|
||||
if(beforeSubProcesses.indexOf(uniqueNameTargetNode) != -1){
|
||||
if(activeResume){
|
||||
%>
|
||||
if(resumeEntryMethodName == null || globalResumeTicket){
|
||||
resumeUtil.addLog("CHECKPOINT", "CONNECTION:<%=lineStyle.getName() %>:<%=subTree.getName() %>:<%=conn.getName() %><%=conn.getOutputId() > 0 ? conn.getOutputId() : "" %>", "", Thread.currentThread().getId() + "", "", "", "", "", "");
|
||||
}
|
||||
<%
|
||||
}
|
||||
if(stat){
|
||||
%>
|
||||
if(execStat){
|
||||
runStat.updateStatOnConnection("<%=conn.getUniqueName() %>", 0, "ok");
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%= uniqueNameTargetNode %>Process(globalMap);
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
|
||||
|
||||
|
||||
globalMap.put("<%=subTree.getName() %>_SUBPROCESS_STATE", 1);
|
||||
}
|
||||
<% if (subTree.isMethodSizeNeeded()){ %>
|
||||
/**
|
||||
* End of Function: <%=subTree.getName() %>Process
|
||||
*/
|
||||
<% } %>
|
||||
}catch(java.lang.Exception e){
|
||||
|
||||
TalendException te = new TalendException(e, currentComponent, globalMap);
|
||||
<%
|
||||
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
|
||||
%>
|
||||
te.setVirtualComponentName(currentVirtualComponent);
|
||||
<%
|
||||
}
|
||||
for(INode node : subTree.getNodes()){
|
||||
if(node!=null){
|
||||
if("tDepartitioner".equals(node.getComponent().getName())){
|
||||
String cid = node.getUniqueName();
|
||||
%>
|
||||
if(resourceMap.get("finish_<%=cid%>") == null){
|
||||
if(resourceMap.get("start_<%=cid%>") != null){
|
||||
globalMap.put("THREADS_HAVE_ERROR", e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
throw te;
|
||||
}catch(java.lang.Error error){
|
||||
<%
|
||||
if(stat){
|
||||
%>
|
||||
runStat.stopThreadStat();
|
||||
<%
|
||||
}
|
||||
for(INode node : subTree.getNodes()){
|
||||
if(node!=null){
|
||||
if("tDepartitioner".equals(node.getComponent().getName())){
|
||||
String cid = node.getUniqueName();
|
||||
%>
|
||||
if(resourceMap.get("finish_<%=cid%>") == null){
|
||||
if(resourceMap.get("start_<%=cid%>") != null){
|
||||
globalMap.put("THREADS_HAVE_ERROR",error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
throw error;
|
||||
}finally{
|
||||
<%
|
||||
//generate the code to free memory for lookup link and virtual component buffered datas
|
||||
List<INode> nodes = subTree.getNodes();
|
||||
for(INode node:nodes){
|
||||
|
||||
boolean isVirtualGenerateNode = node.isVirtualGenerateNode();
|
||||
|
||||
//check the virtual component generate node
|
||||
if(isVirtualGenerateNode){
|
||||
String origin = ElementParameterParser.getValue(node, "__ORIGIN__");
|
||||
if(origin != null && !"".equals(origin)){
|
||||
%>
|
||||
//free memory for "<%=node.getUniqueName()%>"
|
||||
globalMap.remove("<%=origin%>");
|
||||
<%
|
||||
}
|
||||
}else{
|
||||
//check the Lookup link
|
||||
List<? extends IConnection> lookupInput = node.getIncomingConnections(EConnectionType.FLOW_REF);
|
||||
if(lookupInput!=null && lookupInput.size()>0){
|
||||
//check the tMap like this, instanceof can't work
|
||||
if(node.getClass().getName().equals("org.talend.designer.mapper.MapperComponent")){
|
||||
for(IConnection connection:lookupInput){
|
||||
%>
|
||||
//free memory for "<%=node.getUniqueName()%>"
|
||||
globalMap.remove("tHash_Lookup_<%=connection.getName()%>");
|
||||
<%
|
||||
}
|
||||
}else{
|
||||
for(IConnection connection:lookupInput){
|
||||
%>
|
||||
//free memory for "<%=node.getUniqueName()%>"
|
||||
globalMap.remove("tHash_<%=connection.getName()%>");
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
try{
|
||||
<%=finallyPart%>
|
||||
}catch(java.lang.Exception e){
|
||||
//ignore
|
||||
}catch(java.lang.Error error){
|
||||
//ignore
|
||||
}
|
||||
resourceMap = null;
|
||||
}
|
||||
<%
|
||||
}//isParallelize
|
||||
%>
|
||||
|
||||
globalMap.put("<%=subTree.getName() %>_SUBPROCESS_STATE", 1);
|
||||
}
|
||||
<%
|
||||
if(subTree.isMethodSizeNeeded()){
|
||||
%>
|
||||
/**
|
||||
* End of Function: <%=subTree.getName() %>Process
|
||||
*/
|
||||
<%
|
||||
}
|
||||
%>
|
||||
@@ -58,15 +58,10 @@
|
||||
hSet.add(conn.getName() + templateOrigin);
|
||||
IMetadataTable metadata = conn.getMetadataTable();
|
||||
|
||||
boolean changeHashAndEqualsForBigDecimal = false;
|
||||
Set<String> hashableColumnsNames = new HashSet<String>();
|
||||
|
||||
INode targetNode = conn.getTarget();
|
||||
if(targetNode instanceof IHashableInputConnections) {
|
||||
if(targetNode.getUniqueName().startsWith("tMap")) {
|
||||
changeHashAndEqualsForBigDecimal = "true".equals(ElementParameterParser.getValue(targetNode, "__CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL__"));
|
||||
}
|
||||
IHashableInputConnections target = (IHashableInputConnections)targetNode;
|
||||
Set<String> hashableColumnsNames = new HashSet<String>();
|
||||
if(conn.getTarget() instanceof IHashableInputConnections) {
|
||||
IHashableInputConnections target = (IHashableInputConnections) conn.getTarget();
|
||||
IHashConfiguration hashConfiguration = target.getHashConfiguration(conn.getName());
|
||||
if(hashConfiguration != null) {
|
||||
for(IHashableColumn hashableColumn : hashConfiguration.getHashableColumns()) {
|
||||
@@ -200,10 +195,6 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
|
||||
result = prime * result + java.util.Arrays.hashCode(this.<%=column.getLabel() %>);
|
||||
<%
|
||||
|
||||
} else if((javaType == JavaTypesManager.BIGDECIMAL) && changeHashAndEqualsForBigDecimal) {
|
||||
%>
|
||||
result = prime * result + ((this.<%=column.getLabel() %> == null) ? 0 : new Double(this.<%=column.getLabel() %>.doubleValue()).hashCode());
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
result = prime * result + ((this.<%=column.getLabel() %> == null) ? 0 : this.<%=column.getLabel() %>.hashCode());
|
||||
@@ -249,11 +240,7 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
|
||||
if (this.<%=column.getLabel() %> == null) {
|
||||
if (other.<%=column.getLabel() %> != null)
|
||||
return false;
|
||||
<%if((javaType == JavaTypesManager.BIGDECIMAL) && changeHashAndEqualsForBigDecimal) {%>
|
||||
} else if ((other.<%=column.getLabel() %> == null) || (this.<%=column.getLabel() %>.compareTo(other.<%=column.getLabel() %>)!=0))
|
||||
<%} else {%>
|
||||
} else if (!this.<%=column.getLabel() %>.equals(other.<%=column.getLabel() %>))
|
||||
<%}%>
|
||||
} else if (!this.<%=column.getLabel() %>.equals(other.<%=column.getLabel() %>))
|
||||
return false;
|
||||
<%
|
||||
}
|
||||
@@ -1016,6 +1003,7 @@ public void <%=subTree.getName() %>Process(final java.util.Map<String, Object> g
|
||||
|
||||
this.isRunning = true;
|
||||
String currentComponent = "";
|
||||
java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();
|
||||
try{
|
||||
|
||||
<%
|
||||
@@ -1026,11 +1014,21 @@ public void <%=subTree.getName() %>Process(final java.util.Map<String, Object> g
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
String iterateId = "";
|
||||
<%
|
||||
if(subTree.getRootNode().getComponent().getName().equals("tCollector")){
|
||||
%>
|
||||
String iterateId = "." + globalMap.get("<%=subTree.getRootNode().getDesignSubjobStartNode().getUniqueName()%>_THREAD_ID");
|
||||
<%
|
||||
}else{
|
||||
%>
|
||||
String iterateId = "";
|
||||
<%
|
||||
}
|
||||
%>
|
||||
int iterateLoop = 0;
|
||||
String currentComponent = "";
|
||||
|
||||
java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();
|
||||
|
||||
try {
|
||||
|
||||
String currentMethodName = new java.lang.Exception().getStackTrace()[0].getMethodName();
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Schema file written by PDE -->
|
||||
<schema targetNamespace="org.talend.designer.codegen" xmlns="http://www.w3.org/2001/XMLSchema">
|
||||
<annotation>
|
||||
<appInfo>
|
||||
<meta.schema plugin="org.talend.designer.codegen" id="componentFilter" name="Component filter"/>
|
||||
</appInfo>
|
||||
<documentation>
|
||||
[Enter description of this extension point.]
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<element name="extension">
|
||||
<annotation>
|
||||
<appInfo>
|
||||
<meta.element />
|
||||
</appInfo>
|
||||
</annotation>
|
||||
<complexType>
|
||||
<sequence minOccurs="1" maxOccurs="unbounded">
|
||||
<element ref="Filter"/>
|
||||
</sequence>
|
||||
<attribute name="point" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation>
|
||||
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="id" type="string">
|
||||
<annotation>
|
||||
<documentation>
|
||||
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="name" type="string">
|
||||
<annotation>
|
||||
<documentation>
|
||||
|
||||
</documentation>
|
||||
<appInfo>
|
||||
<meta.attribute translatable="true"/>
|
||||
</appInfo>
|
||||
</annotation>
|
||||
</attribute>
|
||||
</complexType>
|
||||
</element>
|
||||
|
||||
<element name="Filter">
|
||||
<complexType>
|
||||
<attribute name="class" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation>
|
||||
|
||||
</documentation>
|
||||
<appInfo>
|
||||
<meta.attribute kind="java" basedOn=":org.talend.designer.codegen.components.model.IComponentFactoryFilter"/>
|
||||
</appInfo>
|
||||
</annotation>
|
||||
</attribute>
|
||||
</complexType>
|
||||
</element>
|
||||
|
||||
<annotation>
|
||||
<appInfo>
|
||||
<meta.section type="since"/>
|
||||
</appInfo>
|
||||
<documentation>
|
||||
[Enter the first release in which this extension point appears.]
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<annotation>
|
||||
<appInfo>
|
||||
<meta.section type="examples"/>
|
||||
</appInfo>
|
||||
<documentation>
|
||||
[Enter extension point usage example here.]
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<annotation>
|
||||
<appInfo>
|
||||
<meta.section type="apiinfo"/>
|
||||
</appInfo>
|
||||
<documentation>
|
||||
[Enter API information here.]
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<annotation>
|
||||
<appInfo>
|
||||
<meta.section type="implementation"/>
|
||||
</appInfo>
|
||||
<documentation>
|
||||
[Enter information about supplied implementation of this extension point.]
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
|
||||
</schema>
|
||||
@@ -50,7 +50,6 @@ ComponentsFactory.parentNotRecompiled=Warning\: parents of *.inc.javajet are not
|
||||
ComponentsLocalProviderService.componentLoadError=Component load error
|
||||
ComponentsLocalProviderService.talendExchangeError=Talend Exchange Error
|
||||
ComponentsPreferencePage.ButtonLabel0=Ok
|
||||
ComponentsPreferencePage.componentAssist=Enable Component Creation Assistant
|
||||
ComponentsPreferencePage.configuration.LINK_STYLE=Default mapping links display as :
|
||||
ComponentsPreferencePage.rowLimit=Row limit
|
||||
ComponentsPreferencePage.WarningMsg=Need to restart Talend Open Studio to load extral components !
|
||||
|
||||
@@ -45,7 +45,6 @@ import org.talend.core.repository.model.ProxyRepositoryFactory;
|
||||
import org.talend.core.repository.model.RepositoryFactoryProvider;
|
||||
import org.talend.core.repository.utils.ProjectHelper;
|
||||
import org.talend.designer.codegen.i18n.Messages;
|
||||
import org.talend.repository.model.RepositoryConstants;
|
||||
|
||||
/***/
|
||||
public class CodeGenInit implements IApplication {
|
||||
@@ -158,8 +157,7 @@ public class CodeGenInit implements IApplication {
|
||||
Context ctx = CorePlugin.getContext();
|
||||
ctx.putProperty(Context.REPOSITORY_CONTEXT_KEY, repositoryContext);
|
||||
|
||||
repositoryFactory.setRepositoryFactoryFromProvider(RepositoryFactoryProvider
|
||||
.getRepositoriyById(RepositoryConstants.REPOSITORY_LOCAL_ID));
|
||||
repositoryFactory.setRepositoryFactoryFromProvider(RepositoryFactoryProvider.getRepositoriyById("local")); //$NON-NLS-1$
|
||||
repositoryFactory.initialize();
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ package org.talend.designer.codegen;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Vector;
|
||||
@@ -32,6 +31,7 @@ import org.talend.core.language.ECodeLanguage;
|
||||
import org.talend.core.model.components.IComponentFileNaming;
|
||||
import org.talend.core.model.components.IComponentsFactory;
|
||||
import org.talend.core.model.process.EConnectionType;
|
||||
import org.talend.core.model.process.ElementParameterParser;
|
||||
import org.talend.core.model.process.IConnection;
|
||||
import org.talend.core.model.process.IConnectionCategory;
|
||||
import org.talend.core.model.process.IContext;
|
||||
@@ -99,65 +99,12 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
|
||||
private String exportAsOSGI = "false";
|
||||
|
||||
private static final long INIT_TIMEOUT = 15 * 60 * 1000; // 15s
|
||||
private static final long INIT_TIMEOUT = 15000; // 15s
|
||||
|
||||
private static final long INIT_PAUSE = 1000; // 1s
|
||||
|
||||
private static final boolean DEBUG = false;
|
||||
|
||||
private class OnRowsEndCode {
|
||||
|
||||
private int count = 0; // count onRowsEnd components generates how many times
|
||||
|
||||
private List<StringBuffer> bufferList = new ArrayList<StringBuffer>();
|
||||
|
||||
private Map<String, Boolean> markedMap = new HashMap<String, Boolean>();
|
||||
|
||||
public OnRowsEndCode() {
|
||||
count = 0;
|
||||
}
|
||||
|
||||
public int getCount() {
|
||||
return count;
|
||||
}
|
||||
|
||||
public void increase() {
|
||||
count++;
|
||||
}
|
||||
|
||||
public void decrease() {
|
||||
count--;
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
count = 0;
|
||||
bufferList.clear();
|
||||
markedMap.clear();
|
||||
}
|
||||
|
||||
public void add(StringBuffer buf) {
|
||||
if (buf != null) {
|
||||
bufferList.add(buf);
|
||||
}
|
||||
}
|
||||
|
||||
public List<StringBuffer> getBuffers() {
|
||||
return this.bufferList;
|
||||
}
|
||||
|
||||
public Boolean mark(String key) {
|
||||
return this.markedMap.put(key, true);
|
||||
}
|
||||
|
||||
public Boolean getMarked(String key) {
|
||||
return this.markedMap.get(key);
|
||||
}
|
||||
}
|
||||
|
||||
// this one is used to store all the generated code of the subjobs which start with the IN of the virtual component
|
||||
// with OnRowsEnd. It is used to fix TDI-26484
|
||||
private OnRowsEndCode onRowsEndCode = new OnRowsEndCode();
|
||||
|
||||
/**
|
||||
* Constructor : use the process and laguage to initialize internal components.
|
||||
*
|
||||
@@ -266,7 +213,6 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
// generate Assembly Code for individual Components
|
||||
StringBuffer componentsCode = new StringBuffer();
|
||||
|
||||
// used to collect all the generated code of onRowsEnd components
|
||||
long startTimer = System.currentTimeMillis();
|
||||
long endTimer = startTimer;
|
||||
try {
|
||||
@@ -381,8 +327,15 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
componentsCode.append(generateTypedComponentCode(EInternalTemplate.PART_ENDMAIN,
|
||||
subTree.getRootNode()));
|
||||
componentsCode.append(generateComponentsCode(subTree, subTree.getRootNode(), ECodePart.END, null));
|
||||
componentsCode.append(generateTypedComponentCode(EInternalTemplate.SUBPROCESS_FOOTER, subTree));
|
||||
StringBuffer finallyPart = new StringBuffer();
|
||||
finallyPart.append(generateComponentsCode(subTree, subTree.getRootNode(), ECodePart.FINALLY, null));
|
||||
Vector subprocess_footerArgument = new Vector(2);
|
||||
subprocess_footerArgument.add(subTree);
|
||||
subprocess_footerArgument.add(finallyPart.toString());
|
||||
componentsCode.append(generateTypedComponentCode(EInternalTemplate.SUBPROCESS_FOOTER,
|
||||
subprocess_footerArgument));
|
||||
} else {
|
||||
StringBuffer finallyPart = new StringBuffer();
|
||||
componentsCode.append(generateTypedComponentCode(EInternalTemplate.SUBPROCESS_HEADER, subTree));
|
||||
componentsCode.append(generateComponentsCode(subTree, subTree.getMergeNode(), ECodePart.BEGIN, null));
|
||||
|
||||
@@ -395,13 +348,17 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
subTree.getRootNode()));
|
||||
|
||||
componentsCode.append(generateComponentsCode(subTree, startNode, ECodePart.END, null));
|
||||
finallyPart.append(generateComponentsCode(subTree, startNode, ECodePart.FINALLY, null));
|
||||
}
|
||||
|
||||
componentsCode.append(generateComponentsCode(subTree, subTree.getMergeNode(), ECodePart.END, null));
|
||||
|
||||
componentsCode.append(generateTypedComponentCode(EInternalTemplate.SUBPROCESS_FOOTER, subTree));
|
||||
finallyPart.append(generateComponentsCode(subTree, subTree.getMergeNode(), ECodePart.FINALLY, null));
|
||||
Vector subprocess_footerArgument = new Vector(2);
|
||||
subprocess_footerArgument.add(subTree);
|
||||
subprocess_footerArgument.add(finallyPart.toString());
|
||||
componentsCode.append(generateTypedComponentCode(EInternalTemplate.SUBPROCESS_FOOTER,
|
||||
subprocess_footerArgument));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -658,10 +615,9 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
private StringBuffer generateComponentsCode(NodesSubTree subProcess, INode node, ECodePart part, String incomingName,
|
||||
ETypeGen typeGen) throws CodeGeneratorException {
|
||||
StringBuffer codeComponent = new StringBuffer();
|
||||
|
||||
Boolean isMarked = subProcess.isMarkedNode(node, part);
|
||||
boolean isIterate = isSpecifyInputNode(node, incomingName, EConnectionType.ITERATE);
|
||||
|
||||
boolean isOnRowsEnd = isSpecifyInputNode(node, incomingName, EConnectionType.ON_ROWS_END);
|
||||
if ((isMarked != null) && (!isMarked)) {
|
||||
switch (part) {
|
||||
case BEGIN:
|
||||
@@ -686,8 +642,16 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
|
||||
codeComponent.append(generateComponentCode(subProcess, node, ECodePart.END, incomingName, typeGen));
|
||||
codeComponent.append(generatesTreeCode(subProcess, node, ECodePart.END, typeGen));
|
||||
codeComponent.append(generateTypedComponentCode(EInternalTemplate.ITERATE_SUBPROCESS_FOOTER, node,
|
||||
ECodePart.END, incomingName, subProcess));
|
||||
|
||||
StringBuffer finallyPart = new StringBuffer();
|
||||
// if iterate with parallel
|
||||
finallyPart.append(generateComponentsCode(subProcess, node, ECodePart.FINALLY, incomingName, typeGen));
|
||||
Vector iterate_Argument = new Vector(2);
|
||||
iterate_Argument.add(node);
|
||||
iterate_Argument.add(finallyPart.toString());
|
||||
|
||||
codeComponent.append(generateTypedComponentCode(EInternalTemplate.ITERATE_SUBPROCESS_FOOTER,
|
||||
iterate_Argument, ECodePart.END, incomingName, subProcess));
|
||||
} else {
|
||||
if (ETypeGen.CAMEL == typeGen) {
|
||||
if (node.getIncomingConnections() != null && node.getIncomingConnections().size() > 0) {
|
||||
@@ -721,60 +685,20 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
codeComponent.append(".id(\"" + node.getUniqueName() + "\")");
|
||||
}
|
||||
}
|
||||
|
||||
// This code is used to generate the Virtual_IN--->Out part in previous
|
||||
boolean isNextOnRowsEnd = false;
|
||||
IConnection conn = null;
|
||||
if (node.getOutgoingConnections(EConnectionType.ON_ROWS_END).size() == 1) {
|
||||
conn = node.getOutgoingConnections(EConnectionType.ON_ROWS_END).get(0);
|
||||
isNextOnRowsEnd = isSpecifyInputNode(conn.getTarget(), conn.getName(), EConnectionType.ON_ROWS_END);
|
||||
}
|
||||
if (isNextOnRowsEnd && conn != null && (onRowsEndCode.getMarked(conn.getTarget().getUniqueName()) == null)) {
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
onRowsEndCode.add(buffer);
|
||||
onRowsEndCode.mark(conn.getTarget().getUniqueName());
|
||||
onRowsEndCode.increase();
|
||||
|
||||
buffer.append(generatesTreeCode(subProcess, conn.getTarget(), ECodePart.BEGIN, typeGen));
|
||||
buffer.append(generateComponentCode(subProcess, conn.getTarget(), ECodePart.BEGIN, incomingName, typeGen));
|
||||
|
||||
buffer.append(generateComponentCode(subProcess, conn.getTarget(), ECodePart.MAIN, incomingName, typeGen));
|
||||
buffer.append(generatesTreeCode(subProcess, conn.getTarget(), ECodePart.MAIN, typeGen));
|
||||
|
||||
buffer.append(generateComponentCode(subProcess, conn.getTarget(), ECodePart.END, incomingName, typeGen));
|
||||
buffer.append(generatesTreeCode(subProcess, conn.getTarget(), ECodePart.END, typeGen));
|
||||
|
||||
}
|
||||
|
||||
codeComponent.append(generatesTreeCode(subProcess, node, ECodePart.MAIN, typeGen));
|
||||
}
|
||||
break;
|
||||
case END:
|
||||
boolean isOnRowsEnd = isSpecifyInputNode(node, incomingName, EConnectionType.ON_ROWS_END);
|
||||
if (isOnRowsEnd) {
|
||||
// append the onRowsEnd code to the end part of the first virtual_Out
|
||||
onRowsEndCode.decrease();
|
||||
if (onRowsEndCode.getCount() == 0) {
|
||||
|
||||
for (int i = 0; i < onRowsEndCode.getBuffers().size(); i++) {
|
||||
codeComponent.append(onRowsEndCode.getBuffers().get(i));
|
||||
}
|
||||
onRowsEndCode.clear();
|
||||
}
|
||||
codeComponent.append(generatesTreeCode(subProcess, node, ECodePart.BEGIN, typeGen));
|
||||
codeComponent.append(generateComponentCode(subProcess, node, ECodePart.BEGIN, incomingName, typeGen));
|
||||
|
||||
// onRowsEndCode.clear();
|
||||
codeComponent.append(generateComponentCode(subProcess, node, ECodePart.MAIN, incomingName, typeGen));
|
||||
codeComponent.append(generatesTreeCode(subProcess, node, ECodePart.MAIN, typeGen));
|
||||
|
||||
// codeComponent.append(generatesTreeCode(subProcess, node, ECodePart.BEGIN, typeGen));
|
||||
// codeComponent.append(generateComponentCode(subProcess, node, ECodePart.BEGIN, incomingName,
|
||||
// typeGen));
|
||||
//
|
||||
// codeComponent.append(generateComponentCode(subProcess, node, ECodePart.MAIN, incomingName,
|
||||
// typeGen));
|
||||
// codeComponent.append(generatesTreeCode(subProcess, node, ECodePart.MAIN, typeGen));
|
||||
//
|
||||
// codeComponent.append(generateComponentCode(subProcess, node, ECodePart.END, incomingName,
|
||||
// typeGen));
|
||||
// codeComponent.append(generatesTreeCode(subProcess, node, ECodePart.END, typeGen));
|
||||
codeComponent.append(generateComponentCode(subProcess, node, ECodePart.END, incomingName, typeGen));
|
||||
codeComponent.append(generatesTreeCode(subProcess, node, ECodePart.END, typeGen));
|
||||
|
||||
} else {
|
||||
// if (!isIterate) {
|
||||
@@ -787,6 +711,10 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
// }
|
||||
}
|
||||
break;
|
||||
case FINALLY:
|
||||
codeComponent.append(generateComponentCode(subProcess, node, ECodePart.FINALLY, incomingName, typeGen));
|
||||
codeComponent.append(generatesTreeCode(subProcess, node, ECodePart.FINALLY, typeGen));
|
||||
break;
|
||||
default:
|
||||
// do nothing
|
||||
}
|
||||
@@ -859,24 +787,21 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
}
|
||||
|
||||
if (ETypeGen.ETL == typeGen) {
|
||||
/**
|
||||
* fix for bug: TDI-8508 aim: change the order of end parts to be the opposite order of begin parts
|
||||
*/
|
||||
// for (IConnection connection : node.getOutgoingConnections()) {
|
||||
for (int i = 0; i < node.getOutgoingConnections().size(); i++) {
|
||||
for (IConnection connection : node.getOutgoingConnections()) {
|
||||
|
||||
IConnection connection = null;
|
||||
if (part == ECodePart.END) {
|
||||
connection = node.getOutgoingConnections().get(node.getOutgoingConnections().size() - (i + 1));
|
||||
} else {
|
||||
connection = node.getOutgoingConnections().get(i);
|
||||
}
|
||||
|
||||
if ((connection.getLineStyle() == EConnectionType.ITERATE) && (part != ECodePart.MAIN)) {
|
||||
if ((connection.getLineStyle() == EConnectionType.ITERATE) && (part != ECodePart.MAIN)
|
||||
&& (part != ECodePart.FINALLY)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((connection.getLineStyle() == EConnectionType.ON_ROWS_END) && (part != ECodePart.END)) {
|
||||
if ((connection.getLineStyle() == EConnectionType.ITERATE)
|
||||
&& ("true".equals(ElementParameterParser.getValue(connection, "__ENABLE_PARALLEL__"))) //$NON-NLS-1$//$NON-NLS-2$
|
||||
&& part == ECodePart.FINALLY) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((connection.getLineStyle() == EConnectionType.ON_ROWS_END) && (part != ECodePart.END)
|
||||
&& (part != ECodePart.FINALLY)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1109,6 +1034,7 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
// nodeConfigurer.configure(subTreeNode);
|
||||
// }
|
||||
componentsCode.append(generateTypedComponentCode(EInternalTemplate.SUBPROCESS_HEADER, subTree));
|
||||
StringBuffer finallyPart = new StringBuffer();
|
||||
if (subTreeNode != null) {
|
||||
|
||||
if (!subTree.isMergeSubTree()) {
|
||||
@@ -1128,6 +1054,8 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
// generateTypedComponentCode
|
||||
// (EInternalTemplate.SUBPROCESS_FOOTER,
|
||||
// subTree));
|
||||
finallyPart
|
||||
.append(generateComponentsCode(subTree, subTree.getRootNode(), ECodePart.FINALLY, null));
|
||||
} else {
|
||||
// componentsCode.append(
|
||||
// generateTypedComponentCode
|
||||
@@ -1142,6 +1070,8 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
componentsCode.append(generateComponentsCode(subTree, startNode, ECodePart.MAIN, null));
|
||||
|
||||
componentsCode.append(generateComponentsCode(subTree, startNode, ECodePart.END, null));
|
||||
|
||||
finallyPart.append(generateComponentsCode(subTree, startNode, ECodePart.FINALLY, null));
|
||||
}
|
||||
|
||||
componentsCode.append(generateTypedComponentCode(EInternalTemplate.PART_ENDMAIN,
|
||||
@@ -1150,13 +1080,20 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
componentsCode
|
||||
.append(generateComponentsCode(subTree, subTree.getMergeNode(), ECodePart.END, null));
|
||||
|
||||
finallyPart.append(generateComponentsCode(subTree, subTree.getMergeNode(), ECodePart.FINALLY,
|
||||
null));
|
||||
|
||||
// componentsCode.append(
|
||||
// generateTypedComponentCode
|
||||
// (EInternalTemplate.SUBPROCESS_FOOTER,
|
||||
// subTree));
|
||||
}
|
||||
}
|
||||
componentsCode.append(generateTypedComponentCode(EInternalTemplate.SUBPROCESS_FOOTER, subTree));
|
||||
Vector subprocess_footerArgument = new Vector(2);
|
||||
subprocess_footerArgument.add(subTree);
|
||||
subprocess_footerArgument.add(finallyPart.toString());
|
||||
componentsCode.append(generateTypedComponentCode(EInternalTemplate.SUBPROCESS_FOOTER,
|
||||
subprocess_footerArgument));
|
||||
}
|
||||
Vector footerArgument = new Vector(2);
|
||||
footerArgument.add(process);
|
||||
|
||||
@@ -170,9 +170,4 @@ public class CodeGeneratorService implements ICodeGeneratorService {
|
||||
}
|
||||
return job;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInitializingJet() {
|
||||
return !CodeGeneratorEmittersPoolFactory.isInitialized() && CodeGeneratorEmittersPoolFactory.isInitializeStart();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,11 +23,11 @@ import org.eclipse.ui.PlatformUI;
|
||||
import org.eclipse.ui.plugin.AbstractUIPlugin;
|
||||
import org.talend.commons.exception.BusinessException;
|
||||
import org.talend.core.language.ECodeLanguage;
|
||||
import org.talend.core.service.IComponentsLocalProviderService;
|
||||
import org.talend.designer.codegen.components.model.ComponentFileChecker;
|
||||
import org.talend.designer.codegen.components.ui.ComponenttRunJobPreferencePage;
|
||||
import org.talend.designer.codegen.components.ui.IComponentPreferenceConstant;
|
||||
import org.talend.designer.codegen.i18n.Messages;
|
||||
import org.talend.designer.components.IComponentsLocalProviderService;
|
||||
|
||||
/**
|
||||
* DOC Administrator class global comment. Detailled comment <br/>
|
||||
|
||||
@@ -77,9 +77,14 @@ public class JavaRoutineSynchronizer extends AbstractRoutineSynchronizer {
|
||||
*/
|
||||
@Override
|
||||
public void syncAllRoutines() throws SystemException {
|
||||
syncRoutineItems(getRoutines());
|
||||
syncRoutineItems(getRoutines(),false);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void syncAllRoutinesForLogOn() throws SystemException {
|
||||
syncRoutineItems(getRoutines(),true);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
@@ -87,13 +92,18 @@ public class JavaRoutineSynchronizer extends AbstractRoutineSynchronizer {
|
||||
*/
|
||||
@Override
|
||||
public void syncAllPigudf() throws SystemException {
|
||||
syncRoutineItems(getAllPigudf());
|
||||
syncRoutineItems(getAllPigudf(),false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void syncAllPigudfForLogOn() throws SystemException {
|
||||
syncRoutineItems(getAllPigudf(), true);
|
||||
}
|
||||
|
||||
private void syncRoutineItems(List<IRepositoryViewObject> routineObjects) throws SystemException {
|
||||
private void syncRoutineItems(List<IRepositoryViewObject> routineObjects,boolean forceUpdate) throws SystemException {
|
||||
for (IRepositoryViewObject routine : routineObjects) {
|
||||
RoutineItem routineItem = (RoutineItem) routine.getProperty().getItem();
|
||||
syncRoutine(routineItem, true);
|
||||
syncRoutine(routineItem, true,forceUpdate);
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2010 Talend Inc. - www.talend.com
|
||||
//
|
||||
// This source code is available under agreement available at
|
||||
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
|
||||
//
|
||||
// You should have received a copy of the agreement
|
||||
// along with this program; if not, write to Talend SA
|
||||
// 9 rue Pages 92150 Suresnes, France
|
||||
//
|
||||
// ============================================================================
|
||||
package org.talend.designer.codegen.additionaljet;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IConfigurationElement;
|
||||
import org.eclipse.core.runtime.IExtension;
|
||||
import org.eclipse.core.runtime.IExtensionPoint;
|
||||
import org.eclipse.core.runtime.IExtensionRegistry;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
import org.talend.designer.codegen.components.model.IComponentFactoryFilter;
|
||||
import org.talend.designer.codegen.i18n.Messages;
|
||||
|
||||
/**
|
||||
* DOC zwzhao class global comment. Detailled comment
|
||||
*/
|
||||
public class ComponentsFactoryProviderManager {
|
||||
|
||||
private static Logger log = Logger.getLogger(ComponentsFactoryProviderManager.class);
|
||||
|
||||
private static final ComponentsFactoryProviderManager INSTANCE = new ComponentsFactoryProviderManager();
|
||||
|
||||
private Collection<IComponentFactoryFilter> filters;
|
||||
|
||||
private ComponentsFactoryProviderManager() {
|
||||
}
|
||||
|
||||
public static ComponentsFactoryProviderManager getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
public Collection<IComponentFactoryFilter> getProviders() {
|
||||
if (filters == null) {
|
||||
loadFromExtension();
|
||||
}
|
||||
return filters;
|
||||
}
|
||||
|
||||
private void loadFromExtension() {
|
||||
filters = new ArrayList<IComponentFactoryFilter>();
|
||||
|
||||
IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
|
||||
IExtensionPoint extensionPoint = extensionRegistry.getExtensionPoint("org.talend.designer.codegen.componentFilter"); //$NON-NLS-1$
|
||||
IExtension[] extensions = extensionPoint.getExtensions();
|
||||
for (IExtension extension : extensions) {
|
||||
IConfigurationElement[] configurationElements = extension.getConfigurationElements();
|
||||
for (IConfigurationElement configurationElement : configurationElements) {
|
||||
try {
|
||||
IComponentFactoryFilter filter = (IComponentFactoryFilter) configurationElement
|
||||
.createExecutableExtension("class"); //$NON-NLS-1$
|
||||
filters.add(filter);
|
||||
} catch (CoreException e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -64,7 +64,6 @@ import org.talend.core.model.component_cache.ComponentsCache;
|
||||
import org.talend.core.model.component_cache.util.ComponentCacheResourceFactoryImpl;
|
||||
import org.talend.core.model.components.AbstractComponentsProvider;
|
||||
import org.talend.core.model.components.ComponentCategory;
|
||||
import org.talend.core.model.components.ComponentManager;
|
||||
import org.talend.core.model.components.ComponentUtilities;
|
||||
import org.talend.core.model.components.IComponent;
|
||||
import org.talend.core.model.components.IComponentsFactory;
|
||||
@@ -74,13 +73,13 @@ import org.talend.core.ui.branding.IBrandingService;
|
||||
import org.talend.core.ui.images.CoreImageProvider;
|
||||
import org.talend.core.utils.TalendCacheUtils;
|
||||
import org.talend.designer.codegen.CodeGeneratorActivator;
|
||||
import org.talend.designer.codegen.additionaljet.ComponentsFactoryProviderManager;
|
||||
import org.talend.designer.codegen.i18n.Messages;
|
||||
import org.talend.designer.core.ITisLocalProviderService;
|
||||
import org.talend.designer.core.ITisLocalProviderService.ResClassLoader;
|
||||
import org.talend.designer.core.model.components.ComponentBundleToPath;
|
||||
import org.talend.designer.core.model.components.ComponentFilesNaming;
|
||||
import org.talend.designer.core.model.components.EmfComponent;
|
||||
import org.talend.designer.core.model.components.manager.ComponentManager;
|
||||
import org.talend.designer.core.model.process.AbstractProcessProvider;
|
||||
import org.talend.repository.model.ComponentsFactoryProvider;
|
||||
|
||||
@@ -348,7 +347,7 @@ public class ComponentsFactory implements IComponentsFactory {
|
||||
|
||||
IBrandingService service = (IBrandingService) GlobalServiceRegister.getDefault().getService(IBrandingService.class);
|
||||
|
||||
// String[] availableComponents = service.getBrandingConfiguration().getAvailableComponents();
|
||||
String[] availableComponents = service.getBrandingConfiguration().getAvailableComponents();
|
||||
|
||||
FileFilter skeletonFilter = new FileFilter() {
|
||||
|
||||
@@ -471,7 +470,7 @@ public class ComponentsFactory implements IComponentsFactory {
|
||||
// if the component is already existing in cache and if it's the same, it won't reload all (cf
|
||||
// flag: foundComponentIsSame)
|
||||
EmfComponent currentComp = new EmfComponent(pathName, bundleName, xmlMainFile.getParentFile().getName(),
|
||||
pathSource, cache, foundComponentIsSame, provider);
|
||||
pathSource, cache, foundComponentIsSame);
|
||||
if (!foundComponentIsSame) {
|
||||
// force to call some functions to update the cache. (to improve)
|
||||
currentComp.isVisibleInComponentDefinition();
|
||||
@@ -494,21 +493,10 @@ public class ComponentsFactory implements IComponentsFactory {
|
||||
ComponentManager.setModified(true); // this will force to save the cache later.
|
||||
}
|
||||
|
||||
boolean hiddenComponent = false;
|
||||
|
||||
Collection<IComponentFactoryFilter> filters = ComponentsFactoryProviderManager.getInstance()
|
||||
.getProviders();
|
||||
for (IComponentFactoryFilter filter : filters) {
|
||||
if (!filter.isAvailable(currentComp.getName())) {
|
||||
hiddenComponent = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// if the component is not needed in the current branding,
|
||||
// and that this one IS NOT a specific component for code generation
|
||||
// just don't load it
|
||||
if (hiddenComponent
|
||||
if (availableComponents != null && !ArrayUtils.contains(availableComponents, currentComp.getName())
|
||||
&& !(currentComp.getOriginalFamilyName().contains("Technical") || currentComp.isTechnical())) {
|
||||
continue;
|
||||
}
|
||||
@@ -518,7 +506,7 @@ public class ComponentsFactory implements IComponentsFactory {
|
||||
// if the component is not needed in the current branding,
|
||||
// and that this one IS a specific component for code generation,
|
||||
// hide it
|
||||
if (hiddenComponent
|
||||
if (availableComponents != null && !ArrayUtils.contains(availableComponents, currentComp.getName())
|
||||
&& (currentComp.getOriginalFamilyName().contains("Technical") || currentComp.isTechnical())) {
|
||||
currentComp.setVisible(false);
|
||||
currentComp.setTechnical(true);
|
||||
@@ -532,10 +520,8 @@ public class ComponentsFactory implements IComponentsFactory {
|
||||
if (componentList.contains(currentComp)) {
|
||||
log.warn("Component " + currentComp.getName() + " already exists. Cannot load user version."); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
} else {
|
||||
// currentComp.setResourceBundle(getComponentResourceBundle(currentComp, source.toString(),
|
||||
// null,
|
||||
// provider));
|
||||
currentComp.setProvider(provider);
|
||||
currentComp.setResourceBundle(getComponentResourceBundle(currentComp, source.toString(), null,
|
||||
provider));
|
||||
componentList.add(currentComp);
|
||||
if (isCustom) {
|
||||
customComponentList.add(currentComp);
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2010 Talend Inc. - www.talend.com
|
||||
//
|
||||
// This source code is available under agreement available at
|
||||
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
|
||||
//
|
||||
// You should have received a copy of the agreement
|
||||
// along with this program; if not, write to Talend SA
|
||||
// 9 rue Pages 92150 Suresnes, France
|
||||
//
|
||||
// ============================================================================
|
||||
package org.talend.designer.codegen.components.model;
|
||||
|
||||
/**
|
||||
* DOC zwzhao class global comment. Detailled comment
|
||||
*/
|
||||
public interface IComponentFactoryFilter {
|
||||
|
||||
public boolean isAvailable(String componentName);
|
||||
|
||||
}
|
||||
@@ -43,13 +43,10 @@ import org.talend.commons.ui.utils.workbench.preferences.ComboFieldEditor;
|
||||
import org.talend.core.CorePlugin;
|
||||
import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.PluginChecker;
|
||||
import org.talend.core.model.components.ComponentPaletteUtilities;
|
||||
import org.talend.core.model.components.ComponentUtilities;
|
||||
import org.talend.designer.codegen.CodeGeneratorActivator;
|
||||
import org.talend.designer.codegen.ICodeGeneratorService;
|
||||
import org.talend.designer.codegen.i18n.Messages;
|
||||
import org.talend.designer.core.DesignerPlugin;
|
||||
import org.talend.designer.core.assist.TalendEditorComponentCreationUtil;
|
||||
import org.talend.designer.core.ui.preferences.TalendDesignerPrefConstants;
|
||||
|
||||
/**
|
||||
* This class represents a preference page that is contributed to the Preferences dialog. By subclassing
|
||||
@@ -65,8 +62,6 @@ public class ComponentsPreferencePage extends FieldEditorPreferencePage implemen
|
||||
|
||||
private CheckBoxFieldEditor doNotShowJobletAfterDoubleClickCheckBoxField;
|
||||
|
||||
private CheckBoxFieldEditor enableComponentAssistCheckBoxField;
|
||||
|
||||
private DirectoryFieldEditor filePathTemp;
|
||||
|
||||
private final String dataViewer = "Data Viewer"; //$NON-NLS-1$
|
||||
@@ -77,8 +72,6 @@ public class ComponentsPreferencePage extends FieldEditorPreferencePage implemen
|
||||
|
||||
private final String joblet = "Joblet"; //$NON-NLS-1$
|
||||
|
||||
private final String assist = "Component Assist"; //$NON-NLS-1$
|
||||
|
||||
private static String oldPath = null;
|
||||
|
||||
/**
|
||||
@@ -197,16 +190,6 @@ public class ComponentsPreferencePage extends FieldEditorPreferencePage implemen
|
||||
return group;
|
||||
}
|
||||
|
||||
protected Composite createForComponentAssist(Composite parent) {
|
||||
Group group = createGroup(parent);
|
||||
group.setText(assist);
|
||||
Composite composite = createComposite(group);
|
||||
addFontAndColorFieldsForAssist(composite);
|
||||
GridLayout layout = createLayout();
|
||||
composite.setLayout(layout);
|
||||
return group;
|
||||
}
|
||||
|
||||
protected Group createGroup(Composite parent) {
|
||||
Group group = new Group(parent, SWT.NONE);
|
||||
GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
|
||||
@@ -239,7 +222,6 @@ public class ComponentsPreferencePage extends FieldEditorPreferencePage implemen
|
||||
protected void addFontAndColorFieldsForDataViewer(Composite composite) {
|
||||
IntegerFieldEditor rowLimit = new IntegerFieldEditor(IComponentPreferenceConstant.LIMIT,
|
||||
Messages.getString("ComponentsPreferencePage.rowLimit"), composite);//$NON-NLS-1$
|
||||
rowLimit.setValidRange(1, 1000);
|
||||
addField(rowLimit);
|
||||
Text textControl = rowLimit.getTextControl(composite);
|
||||
GridData layoutData = new GridData();
|
||||
@@ -263,12 +245,6 @@ public class ComponentsPreferencePage extends FieldEditorPreferencePage implemen
|
||||
addField(doNotShowJobletAfterDoubleClickCheckBoxField);
|
||||
}
|
||||
|
||||
protected void addFontAndColorFieldsForAssist(Composite composite) {
|
||||
enableComponentAssistCheckBoxField = new CheckBoxFieldEditor(TalendDesignerPrefConstants.COMPONENT_ASSIST,
|
||||
Messages.getString("ComponentsPreferencePage.componentAssist"), composite); //$NON-NLS-1$
|
||||
addField(enableComponentAssistCheckBoxField);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createFieldEditors() {
|
||||
final Composite parent = getFieldEditorParent();
|
||||
@@ -285,7 +261,7 @@ public class ComponentsPreferencePage extends FieldEditorPreferencePage implemen
|
||||
public void modifyText(ModifyEvent e) {
|
||||
String newPath = filePathTemp.getTextControl(parent).getText();
|
||||
File file = new File(newPath);
|
||||
if (!file.exists() && !"".equals(newPath)) { //$NON-NLS-1$
|
||||
if (!file.exists() && !"".equals(newPath)) {
|
||||
// getPreferenceStore().setValue(IComponentPreferenceConstant.USER_COMPONENTS_FOLDER, "");
|
||||
filePathTemp.showErrorMessage();
|
||||
setValid(false);
|
||||
@@ -304,7 +280,6 @@ public class ComponentsPreferencePage extends FieldEditorPreferencePage implemen
|
||||
if (PluginChecker.isJobLetPluginLoaded()) {
|
||||
createForJoblet(parent);
|
||||
}
|
||||
createForComponentAssist(parent);
|
||||
parent.pack();
|
||||
}
|
||||
|
||||
@@ -319,35 +294,6 @@ public class ComponentsPreferencePage extends FieldEditorPreferencePage implemen
|
||||
|
||||
@Override
|
||||
public void init(IWorkbench workbench) {
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.preference.FieldEditorPreferencePage#initialize()
|
||||
*/
|
||||
@Override
|
||||
protected void initialize() {
|
||||
super.initialize();
|
||||
// Because should save the value of TalendDesignerPrefConstants.COMPONENT_ASSIST in
|
||||
// DesignerPlugin.getDefault().getPreferenceStore()
|
||||
enableComponentAssistCheckBoxField.setPreferenceStore(DesignerPlugin.getDefault().getPreferenceStore());
|
||||
enableComponentAssistCheckBoxField.load();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.preference.FieldEditorPreferencePage#performDefaults()
|
||||
*/
|
||||
@Override
|
||||
protected void performDefaults() {
|
||||
super.performDefaults();
|
||||
// Because should save the value of TalendDesignerPrefConstants.COMPONENT_ASSIST in
|
||||
// DesignerPlugin.getDefault().getPreferenceStore(), also PreferenceInitializer
|
||||
enableComponentAssistCheckBoxField.setPreferenceStore(DesignerPlugin.getDefault().getPreferenceStore());
|
||||
enableComponentAssistCheckBoxField.loadDefault();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -355,22 +301,19 @@ public class ComponentsPreferencePage extends FieldEditorPreferencePage implemen
|
||||
boolean flag = super.performOk();
|
||||
String newPath = CodeGeneratorActivator.getDefault().getPreferenceStore()
|
||||
.getString(IComponentPreferenceConstant.USER_COMPONENTS_FOLDER);
|
||||
if ("".equals(oldPath)) { //$NON-NLS-1$
|
||||
if ("".equals(oldPath)) {
|
||||
oldPath = null;
|
||||
}
|
||||
if ("".equals(newPath)) { //$NON-NLS-1$
|
||||
if ("".equals(newPath)) {
|
||||
newPath = null;
|
||||
}
|
||||
DesignerPlugin.getDefault().getPreferenceStore()
|
||||
.setValue(TalendDesignerPrefConstants.COMPONENT_ASSIST, enableComponentAssistCheckBoxField.getBooleanValue());
|
||||
TalendEditorComponentCreationUtil.updateAssistListener();
|
||||
if (this.oldPath != newPath) {
|
||||
|
||||
final IRunnableWithProgress runnable = new IRunnableWithProgress() {
|
||||
|
||||
@Override
|
||||
public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
|
||||
monitor.beginTask("Loading user component ......", 100); //$NON-NLS-1$
|
||||
monitor.beginTask("Loading user component ......", 100);
|
||||
Display display = Display.getCurrent();
|
||||
if (display == null) {
|
||||
display = Display.getDefault();
|
||||
@@ -393,7 +336,7 @@ public class ComponentsPreferencePage extends FieldEditorPreferencePage implemen
|
||||
|
||||
@Override
|
||||
public void done(org.eclipse.core.runtime.jobs.IJobChangeEvent event) {
|
||||
ComponentPaletteUtilities.updatePalette();
|
||||
ComponentUtilities.updatePalette();
|
||||
monitor.worked(100);
|
||||
monitor.done();
|
||||
};
|
||||
|
||||
@@ -52,7 +52,6 @@ public enum EInternalTemplate {
|
||||
MR_COMPONENT_MRCONFIG_HEADER("mr_component_mrconfig_header", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
|
||||
MR_COMPONENT_MRCONFIG_FOOTER("mr_component_mrconfig_footer", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
|
||||
MR_SUBPROCESS_HEADER("mr_subprocess_header", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
|
||||
MR_SUBPROCESS_RUN("mr_subprocess_run", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
|
||||
MR_SUBPROCESS_FOOTER("mr_subprocess_footer", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
HEADER_ADDITIONAL("header_additional", "0.0.1"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
@@ -1,159 +0,0 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2013 Talend Inc. - www.talend.com
|
||||
//
|
||||
// This source code is available under agreement available at
|
||||
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
|
||||
//
|
||||
// You should have received a copy of the agreement
|
||||
// along with this program; if not, write to Talend SA
|
||||
// 9 rue Pages 92150 Suresnes, France
|
||||
//
|
||||
// ============================================================================
|
||||
package org.talend.designer.codegen.config;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.talend.core.model.process.IConnection;
|
||||
import org.talend.core.model.process.IConnectionCategory;
|
||||
import org.talend.core.model.process.INode;
|
||||
|
||||
/**
|
||||
* Use for wrap a {@link INode} to provide faster and convenient methods to get
|
||||
* connections, such as {@link #inputConn}, {@link #connResponse},
|
||||
* {@link #connFault}, {@link #dataOutputs}.
|
||||
*
|
||||
* @author GaoZone
|
||||
* @update 2013-9-12 [TESB-11028]
|
||||
*/
|
||||
public class NodeConnectionsHelper {
|
||||
|
||||
/** The node. */
|
||||
private final INode node;
|
||||
|
||||
/** The input conn. */
|
||||
private IConnection inputConn;
|
||||
|
||||
/** The conn response. */
|
||||
private IConnection connResponse;
|
||||
|
||||
/** The conn fault. */
|
||||
private IConnection connFault;
|
||||
|
||||
/** The data outputs. */
|
||||
private List<IConnection> dataOutputs;
|
||||
|
||||
/**
|
||||
* Gets the input conn.
|
||||
*
|
||||
* @return the input conn
|
||||
*/
|
||||
public IConnection getInputConn() {
|
||||
return inputConn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the output conn response.
|
||||
*
|
||||
* @return the output conn response
|
||||
*/
|
||||
public IConnection getOutputConnResponse() {
|
||||
return connResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the output conn fault.
|
||||
*
|
||||
* @return the output conn fault
|
||||
*/
|
||||
public IConnection getOutputConnFault() {
|
||||
return connFault;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the data outputs.
|
||||
*
|
||||
* @return the data outputs
|
||||
*/
|
||||
public List<IConnection> getDataOutputs() {
|
||||
return dataOutputs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new node connections helper.
|
||||
*
|
||||
* @param node
|
||||
* the node
|
||||
*/
|
||||
public NodeConnectionsHelper(INode node) {
|
||||
this(node, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new node connections helper.
|
||||
*
|
||||
* @param node
|
||||
* the node
|
||||
* @param stopInitialWhenNoInput
|
||||
* the stop initial when no input
|
||||
*/
|
||||
public NodeConnectionsHelper(INode node, boolean stopInitialWhenNoInput) {
|
||||
this.node = node;
|
||||
initConnections(stopInitialWhenNoInput);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inits the connections.
|
||||
*
|
||||
* @param stopInitialWhenNoInput
|
||||
* the stop initial when no input
|
||||
*/
|
||||
private void initConnections(boolean stopInitialWhenNoInput) {
|
||||
initInputConnection();
|
||||
if (!(stopInitialWhenNoInput && inputConn == null)) {
|
||||
initOutputConnections();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Inits the {@link #inputConn} connection.
|
||||
*/
|
||||
private void initInputConnection() {
|
||||
List<? extends IConnection> incomingConnections = node.getIncomingConnections();
|
||||
if (incomingConnections != null) {
|
||||
for (IConnection conn : incomingConnections) {
|
||||
if (conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
|
||||
inputConn = conn;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Inits the {@link #dataOutputs}, {@link #connResponse}, {@link #connFault}
|
||||
* connections.
|
||||
*/
|
||||
private void initOutputConnections() {
|
||||
List<? extends IConnection> conns = node.getOutgoingSortedConnections();
|
||||
dataOutputs = new ArrayList<IConnection>();
|
||||
if (conns != null) {
|
||||
for (IConnection conn : conns) {
|
||||
if (conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
|
||||
dataOutputs.add(conn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<? extends IConnection> connsResponse = node.getOutgoingConnections("RESPONSE");
|
||||
List<? extends IConnection> connsFault = node.getOutgoingConnections("FAULT");
|
||||
if (connsResponse.size() == 1) {
|
||||
connResponse = connsResponse.get(0);
|
||||
}
|
||||
if (connsFault.size() == 1) {
|
||||
connFault = connsFault.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,232 +0,0 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2013 Talend Inc. - www.talend.com
|
||||
//
|
||||
// This source code is available under agreement available at
|
||||
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
|
||||
//
|
||||
// You should have received a copy of the agreement
|
||||
// along with this program; if not, write to Talend SA
|
||||
// 9 rue Pages 92150 Suresnes, France
|
||||
//
|
||||
// ============================================================================
|
||||
package org.talend.designer.codegen.config;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.talend.core.model.process.ElementParameterParser;
|
||||
import org.talend.core.model.process.IElementParameter;
|
||||
import org.talend.core.model.process.INode;
|
||||
|
||||
/**
|
||||
* Use for wrap a {@link INode} to provide faster and convenient methods to get
|
||||
* parameters.
|
||||
*
|
||||
* @author GaoZone
|
||||
* @update 2013-9-12 [TESB-11028]
|
||||
*/
|
||||
public class NodeParamsHelper {
|
||||
|
||||
/** The node use to wrap. */
|
||||
private final INode node;
|
||||
|
||||
/** The parameter map use to cache params by name. */
|
||||
private final HashMap<String, IElementParameter> parameterMap;
|
||||
|
||||
/**
|
||||
* Use for method return property(K-V) entries in list/map.
|
||||
*/
|
||||
private class PropEntry implements Map.Entry<String, String> {
|
||||
|
||||
/** The key. */
|
||||
private final String key;
|
||||
|
||||
/** The value. */
|
||||
private final String value;
|
||||
|
||||
/**
|
||||
* Instantiates a new prop entry.
|
||||
*
|
||||
* @param key
|
||||
* the key
|
||||
* @param value
|
||||
* the value
|
||||
*/
|
||||
public PropEntry(String key, String value) {
|
||||
this.key = key;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String setValue(String value) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new node params helper.
|
||||
*
|
||||
* @param node
|
||||
* the node
|
||||
*/
|
||||
public NodeParamsHelper(INode node) {
|
||||
this.node = node;
|
||||
|
||||
// cache ParameterMap
|
||||
parameterMap = new HashMap<String, IElementParameter>();
|
||||
for (IElementParameter parameter : node.getElementParametersWithChildrens()) {
|
||||
parameterMap.put(parameter.getVariableName(), parameter);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the parameter from cached name map.
|
||||
*
|
||||
* @param key
|
||||
* the key
|
||||
* @return the parameter
|
||||
*/
|
||||
private IElementParameter getParameter(String key) {
|
||||
return parameterMap.get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the boolean parameter by {@code key}. If no {@code key} provided
|
||||
*
|
||||
* @param key
|
||||
* the key
|
||||
* @return the boolean parameter
|
||||
*/
|
||||
public boolean getBoolParam(String key) {
|
||||
return "true".equals(getStringParam(key));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the string parameter by {@code key}.
|
||||
*
|
||||
* @param key
|
||||
* the key
|
||||
* @return the parameter value in String
|
||||
*/
|
||||
public String getStringParam(String key) {
|
||||
// return ElementParameterParser.getValue(node, key);
|
||||
try {
|
||||
IElementParameter param = getParameter(key);
|
||||
return getDisplayValue(param);
|
||||
} catch (Throwable e) {
|
||||
// ignore and return "";
|
||||
e.printStackTrace();
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets string parameter by {@code key}. Especially, if the parameter's
|
||||
* controller is not visible, then also return {@code ""}.
|
||||
*
|
||||
* @param key
|
||||
* the key
|
||||
* @return the parameter value
|
||||
*/
|
||||
public String getVisibleStringParam(String key) {
|
||||
String value = getStringParam(key);
|
||||
if (!("").equals(value)) {
|
||||
IElementParameter param = getParameter(key);
|
||||
if (param.isShow(node.getElementParametersWithChildrens())) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the object param. </br>//TODO Not used name map yet, and be improve
|
||||
* by expose methods from {@link ElementParameterParser}
|
||||
*
|
||||
* @param <T>
|
||||
* the generic type
|
||||
* @param key
|
||||
* the key
|
||||
* @return the object param
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T> T getObjectParam(String key) {
|
||||
return (T) ElementParameterParser.getObjectValue(node, key);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets boolean parameter by {@code key}. Especially, if the parameter's
|
||||
* controller is not visible, then also return {@code false}.
|
||||
*
|
||||
* @param key
|
||||
* the key
|
||||
* @return the parameter value
|
||||
*/
|
||||
public boolean getVisibleBoolParam(final String key) {
|
||||
if (key == null) {
|
||||
return false;
|
||||
}
|
||||
if (getBoolParam(key)) {
|
||||
// value is true, then check visible
|
||||
// no need null check, has true value must not null.
|
||||
IElementParameter param = getParameter(key);
|
||||
return param.isShow(node.getElementParametersWithChildrens());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the properties pram.
|
||||
*
|
||||
* @param key
|
||||
* the key
|
||||
* @return the properties pram
|
||||
*/
|
||||
public List<Entry<String, String>> getPropertiesPram(String key) {
|
||||
try {
|
||||
List<Map<String, String>> paramValue = getObjectParam(key);
|
||||
List<Entry<String, String>> properties = new ArrayList<Entry<String, String>>(paramValue.size());
|
||||
for (Map<String, String> map : paramValue) {
|
||||
properties.add(new PropEntry(map.get("PROP_NAME"), map.get("PROP_VALUE")));
|
||||
}
|
||||
return properties;
|
||||
} catch (Throwable e) {
|
||||
// ignore and return empty list.
|
||||
e.printStackTrace();
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the display value.
|
||||
*
|
||||
* @param param
|
||||
* the param
|
||||
* @return the display value
|
||||
* {@code ElementParameterParser.getDisplayValue(final IElementParameter param)}
|
||||
*/
|
||||
private static String getDisplayValue(final IElementParameter param) {
|
||||
if (param == null) {
|
||||
return "";
|
||||
}
|
||||
return ElementParameterParser.getStringElementParameterValue(param);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,6 +19,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.talend.core.model.process.AbstractNode;
|
||||
import org.talend.core.model.process.EConnectionType;
|
||||
import org.talend.core.model.process.ElementParameterParser;
|
||||
import org.talend.core.model.process.IConnection;
|
||||
@@ -51,6 +52,8 @@ public class NodesSubTree {
|
||||
|
||||
HashMap<INode, Integer> visitedNodesEndCode;
|
||||
|
||||
HashMap<INode, Integer> visitedNodesFinallyCode;
|
||||
|
||||
private static final boolean DEBUG = false;
|
||||
|
||||
boolean isMergeSubTree = false;
|
||||
@@ -63,6 +66,10 @@ public class NodesSubTree {
|
||||
|
||||
INode mergeNode;
|
||||
|
||||
boolean isRefSubTree = false;// for mr only
|
||||
|
||||
List<INode> refNodes; // for mr only
|
||||
|
||||
/* display size of method code in comment */
|
||||
boolean methodSizeNeeded = false;
|
||||
|
||||
@@ -88,6 +95,7 @@ public class NodesSubTree {
|
||||
this.visitedNodesMainCode = new HashMap<INode, Integer>();
|
||||
this.visitedNodesBeginCode = new HashMap<INode, Integer>();
|
||||
this.visitedNodesEndCode = new HashMap<INode, Integer>();
|
||||
this.visitedNodesFinallyCode = new HashMap<INode, Integer>();
|
||||
this.isMergeSubTree = node.isThereLinkWithMerge();
|
||||
allMainSubTreeConnections = new ArrayList<IConnection>();
|
||||
|
||||
@@ -105,17 +113,45 @@ public class NodesSubTree {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public NodesSubTree(INode node, List<? extends INode> nodes, ETypeGen typeGen) {
|
||||
this.rootNode = node;
|
||||
this.name = node.getUniqueName();
|
||||
this.nodes = new ArrayList<INode>();
|
||||
this.visitedNodesMainCode = new HashMap<INode, Integer>();
|
||||
allMainSubTreeConnections = new ArrayList<IConnection>();
|
||||
|
||||
buildCamelSubTree(node, false);
|
||||
public NodesSubTree(INode node, List<? extends INode> nodes, ETypeGen typeGen) {
|
||||
if (typeGen == ETypeGen.CAMEL) {
|
||||
this.rootNode = node;
|
||||
this.name = node.getUniqueName();
|
||||
this.nodes = new ArrayList<INode>();
|
||||
this.visitedNodesMainCode = new HashMap<INode, Integer>();
|
||||
allMainSubTreeConnections = new ArrayList<IConnection>();
|
||||
|
||||
buildCamelSubTree(node, false);
|
||||
} else if (typeGen == ETypeGen.MR) {
|
||||
this.rootNode = node;
|
||||
this.name = node.getUniqueName();
|
||||
this.nodes = new ArrayList<INode>();
|
||||
afterSubProcesses = new ArrayList<String>();
|
||||
beforeSubProcesses = new ArrayList<String>();
|
||||
|
||||
allMainSubTreeConnections = new ArrayList<IConnection>();
|
||||
|
||||
buildMRSubTree(node);
|
||||
|
||||
if (refNodes != null) {
|
||||
for (INode refNode : refNodes) {
|
||||
this.nodes.add(refNode);
|
||||
for (IConnection connection : refNode.getOutgoingSortedConnections()) {
|
||||
if (connection.getTarget().isActivate()) {
|
||||
|
||||
if (connection.getLineStyle().equals(EConnectionType.RUN_AFTER)) {
|
||||
afterSubProcesses.add(connection.getTarget().getUniqueName());
|
||||
}
|
||||
if (connection.getLineStyle().equals(EConnectionType.ON_SUBJOB_OK)) {
|
||||
beforeSubProcesses.add(connection.getTarget().getUniqueName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* unite all the relative merge nodes to this subTree
|
||||
@@ -159,6 +195,32 @@ public class NodesSubTree {
|
||||
nodes.add(node);
|
||||
}
|
||||
|
||||
private void buildMRSubTree(INode node) {
|
||||
if (((AbstractNode) node).isThereLinkWithRef()) {
|
||||
this.isRefSubTree = true;
|
||||
this.refNodes = ((AbstractNode) node).getRefNodes();
|
||||
}
|
||||
for (IConnection connection : node.getOutgoingSortedConnections()) {
|
||||
if (connection.getTarget().isActivate()) {
|
||||
|
||||
if (connection.getLineStyle().hasConnectionCategory(IConnectionCategory.MAIN)) {
|
||||
if (!connection.getLineStyle().hasConnectionCategory(IConnectionCategory.USE_ITERATE)) {
|
||||
allMainSubTreeConnections.add(connection);
|
||||
}
|
||||
buildMRSubTree(connection.getTarget());
|
||||
}
|
||||
if (connection.getLineStyle().equals(EConnectionType.RUN_AFTER)) {
|
||||
afterSubProcesses.add(connection.getTarget().getUniqueName());
|
||||
}
|
||||
if (connection.getLineStyle().equals(EConnectionType.ON_SUBJOB_OK)) {
|
||||
beforeSubProcesses.add(connection.getTarget().getUniqueName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nodes.add(node);
|
||||
}
|
||||
|
||||
private void buildSubTree(INode node, boolean breakWhenMerge) {
|
||||
if (DEBUG) {
|
||||
System.out.print(node.getUniqueName());
|
||||
@@ -204,6 +266,7 @@ public class NodesSubTree {
|
||||
visitedNodesMainCode.put(node, 0);
|
||||
visitedNodesBeginCode.put(node, 0);
|
||||
visitedNodesEndCode.put(node, 0);
|
||||
visitedNodesFinallyCode.put(node, 0);
|
||||
nodes.add(node);
|
||||
}
|
||||
|
||||
@@ -237,6 +300,13 @@ public class NodesSubTree {
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
case FINALLY:
|
||||
Integer countFinally = visitedNodesFinallyCode.get(node);
|
||||
if (countFinally == null) {
|
||||
return null;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
default:
|
||||
return result;
|
||||
}
|
||||
@@ -259,6 +329,8 @@ public class NodesSubTree {
|
||||
case END:
|
||||
visitedNodesEndCode.put(node, visitedNodesEndCode.get(node) + 1);
|
||||
break;
|
||||
case FINALLY:
|
||||
visitedNodesFinallyCode.put(node, visitedNodesFinallyCode.get(node) + 1);
|
||||
default:
|
||||
// do nothing
|
||||
}
|
||||
@@ -368,6 +440,7 @@ public class NodesSubTree {
|
||||
|
||||
Collections.sort(mergeBranchStarts, new Comparator<INode>() {
|
||||
|
||||
@Override
|
||||
public int compare(INode node1, INode node2) {
|
||||
if (node1.getLinkedMergeInfo().get(mergeNode) > node2.getLinkedMergeInfo().get(mergeNode)) {
|
||||
return 1;
|
||||
@@ -415,4 +488,40 @@ public class NodesSubTree {
|
||||
public void setSubTreeContainsParallelIterate(boolean subTreeContainsParallelIterate) {
|
||||
this.subTreeContainsParallelIterate = subTreeContainsParallelIterate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for isRefSubTree.
|
||||
*
|
||||
* @return the isRefSubTree
|
||||
*/
|
||||
public boolean isRefSubTree() {
|
||||
return this.isRefSubTree;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the isRefSubTree.
|
||||
*
|
||||
* @param isRefSubTree the isRefSubTree to set
|
||||
*/
|
||||
public void setRefSubTree(boolean isRefSubTree) {
|
||||
this.isRefSubTree = isRefSubTree;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for refNodes.
|
||||
*
|
||||
* @return the refNodes
|
||||
*/
|
||||
public List<INode> getRefNodes() {
|
||||
return this.refNodes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the refNodes.
|
||||
*
|
||||
* @param refNodes the refNodes to set
|
||||
*/
|
||||
public void setRefNodes(List<INode> refNodes) {
|
||||
this.refNodes = refNodes;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.talend.core.model.process.EConnectionType;
|
||||
import org.talend.core.model.process.INode;
|
||||
import org.talend.core.model.process.IProcess;
|
||||
import org.talend.core.model.temp.ETypeGen;
|
||||
@@ -52,7 +53,11 @@ public class NodesTree {
|
||||
this.nodes = treeNodes;
|
||||
buildRootNodes(process);
|
||||
if (init) {
|
||||
buildCamelSubTrees(true);
|
||||
if (typeGen == ETypeGen.CAMEL) {
|
||||
buildCamelSubTrees(true);
|
||||
} else if (typeGen == ETypeGen.MR) {
|
||||
buildMRSubTrees();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,6 +98,21 @@ public class NodesTree {
|
||||
}
|
||||
}
|
||||
|
||||
private void buildMRSubTrees() {
|
||||
subTrees = new ArrayList<NodesSubTree>();
|
||||
for (INode node : nodes) {
|
||||
if (((node.isSubProcessStart()) && (node.isActivate())) || (rootNodes.contains(node))) {
|
||||
if (node.getOutgoingConnections(EConnectionType.FLOW_REF) != null
|
||||
&& node.getOutgoingConnections(EConnectionType.FLOW_REF).size() == 1) {
|
||||
// ignore the node when it output connection is flow_ref, because it has been added in
|
||||
// AbstractNode.setRefNodes
|
||||
continue;
|
||||
}
|
||||
subTrees.add(new NodesSubTree(node, nodes, ETypeGen.MR));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Build Root Nodes List.
|
||||
*
|
||||
|
||||
@@ -16,34 +16,32 @@ import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IFolder;
|
||||
import org.eclipse.core.resources.IMarker;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IProjectDescription;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IWorkspace;
|
||||
import org.eclipse.core.resources.IncrementalProjectBuilder;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.SubProgressMonitor;
|
||||
import org.eclipse.emf.codegen.CodeGenPlugin;
|
||||
import org.eclipse.emf.codegen.jet.JETCompiler;
|
||||
@@ -52,20 +50,14 @@ import org.eclipse.emf.codegen.jet.JETException;
|
||||
import org.eclipse.emf.common.EMFPlugin;
|
||||
import org.eclipse.emf.common.util.BasicMonitor;
|
||||
import org.eclipse.emf.common.util.Monitor;
|
||||
import org.eclipse.jdt.core.IClasspathAttribute;
|
||||
import org.eclipse.jdt.core.IClasspathEntry;
|
||||
import org.eclipse.jdt.core.IJavaModel;
|
||||
import org.eclipse.jdt.core.IJavaProject;
|
||||
import org.eclipse.jdt.core.JavaCore;
|
||||
import org.eclipse.jdt.core.JavaModelException;
|
||||
import org.eclipse.jdt.core.compiler.CompilationProgress;
|
||||
import org.eclipse.jdt.core.compiler.batch.BatchCompiler;
|
||||
import org.osgi.framework.Bundle;
|
||||
import org.talend.commons.debug.TalendDebugHandler;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
import org.talend.commons.utils.generation.JavaUtils;
|
||||
import org.talend.designer.codegen.i18n.Messages;
|
||||
import org.talend.designer.core.model.components.ComponentBundleToPath;
|
||||
|
||||
/**
|
||||
* DOC mhirt class global comment. Detailled comment <br/>
|
||||
@@ -170,6 +162,8 @@ public class TalendJetEmitter extends JETEmitter {
|
||||
|
||||
IProject project;
|
||||
|
||||
IJavaProject javaProject;
|
||||
|
||||
public TalendEclipseHelper(IProgressMonitor progressMonitor, TalendJetEmitter jetEmitter, boolean rebuild)
|
||||
throws JETException {
|
||||
progressMonitor.beginTask("", 10); //$NON-NLS-1$
|
||||
@@ -197,6 +191,26 @@ public class TalendJetEmitter extends JETEmitter {
|
||||
project.open(new SubProgressMonitor(progressMonitor, 5));
|
||||
project.refreshLocal(IResource.DEPTH_INFINITE, new SubProgressMonitor(progressMonitor, 1));
|
||||
}
|
||||
IProjectDescription description = project.getDescription();
|
||||
// only in case it's one old workspace and got no nature defined.
|
||||
if (!ArrayUtils.contains(description.getNatureIds(), JavaCore.NATURE_ID)) {
|
||||
description.setNatureIds(new String[] { JavaCore.NATURE_ID });
|
||||
project.setDescription(description, new SubProgressMonitor(progressMonitor, 1));
|
||||
}
|
||||
|
||||
javaProject = JavaCore.create(project);
|
||||
|
||||
progressMonitor.subTask(CodeGenPlugin.getPlugin().getString("_UI_JETInitializingProject_message", //$NON-NLS-1$
|
||||
new Object[] { project.getName() }));
|
||||
IClasspathEntry classpathEntry = JavaCore.newSourceEntry(new Path("/" + project.getName() + "/src")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
IClasspathEntry jreClasspathEntry = JavaCore
|
||||
.newContainerEntry(new Path("org.eclipse.jdt.launching.JRE_CONTAINER")); //$NON-NLS-1$
|
||||
|
||||
Set<IClasspathEntry> classpath = new HashSet<IClasspathEntry>();
|
||||
classpath.add(classpathEntry);
|
||||
classpath.add(jreClasspathEntry);
|
||||
classpath.addAll(jetEmitter.getClasspathEntries());
|
||||
|
||||
IFolder sourceFolder = project.getFolder(new Path("src")); //$NON-NLS-1$
|
||||
if (!sourceFolder.exists()) {
|
||||
@@ -207,6 +221,14 @@ public class TalendJetEmitter extends JETEmitter {
|
||||
runtimeFolder.create(false, true, new SubProgressMonitor(progressMonitor, 1));
|
||||
}
|
||||
|
||||
if (isClasspathDifferent(javaProject, classpath)) {
|
||||
IClasspathEntry[] classpathEntryArray = classpath.toArray(new IClasspathEntry[classpath.size()]);
|
||||
javaProject.setRawClasspath(classpathEntryArray, new SubProgressMonitor(progressMonitor, 1));
|
||||
javaProject.setOutputLocation(new Path("/" + project.getName() + "/runtime"), new SubProgressMonitor( //$NON-NLS-1$ //$NON-NLS-2$
|
||||
progressMonitor, 1));
|
||||
javaProject.getProject().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new NullProgressMonitor());
|
||||
}
|
||||
|
||||
progressMonitor.done();
|
||||
} catch (CoreException exception) {
|
||||
throw new JETException(exception);
|
||||
@@ -297,8 +319,7 @@ public class TalendJetEmitter extends JETEmitter {
|
||||
}
|
||||
}
|
||||
boolean needRebuild = true;
|
||||
String targetFileName = jetCompiler.getSkeleton().getClassName() + ".java"; //$NON-NLS-1$
|
||||
IFile targetFile = sourceContainer.getFile(new Path(targetFileName));
|
||||
IFile targetFile = sourceContainer.getFile(new Path(jetCompiler.getSkeleton().getClassName() + ".java")); //$NON-NLS-1$
|
||||
if (!targetFile.exists()) {
|
||||
subProgressMonitor.subTask(CodeGenPlugin.getPlugin().getString("_UI_JETCreating_message", //$NON-NLS-1$
|
||||
new Object[] { targetFile.getFullPath() }));
|
||||
@@ -339,17 +360,26 @@ public class TalendJetEmitter extends JETEmitter {
|
||||
if (needRebuild || jetEmitter.method == null) {
|
||||
subProgressMonitor.subTask(CodeGenPlugin.getPlugin().getString("_UI_JETBuilding_message", //$NON-NLS-1$
|
||||
new Object[] { project.getName() }));
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
compileSingleClass(project, targetFile, baos);
|
||||
String output = baos.toString();
|
||||
// project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new
|
||||
// SubProgressMonitor(subProgressMonitor, 1));
|
||||
|
||||
project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new SubProgressMonitor(subProgressMonitor, 1));
|
||||
|
||||
IMarker[] markers = targetFile.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
|
||||
boolean errors = false;
|
||||
if (!output.isEmpty()) {
|
||||
errors = true;
|
||||
log.error(output);
|
||||
setClassAvailable(false);
|
||||
for (int i = 0; i < markers.length; ++i) {
|
||||
IMarker marker = markers[i];
|
||||
if (marker.getAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO) == IMarker.SEVERITY_ERROR) {
|
||||
errors = true;
|
||||
subProgressMonitor.subTask(marker.getAttribute(IMarker.MESSAGE) + " : " //$NON-NLS-1$
|
||||
+ (CodeGenPlugin.getPlugin().getString("jet.mark.file.line", new Object[] { //$NON-NLS-1$
|
||||
targetFile.getLocation(), marker.getAttribute(IMarker.LINE_NUMBER) })));
|
||||
log.error(jetEmitter.templateURI.substring(jetEmitter.templateURI.lastIndexOf("/") + 1) //$NON-NLS-1$
|
||||
+ Messages.getString(
|
||||
"TalendJetEmitter.compileFail", //$NON-NLS-1$
|
||||
marker.getAttribute(IMarker.MESSAGE),
|
||||
(CodeGenPlugin.getPlugin().getString("jet.mark.file.line", new Object[] { //$NON-NLS-1$
|
||||
targetFile.getLocation(), marker.getAttribute(IMarker.LINE_NUMBER) }))));
|
||||
setClassAvailable(false);
|
||||
}
|
||||
}
|
||||
|
||||
if (!errors) {
|
||||
@@ -358,7 +388,8 @@ public class TalendJetEmitter extends JETEmitter {
|
||||
|
||||
// Construct a proper URL for relative lookup.
|
||||
//
|
||||
URL url = new File(project.getLocation() + "/" + "runtime" + "/") //$NON-NLS-1$ //$NON-NLS-2$
|
||||
URL url = new File(project.getLocation()
|
||||
+ "/" + javaProject.getOutputLocation().removeFirstSegments(1) + "/") //$NON-NLS-1$ //$NON-NLS-2$
|
||||
.toURL();
|
||||
URLClassLoader theClassLoader = new URLClassLoader(new URL[] { url }, jetEmitter.classLoader);
|
||||
Class theClass = theClassLoader.loadClass((packageName.length() == 0 ? "" : packageName + ".") //$NON-NLS-1$ //$NON-NLS-2$
|
||||
@@ -400,163 +431,6 @@ public class TalendJetEmitter extends JETEmitter {
|
||||
}
|
||||
}
|
||||
|
||||
private void compileSingleClass(IProject project, IFile javaFile, OutputStream errorMsgStream) {
|
||||
compileSingleClass(project, javaFile, null, errorMsgStream, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* DOC ycbai Comment method "compileSingleClass".
|
||||
* <p>
|
||||
* Compile one class directly.
|
||||
*
|
||||
* @param project
|
||||
* @param javaFile
|
||||
* @param standardMsgStream
|
||||
* @param errorMsgStream
|
||||
* @param progress
|
||||
*/
|
||||
private void compileSingleClass(IProject project, IFile javaFile, OutputStream standardMsgStream,
|
||||
OutputStream errorMsgStream, CompilationProgress progress) {
|
||||
OutputStream msgStream = standardMsgStream;
|
||||
OutputStream errorStream = errorMsgStream;
|
||||
if (msgStream == null) {
|
||||
msgStream = System.out;
|
||||
}
|
||||
if (errorStream == null) {
|
||||
errorStream = System.err;
|
||||
}
|
||||
BatchCompiler.compile(getBatchCompilerCmd(project, javaFile), new PrintWriter(msgStream), new PrintWriter(errorStream),
|
||||
progress);
|
||||
}
|
||||
|
||||
/**
|
||||
* DOC ycbai Comment method "getBatchCompilerCmd".
|
||||
*
|
||||
* @param project
|
||||
* @param javaFile
|
||||
* @return
|
||||
*/
|
||||
private String[] getBatchCompilerCmd(IProject project, IFile javaFile) {
|
||||
List<String> cmdList = new ArrayList<String>();
|
||||
cmdList.add(javaFile.getLocation().toPortableString());
|
||||
String classpathStr = getClasspathStr();
|
||||
if (!classpathStr.isEmpty()) {
|
||||
cmdList.add("-classpath"); //$NON-NLS-1$
|
||||
cmdList.add(classpathStr);
|
||||
}
|
||||
//cmdList.add("-time"); //$NON-NLS-1$
|
||||
cmdList.add("-g:none"); //$NON-NLS-1$
|
||||
cmdList.add("-warn:none"); //$NON-NLS-1$
|
||||
cmdList.add("-1.5"); //$NON-NLS-1$
|
||||
cmdList.add("-d"); //$NON-NLS-1$
|
||||
cmdList.add(getClassOutputPath(project, javaFile));
|
||||
|
||||
return cmdList.toArray(new String[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* DOC ycbai Comment method "getClassOutputPath".
|
||||
* <p>
|
||||
* Get class output folder of project.
|
||||
*
|
||||
* @param project
|
||||
* @param javaFile
|
||||
* @return
|
||||
*/
|
||||
private String getClassOutputPath(IProject project, IFile javaFile) {
|
||||
IFolder runtimeFolder = project.getFolder("runtime"); //$NON-NLS-1$
|
||||
return runtimeFolder.getLocation().toPortableString();
|
||||
}
|
||||
|
||||
/**
|
||||
* DOC ycbai Comment method "getClasspathStr".
|
||||
* <p>
|
||||
* Get character string of classpath with separator.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private String getClasspathStr() {
|
||||
StringBuffer cps = new StringBuffer();
|
||||
String classPathSeparator = JavaUtils.JAVA_CLASSPATH_SEPARATOR;
|
||||
List<IClasspathEntry> cpes = getClasspathEntries();
|
||||
for (IClasspathEntry cpe : cpes) {
|
||||
String classpath = getClasspathFromEntry(cpe);
|
||||
cps.append(classpath).append(classPathSeparator);
|
||||
}
|
||||
if (cps.length() > 0) {
|
||||
cps.deleteCharAt(cps.length() - 1);
|
||||
}
|
||||
|
||||
return cps.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* DOC ycbai Comment method "getClasspathFromEntry".
|
||||
* <p>
|
||||
* Get the absolute classpath.
|
||||
*
|
||||
* @param entry
|
||||
* @return
|
||||
*/
|
||||
private String getClasspathFromEntry(IClasspathEntry entry) {
|
||||
if (entry == null) {
|
||||
return null;
|
||||
}
|
||||
IClasspathAttribute[] extraAttributes = entry.getExtraAttributes();
|
||||
if (extraAttributes.length > 0) {
|
||||
for (IClasspathAttribute ca : extraAttributes) {
|
||||
if ("plugin_id".equals(ca.getName())) { //$NON-NLS-1$
|
||||
String pluginId = ca.getValue();
|
||||
if (pluginId != null) {
|
||||
File plugin = new File(ComponentBundleToPath.getPathFromBundle(pluginId));
|
||||
String pluginPath = plugin.getAbsolutePath();
|
||||
if (Platform.inDevelopmentMode() && plugin.isDirectory()) {
|
||||
String output;
|
||||
try {
|
||||
output = getIdeOutputSubDir(Platform.getBundle(pluginId));
|
||||
if (output != null) {
|
||||
pluginPath = pluginPath + File.separator + output;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// for dev only so just keep a print stacktrace
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return pluginPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* DOC ycbai Comment method "getIdeOutputSubDir".
|
||||
* <p>
|
||||
* Get class folder path of bundle. Just use for development environment.
|
||||
*
|
||||
* @param bundle
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
private String getIdeOutputSubDir(Bundle bundle) throws IOException {
|
||||
String outputSubDir = null;
|
||||
// get output folder path in case we are running from the IDE
|
||||
URL buildPropUrl = bundle.getEntry("/build.properties"); //$NON-NLS-1$
|
||||
if (buildPropUrl != null) {
|
||||
Properties buildProp = new Properties();
|
||||
InputStream buildPropStream = buildPropUrl.openStream();
|
||||
try {
|
||||
buildProp.load(buildPropStream);
|
||||
outputSubDir = buildProp.getProperty("output..", null); //$NON-NLS-1$
|
||||
} finally {
|
||||
buildPropStream.close();
|
||||
}
|
||||
}
|
||||
return outputSubDir;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
@@ -642,7 +516,7 @@ public class TalendJetEmitter extends JETEmitter {
|
||||
public boolean isClassAvailable() {
|
||||
return this.classAvailable;
|
||||
}
|
||||
|
||||
|
||||
public void setClassAvailable(boolean classAvailable) {
|
||||
this.classAvailable = classAvailable;
|
||||
}
|
||||
|
||||
@@ -22,10 +22,13 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IProjectDescription;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IWorkspace;
|
||||
import org.eclipse.core.resources.IncrementalProjectBuilder;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
@@ -33,37 +36,37 @@ import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.SubProgressMonitor;
|
||||
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
|
||||
import org.eclipse.core.runtime.jobs.Job;
|
||||
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
|
||||
import org.eclipse.emf.codegen.CodeGenPlugin;
|
||||
import org.eclipse.emf.codegen.jet.JETEmitter;
|
||||
import org.eclipse.emf.codegen.jet.JETException;
|
||||
import org.eclipse.emf.common.CommonPlugin;
|
||||
import org.eclipse.emf.common.util.URI;
|
||||
import org.eclipse.jdt.core.JavaCore;
|
||||
import org.eclipse.jface.dialogs.MessageDialog;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.talend.commons.CommonsPlugin;
|
||||
import org.talend.commons.exception.BusinessException;
|
||||
import org.talend.commons.model.components.IComponentConstants;
|
||||
import org.talend.commons.ui.runtime.CommonUIPlugin;
|
||||
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
|
||||
import org.talend.commons.utils.StringUtils;
|
||||
import org.talend.commons.utils.io.IOUtils;
|
||||
import org.talend.commons.utils.time.TimeMeasure;
|
||||
import org.talend.core.CorePlugin;
|
||||
import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.IService;
|
||||
import org.talend.core.PluginChecker;
|
||||
import org.talend.core.language.ECodeLanguage;
|
||||
import org.talend.core.language.LanguageManager;
|
||||
import org.talend.core.model.components.ComponentCompilations;
|
||||
import org.talend.core.model.components.ComponentUtilities;
|
||||
import org.talend.core.model.components.IComponent;
|
||||
import org.talend.core.model.components.IComponentFileNaming;
|
||||
import org.talend.core.model.components.IComponentsFactory;
|
||||
import org.talend.core.model.temp.ECodePart;
|
||||
import org.talend.core.ui.branding.IBrandingService;
|
||||
import org.talend.core.utils.AccessingEmfJob;
|
||||
import org.talend.designer.codegen.CodeGeneratorActivator;
|
||||
import org.talend.designer.codegen.ICodeGeneratorService;
|
||||
import org.talend.designer.codegen.config.CodeGeneratorProgressMonitor;
|
||||
import org.talend.designer.codegen.config.EInternalTemplate;
|
||||
import org.talend.designer.codegen.config.JetBean;
|
||||
import org.talend.designer.codegen.config.LightJetBean;
|
||||
@@ -133,18 +136,23 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
jetFilesCompileFail.clear();
|
||||
|
||||
IProgressMonitor monitorWrap = null;
|
||||
monitorWrap = new NullProgressMonitor();
|
||||
boolean headless = CommonUIPlugin.isFullyHeadless();
|
||||
if (!headless) {
|
||||
monitorWrap = new CodeGeneratorProgressMonitor(delegateMonitor);
|
||||
} else {
|
||||
monitorWrap = new NullProgressMonitor();
|
||||
}
|
||||
ECodeLanguage codeLanguage = LanguageManager.getCurrentLanguage();
|
||||
|
||||
initializeJetEmittersProject(monitorWrap);
|
||||
|
||||
TimeMeasure.step("initialize Jet Emitters", "initialize JET Project"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
CodeGeneratorInternalTemplatesFactory templatesFactory = CodeGeneratorInternalTemplatesFactoryProvider
|
||||
.getInstance();
|
||||
templatesFactory.setCurrentLanguage(codeLanguage);
|
||||
templatesFactory.init();
|
||||
|
||||
IComponentsFactory componentsFactory = ComponentsFactoryProvider.getInstance();
|
||||
componentsFactory.getComponents();
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
||||
@@ -155,7 +163,6 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
|
||||
List<TemplateUtil> templates = templatesFactory.getTemplates();
|
||||
Set<IComponent> components = componentsFactory.getComponents();
|
||||
TimeMeasure.step("initialize Jet Emitters", "getComponents"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
monitorWrap.beginTask(Messages.getString("CodeGeneratorEmittersPoolFactory.initMessage"), //$NON-NLS-1$
|
||||
(2 * templates.size() + 5 * components.size()));
|
||||
@@ -170,7 +177,6 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
monitorBuffer = 0;
|
||||
}
|
||||
}
|
||||
TimeMeasure.step("initialize Jet Emitters", "initialize jet beans from templates"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
if (components != null) {
|
||||
ECodePart codePart = ECodePart.MAIN;
|
||||
@@ -185,12 +191,10 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
}
|
||||
}
|
||||
}
|
||||
TimeMeasure.step("initialize Jet Emitters", "initialize jet beans from components"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
monitorWrap.worked(monitorBuffer);
|
||||
|
||||
initializeEmittersPool(jetBeans, codeLanguage, monitorWrap);
|
||||
monitorWrap.done();
|
||||
TimeMeasure.step("initialize Jet Emitters", "initialize and generate each jet emitters"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
if (!CommonUIPlugin.isFullyHeadless()) {
|
||||
Job job = new Job(Messages.getString("CodeGeneratorEmittersPoolFactory.updatePaletteForEditors")) { //$NON-NLS-1$
|
||||
@@ -198,7 +202,7 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
CorePlugin.getDefault().getDesignerCoreService()
|
||||
.synchronizeDesignerUI(new PropertyChangeEvent(this, IComponentConstants.NORMAL, null, null));
|
||||
.synchronizeDesignerUI(new PropertyChangeEvent(this, ComponentUtilities.NORMAL, null, null));
|
||||
return Status.OK_STATUS;
|
||||
}
|
||||
|
||||
@@ -223,17 +227,15 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
TimeMeasure.measureActive = false;
|
||||
return new Status(IStatus.ERROR, CodeGeneratorActivator.PLUGIN_ID,
|
||||
Messages.getString("CodeGeneratorEmittersPoolFactory.initialException"), e); //$NON-NLS-1$
|
||||
} finally {
|
||||
try {
|
||||
IWorkspace workspace = ResourcesPlugin.getWorkspace();
|
||||
IProject project = workspace.getRoot().getProject(JET_PROJECT);
|
||||
project.build(IncrementalProjectBuilder.AUTO_BUILD, null);
|
||||
} catch (CoreException e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
}
|
||||
// finally {
|
||||
// try {
|
||||
// IWorkspace workspace = ResourcesPlugin.getWorkspace();
|
||||
// IProject project = workspace.getRoot().getProject(JET_PROJECT);
|
||||
// project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
|
||||
// TimeMeasure.step("initialize Jet Emitters", "build project .JETEmitters"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
// } catch (CoreException e) {
|
||||
// ExceptionHandler.process(e);
|
||||
// }
|
||||
// }
|
||||
TimeMeasure.end("initialize Jet Emitters"); //$NON-NLS-1$
|
||||
TimeMeasure.display = false;
|
||||
TimeMeasure.displaySteps = false;
|
||||
@@ -288,15 +290,21 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
project.open(new SubProgressMonitor(progressMonitor, 5));
|
||||
project.refreshLocal(IResource.DEPTH_INFINITE, new SubProgressMonitor(progressMonitor, 1));
|
||||
}
|
||||
IProjectDescription description = project.getDescription();
|
||||
// only in case it's one old workspace and got no nature defined.
|
||||
if (!ArrayUtils.contains(description.getNatureIds(), JavaCore.NATURE_ID)) {
|
||||
description.setNatureIds(new String[] { JavaCore.NATURE_ID });
|
||||
project.setDescription(description, new SubProgressMonitor(progressMonitor, 1));
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
public static Job initialize() {
|
||||
Job job = new Job(Messages.getString("CodeGeneratorEmittersPoolFactory.initMessage")) { //$NON-NLS-1$
|
||||
Job job = new AccessingEmfJob(Messages.getString("CodeGeneratorEmittersPoolFactory.initMessage")) { //$NON-NLS-1$
|
||||
|
||||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
protected IStatus doRun(IProgressMonitor monitor) {
|
||||
synchronized (delegateMonitor) {
|
||||
if (jobRunnable == null) {
|
||||
jobRunnable = new JobRunnable(Messages.getString("CodeGeneratorEmittersPoolFactory.codeThread")); //$NON-NLS-1$
|
||||
@@ -324,8 +332,8 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
}
|
||||
|
||||
};
|
||||
job.setUser(false);
|
||||
job.setPriority(Job.LONG);
|
||||
job.setUser(true);
|
||||
job.setPriority(Job.INTERACTIVE);
|
||||
job.schedule();
|
||||
job.wakeUp(); // start as soon as possible
|
||||
|
||||
@@ -416,12 +424,12 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
if (component.getAvailableCodeParts().contains(ECodePart.END)) {
|
||||
initComponent(codeLanguage, jetBeans, ECodePart.END, component);
|
||||
}
|
||||
if (component.getAvailableCodeParts().contains(ECodePart.FINALLY)) {
|
||||
initComponent(codeLanguage, jetBeans, ECodePart.FINALLY, component);
|
||||
}
|
||||
if (component.getAvailableCodeParts().contains(ECodePart.MRCODE)) {
|
||||
initComponent(codeLanguage, jetBeans, ECodePart.MRCODE, component);
|
||||
}
|
||||
if (component.getAvailableCodeParts().contains(ECodePart.MRJOBFOOTER)) {
|
||||
initComponent(codeLanguage, jetBeans, ECodePart.MRJOBFOOTER, component);
|
||||
}
|
||||
if (component.getAvailableCodeParts().contains(ECodePart.MRCONFIG)) {
|
||||
initComponent(codeLanguage, jetBeans, ECodePart.MRCONFIG, component);
|
||||
}
|
||||
@@ -660,12 +668,7 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
*/
|
||||
public static JETEmitter getJETEmitter(JetBean jetBean) {
|
||||
if (emitterPool == null || (!isInitialized() && !isInitializeStart())) {
|
||||
try {
|
||||
new CodeGeneratorManager().initTemplate();
|
||||
} catch (InterruptedException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
initialize();
|
||||
}
|
||||
|
||||
// only for components, not for /resources jet file, if it compile error, it will get the
|
||||
@@ -775,37 +778,4 @@ public final class CodeGeneratorEmittersPoolFactory {
|
||||
public static boolean isInitializeStart() {
|
||||
return initializeStart;
|
||||
}
|
||||
|
||||
static class CodeGeneratorManager {
|
||||
|
||||
private IStatus status;
|
||||
|
||||
public IStatus initTemplate() throws InterruptedException {
|
||||
final Job initializeTemplatesJob = initialize();
|
||||
Job.getJobManager().addJobChangeListener(new JobChangeAdapter() {
|
||||
|
||||
@Override
|
||||
public void done(IJobChangeEvent event) {
|
||||
if (event.getJob().equals(initializeTemplatesJob)) {
|
||||
setStatus(event.getResult());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
while (status == null) {
|
||||
Thread.sleep(10);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
private void setStatus(IStatus result) {
|
||||
this.status = result;
|
||||
}
|
||||
|
||||
private ICodeGeneratorService getCodeGenerationService() {
|
||||
IService service = GlobalServiceRegister.getDefault().getService(ICodeGeneratorService.class);
|
||||
return (ICodeGeneratorService) service;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import java.io.File;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IProjectDescription;
|
||||
import org.eclipse.core.resources.IWorkspace;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
@@ -24,6 +25,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.core.runtime.SubProgressMonitor;
|
||||
import org.eclipse.emf.codegen.CodeGenPlugin;
|
||||
import org.eclipse.jdt.core.JavaCore;
|
||||
import org.talend.core.language.ECodeLanguage;
|
||||
|
||||
/**
|
||||
@@ -75,7 +77,11 @@ public final class EmfEmittersPersistenceFactory {
|
||||
project.create(new SubProgressMonitor(progressMonitor, 1));
|
||||
progressMonitor.subTask(CodeGenPlugin.getPlugin().getString("_UI_JETCreatingProject_message", //$NON-NLS-1$
|
||||
new Object[] { project.getName() }));
|
||||
IProjectDescription description = workspace.newProjectDescription(project.getName());
|
||||
description.setNatureIds(new String[] { JavaCore.NATURE_ID });
|
||||
description.setLocation(null);
|
||||
project.open(new SubProgressMonitor(progressMonitor, 1));
|
||||
project.setDescription(description, new SubProgressMonitor(progressMonitor, 1));
|
||||
}
|
||||
} catch (CoreException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
Exchange=Exchange
|
||||
Exchange=Training
|
||||
DownloadComponenentsAction.Label=\u4E0B\u8F7D\u9009\u62E9\u7684\u7EC4\u4EF6
|
||||
RefreshComponenentsAction.Label=\u5237\u65B0\u7EC4\u4EF6\u6E05\u5355
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
AvailableExtensionsComposite.FilterTitle=Filter
|
||||
AvailableExtensionsComposite.ViewDetail.installOperateStatus=Installieren
|
||||
AvailableExtensionsComposite.ViewDetail.WriteReview=Bericht schreiben
|
||||
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailureTip=Sie sollten es prüfen.
|
||||
DownloadedExtensionsComposite.installedOperateStatus=Installiert
|
||||
DownloadedExtensionsComposite.updateOperateStatus=Update
|
||||
MyExtensionsComposite.UpdateOperateStatus=Update
|
||||
@@ -9,10 +6,12 @@ MyExtensionsComposite.ModifyOperateStatus=Modifiziere
|
||||
MyExtensionsComposite.DeleteOperateStatus=Löschen
|
||||
MyExtensionsComposite.Form.Description=Beschreibung
|
||||
MyExtensionsComposite.Form.Upload.Browse=Durchsuchen...
|
||||
DeleteExtensionJob.DeleteFailure=Löschung fehlgeschlagen
|
||||
DeleteExtensionJob.DeleteFailureTip=Sie sollten es prüfen.
|
||||
DownloadComponenentsAction.DownloadTaskName=Lade Datei von URL:
|
||||
ImportExchangeDialog.WARNING=Warnung
|
||||
ImportExchangeDialog.AUTHOR_NAME=Name des Autors
|
||||
ImportExchangeDialog.LATEST_REVISION=Aktuellste Revision
|
||||
ImportExchangeDialog.JOB_BUTTON=Job-Design
|
||||
ImportExchangeDialog.ROUTINES_BUTTON=Routinen
|
||||
ImportExchangeDialog.ROUTINES_PROGRESSBAR=Lade einige Routinen...
|
||||
ImportExchangeDialog.TEMPLATES_BUTTON=SQL Templates
|
||||
ImportExchangeDialog.OPERATION_CANCELLED=Operation wurde abgebrochen
|
||||
|
||||
@@ -19,5 +19,12 @@ ImportExchangeDialog.EXTENSION_NAME=\u038C\u03BD\u03BF\u03BC\u03B1 \u0395\u03C0\
|
||||
ImportExchangeDialog.AUTHOR_NAME=\u038C\u03BD\u03BF\u03BC\u03B1 \u03A3\u03C5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03B1
|
||||
ImportExchangeDialog.LATEST_REVISION=\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u0391\u03BD\u03B1\u03B8\u03B5\u03CE\u03C1\u03B7\u03C3\u03B7
|
||||
ImportExchangeDialog.EXTENSION_DESCRIPTION=\u03A0\u03B5\u03C1\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u0395\u03C0\u03AD\u03BA\u03C4\u03B1\u03C3\u03B7\u03C2
|
||||
ImportExchangeDialog.JOB_BUTTON=\u03A3\u03C7\u03AD\u03B4\u03B9\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD
|
||||
ImportExchangeDialog.DOWNLOAD_JOB=\u039B\u03AE\u03C8\u03B7 \u039A\u03AC\u03C0\u03BF\u03B9\u03C9\u03BD \u03A3\u03C7\u03B5\u03B4\u03AF\u03C9\u03BD \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2...
|
||||
ImportExchangeDialog.ROUTINES_BUTTON=\u03A1\u03BF\u03C5\u03C4\u03AF\u03BD\u03B5\u03C2
|
||||
ImportExchangeDialog.ROUTINES_PROGRESSBAR=\u039B\u03AE\u03C8\u03B7 \u039A\u03AC\u03C0\u03BF\u03B9\u03C9\u03BD \u03A1\u03BF\u03C5\u03C4\u03B9\u03BD\u03CE\u03BD...
|
||||
ImportExchangeDialog.TEMPLATES_BUTTON=\u03A0\u03C1\u03CC\u03C4\u03C5\u03C0\u03B1 SQL
|
||||
ImportExchangeDialog.TEMPLATES_PROGRESSBAR=\u039B\u03AE\u03C8\u03B7 \u039A\u03AC\u03C0\u03BF\u03B9\u03C9\u03BD \u03A0\u03C1\u03BF\u03C4\u03CD\u03C0\u03C9\u03BD SQL...
|
||||
ImportExchangeDialog.REFRESH_BUTTON=\u0391\u03BD\u03B1\u03BD\u03AD\u03C9\u03C3\u03B7
|
||||
ImportExchangeDialog.NOT_SELECT_BUTTON=\u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03BA\u03AC\u03BD\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03C0\u03C1\u03CE\u03C4\u03B1
|
||||
ImportExchangeDialog.OPERATION_CANCELLED=\u0397 \u03BB\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1 \u03B1\u03BA\u03C5\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5
|
||||
|
||||
@@ -89,8 +89,15 @@ ImportExchangeDialog.EXTENSION_NAME=Extension Name
|
||||
ImportExchangeDialog.AUTHOR_NAME=Author Name
|
||||
ImportExchangeDialog.LATEST_REVISION=Latest Revision
|
||||
ImportExchangeDialog.EXTENSION_DESCRIPTION=Extension Description
|
||||
ImportExchangeDialog.download.components=Download Components Please Wait\!
|
||||
ImportExchangeDialog.JOB_BUTTON=Job Designs
|
||||
ImportExchangeDialog.DOWNLOAD_JOB=Download Some Job Designs...
|
||||
ImportExchangeDialog.ROUTINES_BUTTON=Routines
|
||||
ImportExchangeDialog.ROUTINES_PROGRESSBAR=Download Some Routines...
|
||||
ImportExchangeDialog.TEMPLATES_BUTTON=SQL Templates
|
||||
ImportExchangeDialog.TEMPLATES_PROGRESSBAR=Download Some SQL Templates...
|
||||
ImportExchangeDialog.REFRESH_BUTTON=Refresh
|
||||
ImportExchangeDialog.REFRESHING_PROGRESSBAR=Refreshing\! Please Wait.....
|
||||
ImportExchangeDialog.NOT_SELECT_BUTTON=Please select a choice first
|
||||
ImportExchangeDialog.OPERATION_CANCELLED=Operation was cancelled
|
||||
Exchange.logon.error=Exchange user have not been registered, please register using the preferences .
|
||||
ImportExchangeDialog.download.extensions=Download extensions\! Please Wait\!
|
||||
|
||||
@@ -3,19 +3,17 @@ AvailableExtensionsComposite.ExtensionName=Nom de l'extension
|
||||
AvailableExtensionsComposite.Version=Version
|
||||
AvailableExtensionsComposite.Rating=Note
|
||||
AvailableExtensionsComposite.Author=Auteur
|
||||
AvailableExtensionsComposite.FilterTitle=Filtre
|
||||
AvailableExtensionsComposite.ViewDetail.installOperateStatus=Installer
|
||||
AvailableExtensionsComposite.ViewDetail.WriteReview=Donnez votre avis
|
||||
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailureTip=Veuillez vérifier.
|
||||
DownloadedExtensionsComposite.DownloadedVersion=Version téléchargée
|
||||
DownloadedExtensionsComposite.DownloadDate=Date de téléchargement
|
||||
DownloadedExtensionsComposite.installedOperateStatus=Installé
|
||||
DownloadedExtensionsComposite.updateOperateStatus=UPDATE
|
||||
DownloadedExtensionsComposite.updateOperateStatus=Mettre à jour
|
||||
MyExtensionsComposite.Version=Version
|
||||
MyExtensionsComposite.UploadDate=Date du chargement
|
||||
MyExtensionsComposite.AddNewExtensionTitle=Ajouter une nouvelle extension
|
||||
MyExtensionsComposite.UpLoadNewVersionOperateStatus=Charger une nouvelle version
|
||||
MyExtensionsComposite.UpdateOperateStatus=UPDATE
|
||||
MyExtensionsComposite.ModifyOperateStatus=Modifier
|
||||
MyExtensionsComposite.DeleteOperateStatus=DELETE
|
||||
MyExtensionsComposite.Form.Return=Retourner
|
||||
@@ -71,7 +69,14 @@ ImportExchangeDialog.EXTENSION_NAME=Nom de l'extension
|
||||
ImportExchangeDialog.AUTHOR_NAME=Nom de l'auteur
|
||||
ImportExchangeDialog.LATEST_REVISION=Dernière révision
|
||||
ImportExchangeDialog.EXTENSION_DESCRIPTION=Description de l'extension
|
||||
ImportExchangeDialog.download.components=Téléchargement de composants, veuillez patienter.
|
||||
ImportExchangeDialog.JOB_BUTTON=Job Designs
|
||||
ImportExchangeDialog.DOWNLOAD_JOB=Télécharger des Jobs Designs...
|
||||
ImportExchangeDialog.ROUTINES_BUTTON=Routines
|
||||
ImportExchangeDialog.ROUTINES_PROGRESSBAR=Télécharger des Routines...
|
||||
ImportExchangeDialog.TEMPLATES_PROGRESSBAR=Télécharger des modèles SQL...
|
||||
ImportExchangeDialog.REFRESH_BUTTON=Rafraîchir
|
||||
ImportExchangeDialog.REFRESHING_PROGRESSBAR=Rafraîchissement, veuillez patienter..
|
||||
ImportExchangeDialog.NOT_SELECT_BUTTON=Merci de d'abord sélectionner un choix
|
||||
ImportExchangeDialog.OPERATION_CANCELLED=L'opération a été annulée
|
||||
Exchange.logon.error=L'utilisateur de l'Exchange n'est pas enregistré. Enregistrez-vous via les Préférences.
|
||||
|
||||
@@ -14,4 +14,7 @@ ImportExchangeDialog.dialogTitle=Seleziona oggetto da Talend Exchange
|
||||
ImportExchangeDialog.WARNING=Avvertimento
|
||||
ImportExchangeDialog.LATEST_REVISION=Ultima Revisione
|
||||
ImportExchangeDialog.EXTENSION_DESCRIPTION=Descrizione estensione
|
||||
ImportExchangeDialog.JOB_BUTTON=Progetti job
|
||||
ImportExchangeDialog.DOWNLOAD_JOB=Scarica alcuni Job Designs...
|
||||
ImportExchangeDialog.ROUTINES_BUTTON=Routine
|
||||
ImportExchangeDialog.REFRESH_BUTTON=Aggiorna
|
||||
|
||||
@@ -88,7 +88,14 @@ ImportExchangeDialog.EXTENSION_NAME=Extension\u540D
|
||||
ImportExchangeDialog.AUTHOR_NAME=\u4f5c\u6210\u8005\u540d
|
||||
ImportExchangeDialog.LATEST_REVISION=\u6700\u65B0\u30EA\u30D3\u30B8\u30E7\u30F3
|
||||
ImportExchangeDialog.EXTENSION_DESCRIPTION=Extension\u8AAC\u660E
|
||||
ImportExchangeDialog.download.components=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u3067\u3059\u3001\u66AB\u304F\u304A\u5F85\u3061\u4E0B\u3055\u3044\u3002
|
||||
ImportExchangeDialog.JOB_BUTTON=\u30B8\u30E7\u30D6
|
||||
ImportExchangeDialog.DOWNLOAD_JOB=\u30B8\u30E7\u30D6\u30C7\u30B6\u30A4\u30F3\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u307E\u3059\u2026
|
||||
ImportExchangeDialog.ROUTINES_BUTTON=\u30EB\u30FC\u30C1\u30F3
|
||||
ImportExchangeDialog.ROUTINES_PROGRESSBAR=\u30EB\u30FC\u30C1\u30F3\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9...
|
||||
ImportExchangeDialog.TEMPLATES_BUTTON=SQL\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8
|
||||
ImportExchangeDialog.TEMPLATES_PROGRESSBAR=SQL\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9...
|
||||
ImportExchangeDialog.REFRESH_BUTTON=\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5
|
||||
ImportExchangeDialog.NOT_SELECT_BUTTON=\u5148\u306B\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
||||
ImportExchangeDialog.OPERATION_CANCELLED=\u64CD\u4F5C\u3092\u30AD\u30E3\u30F3\u30BB\u30EB
|
||||
Exchange.logon.error=Exchange\u30E6\u30FC\u30B6\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u521D\u671F\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u3066\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
||||
ImportExchangeDialog.download.extensions=\u62E1\u5F35\u6A5F\u80FD\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u3067\u3059\u3001\u66AB\u304F\u304A\u5F85\u3061\u4E0B\u3055\u3044\u3002
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
DownloadedExtensionsComposite.updateOperateStatus=UPDATE
|
||||
MyExtensionsComposite.UpdateOperateStatus=UPDATE
|
||||
ImportExchangeDialog.TEMPLATES_BUTTON=SQL \u0161abloni
|
||||
ImportExchangeDialog.REFRESH_BUTTON=Osve\u017Eavanje
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ExchangeView.Exchange=Exchange
|
||||
ExchangeView.Exchange=Training
|
||||
AvailableExtensionsComposite.ExtensionName=\u6269\u5C55\u540D
|
||||
AvailableExtensionsComposite.Version=\u7248\u672C
|
||||
AvailableExtensionsComposite.Author=\u4F5C\u8005
|
||||
@@ -14,11 +14,14 @@ MyExtensionsComposite.Form.Compatibility.Version=\u7248\u672C
|
||||
MyExtensionsComposite.Form.Description=\u5FC5\u8981\u7684
|
||||
MyExtensionsComposite.Form.Upload=\u4E0A\u4F20
|
||||
MyExtensionsComposite.Form.Upload.Browse=\u6D4F\u89C8...
|
||||
DownloadComponenentsAction.installExchange=\u5B89\u88C5\u6765\u81EA Exchange \u4EA4\u6D41\u4E2D\u5FC3\u7684\u7EC4\u4EF6
|
||||
DownloadComponenentsAction.DownloadTaskName=\u4ECEURL\u4E0B\u8F7D\u6587\u4EF6
|
||||
ImportExchangeDialog.dialogTitle=\u4ECETalend Exchange\u9009\u62E9\u4E00\u4E2A\u9879\u76EE
|
||||
ImportExchangeDialog.WARNING=\u8B66\u544A
|
||||
ImportExchangeDialog.EXTENSION_NAME=\u6269\u5C55\u540D
|
||||
ImportExchangeDialog.LATEST_REVISION=\u6700\u65B0\u7248\u672C
|
||||
ImportExchangeDialog.JOB_BUTTON=\u4F5C\u4E1A\u8BBE\u8BA1
|
||||
ImportExchangeDialog.DOWNLOAD_JOB=\u4E0B\u8F7D\u4F5C\u4E1A\u8BBE\u8BA1
|
||||
ImportExchangeDialog.ROUTINES_BUTTON=\u5E38\u89C4
|
||||
ImportExchangeDialog.TEMPLATES_PROGRESSBAR=\u4E0B\u8F7DSQL\u6A21\u677F......
|
||||
ImportExchangeDialog.REFRESH_BUTTON=\u5237\u65B0
|
||||
ImportExchangeDialog.OPERATION_CANCELLED=\u64CD\u4F5C\u5DF2\u53D6\u6D88
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Exchange Plug-in
|
||||
Bundle-Name: Exchange plugin
|
||||
Bundle-SymbolicName: org.talend.designer.components.exchange;singleton:=true
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Activator: org.talend.designer.components.exchange.ExchangePlugin
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.eclipse.ui,
|
||||
Require-Bundle: org.eclipse.ui,
|
||||
org.eclipse.core.runtime,
|
||||
org.apache.log4j,
|
||||
org.apache.commons.collections,
|
||||
org.apache.commons.logging,
|
||||
@@ -13,9 +13,7 @@ Require-Bundle: org.eclipse.core.runtime,
|
||||
org.apache.commons.io,
|
||||
org.apache.commons.lang,
|
||||
org.apache.commons.httpclient,
|
||||
org.talend.commons.ui,
|
||||
org.talend.core,
|
||||
org.talend.core.ui,
|
||||
org.talend.utils,
|
||||
org.talend.librariesmanager,
|
||||
org.talend.libraries.javacsv;resolution:=optional,
|
||||
|
||||
@@ -90,20 +90,21 @@
|
||||
alert("Extension Title is empty");
|
||||
isSkipPage = false;
|
||||
}else if(labelValidate=="null"){
|
||||
alert("Extension Title can not be null");
|
||||
isSkipPage = false;
|
||||
alert("Extension Title can not be null");
|
||||
isSkipPage = false;
|
||||
}else if(lastVersionAvailableValidate==0){
|
||||
alert("Initial Version is empty");
|
||||
isSkipPage = false;
|
||||
}else if(lastVersionAvailableValidate=="null"){
|
||||
alert("Initial Version can not be null");
|
||||
isSkipPage = false;
|
||||
alert("Initial Version can not be null");
|
||||
isSkipPage = false;
|
||||
}else if(filename==0){
|
||||
alert("Please input a vaild File path");
|
||||
isSkipPage = false;
|
||||
alert("Please input a vaild File path");
|
||||
isSkipPage = false;
|
||||
}
|
||||
|
||||
<!-- validate the createNewExtension text end-->
|
||||
|
||||
if (isSkipPage == true) {
|
||||
var listVersionCompatibles = "listVersionCompatibles:" + "'" + checkedType + "'";
|
||||
var filter = "filter:" + "'" + filtervalue + "'";
|
||||
@@ -113,7 +114,7 @@
|
||||
|
||||
var url = prefix + "&extensionValues=" + jsonObj;
|
||||
document.getElementById('commit').href = url;
|
||||
window.location.href = document.getElementById('commit').href;
|
||||
window.location.href=document.getElementById('commit').href;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -151,8 +152,8 @@
|
||||
alert("New Version is empty");
|
||||
var isSkipPage = false;
|
||||
}else if(lastVersionAvailable_updateValidate=="null"){
|
||||
alert("New Version can not be null");
|
||||
var isSkipPage = false;
|
||||
alert("New Version can not be null");
|
||||
var isSkipPage = false;
|
||||
}
|
||||
<!-- validate the updateExtension text end-->
|
||||
|
||||
@@ -165,9 +166,9 @@
|
||||
|
||||
var url = prefix + "&extensionValues=" + jsonObj;
|
||||
document.getElementById('commit_update').href = url;
|
||||
window.location.href = document.getElementById('commit_update').href;
|
||||
window.location.href=document.getElementById('commit_update').href;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function modifyReWriteUrl() {
|
||||
|
||||
@@ -105,7 +105,19 @@ ImportExchangeDialog.EXTENSION_NAME=Extension Name
|
||||
ImportExchangeDialog.AUTHOR_NAME=Author Name
|
||||
ImportExchangeDialog.LATEST_REVISION=Latest Revision
|
||||
ImportExchangeDialog.EXTENSION_DESCRIPTION=Extension Description
|
||||
ImportExchangeDialog.download.extensions=Download extensions\! Please Wait\!
|
||||
ImportExchangeDialog.download.components=Download Components Please Wait\!
|
||||
|
||||
ImportExchangeDialog.JOB_BUTTON=Job Designs
|
||||
ImportExchangeDialog.DOWNLOAD_JOB=Download Some Job Designs...
|
||||
ImportExchangeDialog.ROUTINES_BUTTON=Routines
|
||||
ImportExchangeDialog.ROUTINES_PROGRESSBAR=Download Some Routines...
|
||||
ImportExchangeDialog.TEMPLATES_BUTTON=SQL Templates
|
||||
ImportExchangeDialog.TEMPLATES_PROGRESSBAR=Download Some SQL Templates...
|
||||
ImportExchangeDialog.REFRESH_BUTTON=Refresh
|
||||
ImportExchangeDialog.REFRESHING_PROGRESSBAR=Refreshing\! Please Wait.....
|
||||
ImportExchangeDialog.NOT_SELECT_BUTTON=Please select a choice first
|
||||
ImportExchangeDialog.OPERATION_CANCELLED=Operation was cancelled
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -21,9 +21,8 @@ import java.util.zip.ZipFile;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.talend.commons.utils.io.FilesUtils;
|
||||
import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.CorePlugin;
|
||||
import org.talend.core.language.LanguageManager;
|
||||
import org.talend.core.service.IComponentsLocalProviderService;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -67,15 +66,8 @@ public class ComponentInstaller {
|
||||
rootFolder.mkdir();
|
||||
// move some common use codes for unzipping file to FilesUtils
|
||||
FilesUtils.unzip(zipFile, targetFolder);
|
||||
boolean valid = false;
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IComponentsLocalProviderService.class)) {
|
||||
IComponentsLocalProviderService service = (IComponentsLocalProviderService) GlobalServiceRegister.getDefault()
|
||||
.getService(IComponentsLocalProviderService.class);
|
||||
if (service != null) {
|
||||
valid = service.validateComponent(rootFolder.getAbsolutePath(), LanguageManager.getCurrentLanguage());
|
||||
}
|
||||
}
|
||||
|
||||
boolean valid = CorePlugin.getDefault().getComponentsLocalProviderService()
|
||||
.validateComponent(rootFolder.getAbsolutePath(), LanguageManager.getCurrentLanguage());
|
||||
if (!valid) {
|
||||
if (rootFolder.exists() && rootFolder.isDirectory()) {
|
||||
for (File f : rootFolder.listFiles()) {
|
||||
|
||||
@@ -46,8 +46,7 @@ import org.talend.core.download.DownloadHelper;
|
||||
import org.talend.core.download.DownloadListener;
|
||||
import org.talend.core.language.ECodeLanguage;
|
||||
import org.talend.core.language.LanguageManager;
|
||||
import org.talend.core.model.components.ComponentManager;
|
||||
import org.talend.core.model.components.ComponentPaletteUtilities;
|
||||
import org.talend.core.model.components.ComponentUtilities;
|
||||
import org.talend.core.model.components.IComponent;
|
||||
import org.talend.core.model.components.IComponentsFactory;
|
||||
import org.talend.designer.codegen.ICodeGeneratorService;
|
||||
@@ -61,6 +60,7 @@ import org.talend.designer.components.exchange.ui.views.ExchangeManager;
|
||||
import org.talend.designer.components.exchange.util.ExchangeUtils;
|
||||
import org.talend.designer.components.exchange.util.ExchangeWebService;
|
||||
import org.talend.designer.components.exchange.util.WebserviceStatus;
|
||||
import org.talend.designer.core.model.components.manager.ComponentManager;
|
||||
import org.talend.designer.core.ui.AbstractMultiPageTalendEditor;
|
||||
import org.talend.designer.core.ui.editor.AbstractTalendEditor;
|
||||
import org.talend.repository.model.ComponentsFactoryProvider;
|
||||
@@ -75,7 +75,6 @@ public class DownloadComponenentsAction extends Action implements IIntroAction {
|
||||
|
||||
private List<ComponentExtension> fDownloadedComponents;
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
Job job = new DownloadJob(ExchangeManager.getInstance().getSelectedExtension());
|
||||
@@ -88,7 +87,6 @@ public class DownloadComponenentsAction extends Action implements IIntroAction {
|
||||
|
||||
Display.getDefault().asyncExec(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
updateUI(event);
|
||||
}
|
||||
@@ -124,7 +122,7 @@ public class DownloadComponenentsAction extends Action implements IIntroAction {
|
||||
@Override
|
||||
public void done(IJobChangeEvent event) {
|
||||
|
||||
ComponentPaletteUtilities.setSkipUpdatePalette(false);
|
||||
ComponentUtilities.setSkipUpdatePalette(false);
|
||||
}
|
||||
});
|
||||
RefreshComponenentsAction action = new RefreshComponenentsAction();
|
||||
@@ -136,7 +134,6 @@ public class DownloadComponenentsAction extends Action implements IIntroAction {
|
||||
FileFilter propertiesFilter = new FileFilter() {
|
||||
|
||||
// gcui:search xml file.
|
||||
@Override
|
||||
public boolean accept(File file) {
|
||||
if (LanguageManager.getCurrentLanguage() == ECodeLanguage.JAVA) {
|
||||
return file.getName().endsWith("_java.xml"); //$NON-NLS-1$
|
||||
@@ -208,7 +205,7 @@ public class DownloadComponenentsAction extends Action implements IIntroAction {
|
||||
AbstractMultiPageTalendEditor editor = (AbstractMultiPageTalendEditor) part;
|
||||
AbstractTalendEditor talendEditor = editor.getTalendEditor();
|
||||
try {
|
||||
ComponentPaletteUtilities.setSkipUpdatePalette(true);
|
||||
ComponentUtilities.setSkipUpdatePalette(true);
|
||||
talendEditor.selectPaletteEntry(componentName);
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
@@ -306,7 +303,6 @@ public class DownloadComponenentsAction extends Action implements IIntroAction {
|
||||
} else {
|
||||
Display.getDefault().asyncExec(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
}
|
||||
});
|
||||
@@ -340,11 +336,9 @@ public class DownloadComponenentsAction extends Action implements IIntroAction {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void downloadComplete() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void downloadProgress(DownloadHelper downloader, int bytesRead) {
|
||||
if (fMonitor.isCanceled()) {
|
||||
// cancel download
|
||||
@@ -356,7 +350,6 @@ public class DownloadComponenentsAction extends Action implements IIntroAction {
|
||||
fMonitor.worked(bytesRead);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void downloadStart(int totalSize) {
|
||||
fProgressLabel = "/" + toKbFormat(totalSize); //$NON-NLS-1$
|
||||
fBytesDownloaded = 0;
|
||||
@@ -368,7 +361,6 @@ public class DownloadComponenentsAction extends Action implements IIntroAction {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(IIntroSite site, Properties params) {
|
||||
run();
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@ import org.eclipse.ui.IWorkbenchPage;
|
||||
import org.eclipse.ui.PartInitException;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
|
||||
import org.talend.core.model.general.IExchangeService;
|
||||
import org.talend.core.model.general.Project;
|
||||
import org.talend.core.service.IExchangeService;
|
||||
import org.talend.designer.components.exchange.i18n.Messages;
|
||||
import org.talend.designer.components.exchange.ui.views.ExchangeEditorInput;
|
||||
import org.talend.designer.components.exchange.util.ExchangeWebService;
|
||||
|
||||
@@ -17,7 +17,6 @@ import java.lang.reflect.InvocationTargetException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
@@ -55,7 +54,6 @@ import org.talend.core.download.DownloadHelper;
|
||||
import org.talend.designer.components.exchange.ExchangePlugin;
|
||||
import org.talend.designer.components.exchange.i18n.Messages;
|
||||
import org.talend.designer.components.exchange.jobs.ComponentSearcher;
|
||||
import org.talend.designer.components.exchange.model.Category;
|
||||
import org.talend.designer.components.exchange.model.ComponentExtension;
|
||||
import org.talend.designer.components.exchange.model.VersionRevision;
|
||||
import org.talend.designer.components.exchange.util.ExchangeUtils;
|
||||
@@ -68,45 +66,54 @@ import org.talend.designer.components.exchange.util.ExchangeWebService;
|
||||
*/
|
||||
public class ImportExchangeDialog extends Dialog {
|
||||
|
||||
private static String category;
|
||||
private ImportExchangeProperty downloadproperty;
|
||||
|
||||
private Button jobButton;
|
||||
|
||||
private Button templatesButton;
|
||||
|
||||
private Button routinesButton;
|
||||
|
||||
private Button refresh;
|
||||
|
||||
private static String type;
|
||||
|
||||
private static String version;
|
||||
|
||||
public Combo categoryCombo;
|
||||
private URL url;
|
||||
|
||||
private String selectFile;
|
||||
|
||||
private String progressBarMessage;
|
||||
|
||||
private File tempFile;
|
||||
|
||||
public Combo versionCombo;
|
||||
|
||||
public static final String TOS_VERSION_FILTER = "TOS_VERSION_FILTER"; //$NON-NLS-1$
|
||||
|
||||
private List<Category> fCategorys = new ArrayList<Category>();
|
||||
|
||||
private List<VersionRevision> fVersionRevisions = new ArrayList<VersionRevision>();
|
||||
|
||||
private List<ComponentExtension> compatible;
|
||||
|
||||
public ScrolledComposite scrolledCompositeFileViewer;
|
||||
|
||||
private ImportExchangeProperty downloadproperty;
|
||||
|
||||
private String selectFile;
|
||||
|
||||
private String progressBarMessage;
|
||||
|
||||
private URL url;
|
||||
|
||||
private File tempFile;
|
||||
|
||||
public Table table;
|
||||
|
||||
public String getSelectFile() {
|
||||
return selectFile;
|
||||
}
|
||||
|
||||
public void setSelectFile(String selectFile) {
|
||||
this.selectFile = selectFile;
|
||||
}
|
||||
|
||||
protected ImportExchangeDialog(Shell shell) {
|
||||
super(shell);
|
||||
this.setShellStyle(this.getShellStyle() | SWT.MIN | SWT.MAX | SWT.RESIZE);
|
||||
// init
|
||||
Display.getDefault().syncExec(new Runnable() {
|
||||
|
||||
public void run() {
|
||||
fCategorys.clear();
|
||||
fCategorys = ExchangeWebService.searchCategoryExtensionJSONArray(ExchangeUtils.TYPEEXTENSION);
|
||||
fVersionRevisions.clear();
|
||||
fVersionRevisions = ExchangeWebService.searchVersionRevisionJSONArray(ExchangeUtils.TYPEEXTENSION);
|
||||
}
|
||||
@@ -125,18 +132,25 @@ public class ImportExchangeDialog extends Dialog {
|
||||
layout.marginWidth = 0;
|
||||
exchangeDialogCom.setLayout(layout);
|
||||
GridData gridData = new GridData(GridData.FILL_BOTH);
|
||||
|
||||
exchangeDialogCom.setLayoutData(gridData);
|
||||
new ImportCompatibleEcoComponentsComposite(exchangeDialogCom, exchangeDialogCom.getShell(), false);
|
||||
|
||||
ImportCompatibleEcoComponentsComposite eco = new ImportCompatibleEcoComponentsComposite(exchangeDialogCom,
|
||||
exchangeDialogCom.getShell(), false);
|
||||
|
||||
return parent;
|
||||
|
||||
}
|
||||
|
||||
protected void createButtonsForButtonBar(Composite parent) {
|
||||
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.FINISH_LABEL, true);
|
||||
createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void okPressed() {
|
||||
|
||||
IPath tempPath = new Path(System.getProperty("user.dir")).append("temp"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
File pathFile = tempPath.toFile();
|
||||
if (downloadproperty.getFileName() == null || downloadproperty.getFileName() == null) {
|
||||
@@ -146,10 +160,12 @@ public class ImportExchangeDialog extends Dialog {
|
||||
box.open();
|
||||
return;
|
||||
}
|
||||
|
||||
tempFile = new File(pathFile, downloadproperty.getFileName());
|
||||
try {
|
||||
url = new URL(downloadproperty.getDownloadUrl());
|
||||
} catch (MalformedURLException e1) {
|
||||
// e1.printStackTrace();
|
||||
ExceptionHandler.process(e1);
|
||||
}
|
||||
if (!pathFile.exists()) {
|
||||
@@ -184,6 +200,7 @@ public class ImportExchangeDialog extends Dialog {
|
||||
}
|
||||
|
||||
selectFile = tempFile.toString();
|
||||
|
||||
super.okPressed();
|
||||
}
|
||||
|
||||
@@ -193,7 +210,9 @@ public class ImportExchangeDialog extends Dialog {
|
||||
*/
|
||||
class ImportCompatibleEcoComponentsComposite extends Composite {
|
||||
|
||||
private static final int HEIGHT = 350;
|
||||
private static final int HEIGHT = 300;
|
||||
|
||||
private static final int WIDTH = 500;
|
||||
|
||||
public ImportCompatibleEcoComponentsComposite(Composite parent, Shell shell, boolean init) {
|
||||
super(parent, SWT.NONE);
|
||||
@@ -201,13 +220,16 @@ public class ImportExchangeDialog extends Dialog {
|
||||
}
|
||||
|
||||
public void createControls(Composite parent) {
|
||||
setLayout(new GridLayout());
|
||||
setLayout(clearGridLayoutSpace(new GridLayout(1, false)));
|
||||
setLayoutData(new GridData(GridData.FILL_BOTH));
|
||||
creatOptions(parent);
|
||||
|
||||
Composite tableComposite = new Composite(parent, SWT.NONE);
|
||||
tableComposite.setLayout(new GridLayout());
|
||||
|
||||
GridData layoutData = new GridData(GridData.FILL_BOTH);
|
||||
// layoutData.widthHint = WIDTH;
|
||||
// layoutData.minimumWidth = WIDTH;
|
||||
layoutData.heightHint = HEIGHT;
|
||||
layoutData.minimumHeight = HEIGHT;
|
||||
tableComposite.setLayoutData(layoutData);
|
||||
@@ -276,19 +298,98 @@ public class ImportExchangeDialog extends Dialog {
|
||||
layout.marginWidth = 5;
|
||||
group.setLayout(layout);
|
||||
group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||
// Category
|
||||
creatCategory(group);
|
||||
category = categoryCombo.getText();
|
||||
// Tos Version
|
||||
|
||||
String currentVersion = ExchangePlugin.getDefault().getPreferenceStore().getString("TOS_IMPORT_VERSION_FILTER");//$NON-NLS-1$
|
||||
currentVersion = ExchangeUtils.getMainVersion(currentVersion);
|
||||
final String temVersion = currentVersion;
|
||||
|
||||
jobButton = new Button(group, SWT.RADIO);
|
||||
jobButton.setText(Messages.getString("ImportExchangeDialog.JOB_BUTTON")); //$NON-NLS-1$
|
||||
jobButton.addSelectionListener(new SelectionAdapter() {
|
||||
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
if (jobButton.getSelection() == true) {
|
||||
type = "7"; //$NON-NLS-1$
|
||||
if (version == null) {
|
||||
if (versionCombo.getText() != null) {
|
||||
version = versionCombo.getText();
|
||||
} else {
|
||||
version = temVersion;
|
||||
}
|
||||
}
|
||||
progressBarMessage = Messages.getString("ImportExchangeDialog.DOWNLOAD_JOB"); //$NON-NLS-1$
|
||||
findChoiceExchange();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
templatesButton = new Button(group, SWT.RADIO);
|
||||
templatesButton.setText(Messages.getString("ImportExchangeDialog.TEMPLATES_BUTTON")); //$NON-NLS-1$
|
||||
templatesButton.addSelectionListener(new SelectionAdapter() {
|
||||
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
if (templatesButton.getSelection() == true) {
|
||||
type = "8"; //$NON-NLS-1$
|
||||
if (version == null) {
|
||||
if (versionCombo.getText() != null) {
|
||||
version = versionCombo.getText();
|
||||
} else {
|
||||
version = temVersion;
|
||||
}
|
||||
}
|
||||
progressBarMessage = Messages.getString("ImportExchangeDialog.TEMPLATES_PROGRESSBAR"); //$NON-NLS-1$
|
||||
findChoiceExchange();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
routinesButton = new Button(group, SWT.RADIO);
|
||||
routinesButton.setText(Messages.getString("ImportExchangeDialog.ROUTINES_BUTTON")); //$NON-NLS-1$
|
||||
routinesButton.addSelectionListener(new SelectionAdapter() {
|
||||
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
if (routinesButton.getSelection() == true) {
|
||||
type = "9"; //$NON-NLS-1$
|
||||
if (version == null) {
|
||||
if (versionCombo.getText() != null) {
|
||||
version = versionCombo.getText();
|
||||
} else {
|
||||
version = temVersion;
|
||||
}
|
||||
}
|
||||
progressBarMessage = Messages.getString("ImportExchangeDialog.ROUTINES_PROGRESSBAR"); //$NON-NLS-1$
|
||||
findChoiceExchange();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
creatTosVersionFilter(group, true);
|
||||
version = versionCombo.getText();
|
||||
// Refresh
|
||||
Button refresh = new Button(group, SWT.PUSH);
|
||||
refresh = new Button(group, SWT.PUSH);
|
||||
refresh.setImage(ImageProvider.getImage(EImage.REFRESH_ICON));
|
||||
refresh.setToolTipText(Messages.getString("ImportExchangeDialog.REFRESH_BUTTON"));//$NON-NLS-1$
|
||||
//refresh.setText(Messages.getString("ImportExchangeDialog.REFRESH_BUTTON")); //$NON-NLS-1$
|
||||
refresh.addSelectionListener(new SelectionAdapter() {
|
||||
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
if (version == null || type == null) {
|
||||
MessageBox box = new MessageBox(Display.getCurrent().getActiveShell(), SWT.ICON_WARNING | SWT.OK);
|
||||
box.setText(Messages.getString("ImportExchangeDialog.WARNING")); //$NON-NLS-1$
|
||||
box.setMessage(Messages.getString("ImportExchangeDialog.NOT_SELECT_BUTTON")); //$NON-NLS-1$
|
||||
box.open();
|
||||
return;
|
||||
}
|
||||
if (type != null && !jobButton.getSelection() && !templatesButton.getSelection()
|
||||
&& !routinesButton.getSelection()) {
|
||||
if (type == "7") { //$NON-NLS-1$
|
||||
jobButton.setSelection(true);
|
||||
} else if (type == "8") { //$NON-NLS-1$
|
||||
templatesButton.setSelection(true);
|
||||
} else if (type == "9") { //$NON-NLS-1$
|
||||
routinesButton.setSelection(true);
|
||||
}
|
||||
}
|
||||
progressBarMessage = Messages.getString("ImportExchangeDialog.REFRESHING_PROGRESSBAR"); //$NON-NLS-1$
|
||||
findChoiceExchange();
|
||||
}
|
||||
@@ -297,46 +398,12 @@ public class ImportExchangeDialog extends Dialog {
|
||||
|
||||
}
|
||||
|
||||
public void creatCategory(Composite parent) {
|
||||
Composite categoryComposite = new Composite(parent, SWT.NONE);
|
||||
categoryComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||
categoryComposite.setLayout(new GridLayout(2, false));
|
||||
Label categoryLabel = new Label(categoryComposite, SWT.NONE);
|
||||
categoryLabel.setText("Category");
|
||||
GridData gridData = new GridData(SWT.Resize);
|
||||
gridData.widthHint = 160;
|
||||
categoryCombo = new Combo(categoryComposite, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.RESIZE);
|
||||
categoryCombo.setLayoutData(gridData);
|
||||
initCategoryCombo();
|
||||
categoryCombo.addSelectionListener(new SelectionListener() {
|
||||
|
||||
public void widgetDefaultSelected(SelectionEvent e) {
|
||||
widgetSelected(e);
|
||||
}
|
||||
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
progressBarMessage = Messages.getString("ImportExchangeDialog.download.extensions"); //$NON-NLS-1$
|
||||
findChoiceExchange();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void initCategoryCombo() {
|
||||
if (categoryCombo.getItemCount() > 0) {
|
||||
return;
|
||||
}
|
||||
Iterator<Category> cListIterator = fCategorys.iterator();
|
||||
while (cListIterator.hasNext()) {
|
||||
Category category = cListIterator.next();
|
||||
// now hide the Category : Component ,Hadoop Configuration
|
||||
if ("Component".equals(category.getCategoryName()) || "Hadoop Configuration".equals(category.getCategoryName())) {
|
||||
cListIterator.remove();
|
||||
continue;
|
||||
}
|
||||
categoryCombo.add(category.getCategoryName());
|
||||
}
|
||||
categoryCombo.select(0);
|
||||
categoryCombo.pack();
|
||||
public GridLayout clearGridLayoutSpace(GridLayout layout) {
|
||||
layout.horizontalSpacing = 0;
|
||||
layout.verticalSpacing = 0;
|
||||
layout.marginWidth = 0;
|
||||
layout.marginHeight = 0;
|
||||
return layout;
|
||||
}
|
||||
|
||||
public void creatTosVersionFilter(Composite parent, boolean isInitTosVersion) {
|
||||
@@ -361,13 +428,7 @@ public class ImportExchangeDialog extends Dialog {
|
||||
}
|
||||
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
Combo comboControl = (Combo) e.getSource();
|
||||
String value = comboControl.getText();
|
||||
IPreferenceStore preferenceStore = ExchangePlugin.getDefault().getPreferenceStore();
|
||||
preferenceStore.setValue("TOS_IMPORT_VERSION_FILTER", value);
|
||||
version = value;
|
||||
progressBarMessage = Messages.getString("ImportExchangeDialog.download.extensions"); //$NON-NLS-1$
|
||||
findChoiceExchange();
|
||||
onVersionFilterChanged(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -378,6 +439,7 @@ public class ImportExchangeDialog extends Dialog {
|
||||
}
|
||||
String currentVersion = ExchangePlugin.getDefault().getPreferenceStore().getString(TOS_VERSION_FILTER);
|
||||
currentVersion = ExchangeUtils.getMainVersion(currentVersion);
|
||||
|
||||
if (fVersionRevisions != null) {
|
||||
String versions[] = ExchangeUtils.getVersionList(fVersionRevisions);
|
||||
int stringIndex = 0;
|
||||
@@ -390,6 +452,35 @@ public class ImportExchangeDialog extends Dialog {
|
||||
versionCombo.select(stringIndex);
|
||||
versionCombo.pack();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onVersionFilterChanged(SelectionEvent e) {
|
||||
if (type == null) {
|
||||
MessageBox box = new MessageBox(Display.getCurrent().getActiveShell(), SWT.ICON_WARNING | SWT.OK);
|
||||
box.setText(Messages.getString("ImportExchangeDialog.WARNING")); //$NON-NLS-1$
|
||||
box.setMessage("Please choose Job/Templates/Routines first!"); //$NON-NLS-1$
|
||||
version = versionCombo.getText();
|
||||
box.open();
|
||||
return;
|
||||
}
|
||||
Combo comboControl = (Combo) e.getSource();
|
||||
String value = comboControl.getText();
|
||||
IPreferenceStore preferenceStore = ExchangePlugin.getDefault().getPreferenceStore();
|
||||
preferenceStore.setValue("TOS_IMPORT_VERSION_FILTER", value);//$NON-NLS-1$
|
||||
version = value;
|
||||
if (type != null && !jobButton.getSelection() && !templatesButton.getSelection() && !routinesButton.getSelection()) {
|
||||
if (type == "7") { //$NON-NLS-1$
|
||||
jobButton.setSelection(true);
|
||||
} else if (type == "8") { //$NON-NLS-1$
|
||||
templatesButton.setSelection(true);
|
||||
} else if (type == "9") { //$NON-NLS-1$
|
||||
routinesButton.setSelection(true);
|
||||
}
|
||||
}
|
||||
progressBarMessage = Messages.getString("ImportExchangeDialog.download.components"); //$NON-NLS-1$
|
||||
findChoiceExchange();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -406,9 +497,11 @@ public class ImportExchangeDialog extends Dialog {
|
||||
Display.getDefault().syncExec(new Runnable() {
|
||||
|
||||
public void run() {
|
||||
if (version.equals("") || version == null) {
|
||||
version = "4.2.1";
|
||||
}
|
||||
compatible = ComponentSearcher.getImportComponentExtensions(version, ExchangeUtils.getCurrentLanguage(),
|
||||
categoryCombo.getSelectionIndex() >= 0 ? fCategorys.get(categoryCombo.getSelectionIndex())
|
||||
.getCategoryId() : "");
|
||||
type);
|
||||
updateTable(compatible);
|
||||
}
|
||||
});
|
||||
@@ -442,15 +535,20 @@ public class ImportExchangeDialog extends Dialog {
|
||||
return;
|
||||
}
|
||||
table.setRedraw(false);
|
||||
|
||||
for (final ComponentExtension object : extensions) {
|
||||
final TableItem tableItem = new TableItem(table, SWT.NONE);
|
||||
tableItem.setData(object);
|
||||
|
||||
//
|
||||
tableItem.setText(0, object.getLabel());
|
||||
tableItem.setText(1, object.getAuthor());
|
||||
tableItem.setText(2, object.getVersionExtension());
|
||||
tableItem.setText(3, object.getDescription());
|
||||
|
||||
}
|
||||
table.setRedraw(true);
|
||||
|
||||
}
|
||||
|
||||
private void removeItemElements(List<ComponentExtension> objects) {
|
||||
@@ -469,11 +567,4 @@ public class ImportExchangeDialog extends Dialog {
|
||||
item.dispose();
|
||||
}
|
||||
|
||||
public String getSelectFile() {
|
||||
return selectFile;
|
||||
}
|
||||
|
||||
public void setSelectFile(String selectFile) {
|
||||
this.selectFile = selectFile;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ import org.talend.commons.utils.StringUtils;
|
||||
import org.talend.commons.utils.VersionUtils;
|
||||
import org.talend.core.language.ECodeLanguage;
|
||||
import org.talend.core.language.LanguageManager;
|
||||
import org.talend.core.model.components.ComponentPaletteUtilities;
|
||||
import org.talend.core.model.components.ComponentUtilities;
|
||||
import org.talend.core.model.components.IComponentsFactory;
|
||||
import org.talend.core.model.general.Project;
|
||||
import org.talend.designer.components.exchange.ExchangePlugin;
|
||||
@@ -202,7 +202,7 @@ public class ExchangeUtils {
|
||||
* @return
|
||||
*/
|
||||
public static File getComponentFolder(String componentfolder) {
|
||||
URL url = FileLocator.find(ExchangePlugin.getDefault().getBundle(), new Path(componentfolder), null);
|
||||
URL url = FileLocator.find(ExchangePlugin.getDefault().getBundle(), new Path(componentfolder), null); //$NON-NLS-1$
|
||||
try {
|
||||
URL fileUrl = FileLocator.toFileURL(url);
|
||||
return new File(fileUrl.getPath());
|
||||
@@ -233,7 +233,7 @@ public class ExchangeUtils {
|
||||
// update the palette view, the position of the new component is
|
||||
// determined by the FAMILY value in the
|
||||
// component's property file
|
||||
ComponentPaletteUtilities.updatePalette();
|
||||
ComponentUtilities.updatePalette();
|
||||
}
|
||||
|
||||
public static void deleteComponent(ComponentExtension component) {
|
||||
@@ -358,7 +358,6 @@ public class ExchangeUtils {
|
||||
List<String> versions = new ArrayList<String>(versionMap.keySet());
|
||||
Collections.sort(versions, new Comparator<String>() {
|
||||
|
||||
@Override
|
||||
public int compare(String o1, String o2) {
|
||||
Version ver1 = new Version(o1);
|
||||
Version ver2 = new Version(o2);
|
||||
@@ -375,7 +374,7 @@ public class ExchangeUtils {
|
||||
|
||||
public static List<RevisionInfo> getRevisionList(String version, int language, String type) throws Exception {
|
||||
StringBuffer url = new StringBuffer();
|
||||
url.append(REVISION_LIST_URL).append("?categories=").append(type).append("&version="); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
url.append(REVISION_LIST_URL).append("?categories=").append(5).append(",").append(type).append("&version="); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
String[] branch = getBranch(version);
|
||||
url.append(StringUtils.join(branch, ",")); //$NON-NLS-1$
|
||||
String jsonContent = sendGetRequest(url.toString());
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Components Libs Plug-in
|
||||
Bundle-Name: Libs Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.components.libs
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Version: 1.0.0
|
||||
Require-Bundle: org.eclipse.core.runtime
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-RequiredExecutionEnvironment: J2SE-1.5
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="org.talend.designer.components.libs" default="process" basedir=".">
|
||||
|
||||
<property name="component.plugin.home" value="../../../org.talend.designer.components.bigdata/components" />
|
||||
<!-- #################################################### -->
|
||||
|
||||
<!-- modification 1: config -->
|
||||
<property name="jar.name" value="GoogleStorageUtils.jar" />
|
||||
<property name="component.name" value="tGSPut" />
|
||||
<property name="author.name" value="jzhao" />
|
||||
|
||||
<!-- modification 2: compile classpath -->
|
||||
<path id="compile.classpath">
|
||||
<pathelement location="${component.plugin.home}/tBigQueryBulkExec/jets3t-0.9.0.jar" />
|
||||
</path>
|
||||
|
||||
<!-- #################################################### -->
|
||||
|
||||
|
||||
<!-- sourcecode and final jar path -->
|
||||
<property name="source.home" value="." />
|
||||
<property name="jar.home" value="${component.plugin.home}/${component.name}/${jar.name}" />
|
||||
|
||||
<!-- temp dir for clasee files -->
|
||||
<property name="build.dir" value="../../build" />
|
||||
|
||||
<!-- compile option -->
|
||||
<property name="compile.debug" value="true" />
|
||||
<property name="compile.deprecation" value="false" />
|
||||
<property name="compile.optimize" value="true" />
|
||||
|
||||
|
||||
<target name="process" description="prepare a temp dir">
|
||||
<antcall target="prepare" />
|
||||
<antcall target="compile" />
|
||||
<antcall target="clean" />
|
||||
</target>
|
||||
|
||||
<target name="prepare" description="prepare a temp dir">
|
||||
<delete dir="${build.dir}" />
|
||||
<mkdir dir="${build.dir}" />
|
||||
<mkdir dir="${build.dir}/classes" />
|
||||
</target>
|
||||
|
||||
<target name="compile" description="Compile Java sources">
|
||||
|
||||
<!-- compile -->
|
||||
<javac srcdir="${source.home}" destdir="${build.dir}/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}">
|
||||
<classpath refid="compile.classpath" />
|
||||
</javac>
|
||||
|
||||
<!-- include source code -->
|
||||
<copy todir="${build.dir}/classes">
|
||||
<fileset dir="${source.home}">
|
||||
<exclude name="build.xml" />
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
<!-- make jar -->
|
||||
<tstamp>
|
||||
<format property="date" pattern="yyyy-MM-dd HH:mm:ss" />
|
||||
</tstamp>
|
||||
|
||||
<jar destfile="${build.dir}/${jar.name}" basedir="${build.dir}/classes">
|
||||
<manifest>
|
||||
<!-- who -->
|
||||
<attribute name="Built-By" value="${author.name}" />
|
||||
<!-- when -->
|
||||
<attribute name="Built-Date" value="${date}"/>
|
||||
<!-- JDK version -->
|
||||
<attribute name="Created-By" value="${java.version} (${java.vendor})" />
|
||||
<!-- Information about the program itself -->
|
||||
<attribute name="Implementation-Vendor" value="Talend SA" />
|
||||
<attribute name="Implementation-Title" value="${jar.name}" />
|
||||
<attribute name="Implementation-Version" value="1.0" />
|
||||
</manifest>
|
||||
</jar>
|
||||
|
||||
<!-- move jar -->
|
||||
<move file="${build.dir}/${jar.name}" tofile="${jar.home}" />
|
||||
|
||||
</target>
|
||||
|
||||
<target name="clean" description="clean the temp dir">
|
||||
<delete dir="${build.dir}" />
|
||||
<mkdir dir="${build.dir}" />
|
||||
</target>
|
||||
</project>
|
||||
@@ -1,127 +0,0 @@
|
||||
package org.talend.gs.util;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.jets3t.service.model.GSObject;
|
||||
import org.jets3t.service.utils.Mimetypes;
|
||||
|
||||
public class GSObjectUtil {
|
||||
|
||||
public List<GSObject> genGSObjectList(List<GSObject> objects, File file,
|
||||
String keyParent, boolean isGenFileObject, boolean isGenFolderObject)
|
||||
throws NoSuchAlgorithmException, IOException {
|
||||
if (file.isDirectory()) {
|
||||
if (keyParent != null && !"".equals(keyParent)) {
|
||||
if (keyParent.trim().lastIndexOf("/") != keyParent.trim()
|
||||
.length() - 1) {
|
||||
keyParent = keyParent + "/";
|
||||
}
|
||||
if(isGenFolderObject){
|
||||
objects.add(new GSObject(keyParent));
|
||||
}
|
||||
}
|
||||
File[] files = file.listFiles();
|
||||
for (File f : files) {
|
||||
if (f.isDirectory()) {
|
||||
objects = genGSObjectList(objects, f,
|
||||
keyParent + f.getName() + "/", isGenFileObject,
|
||||
isGenFolderObject);
|
||||
} else {
|
||||
objects = genGSObjectList(objects, f,
|
||||
keyParent + f.getName(), isGenFileObject,
|
||||
isGenFolderObject);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (isGenFileObject) {
|
||||
GSObject obj = new GSObject(file);
|
||||
obj.setKey(keyParent);
|
||||
objects.add(obj);
|
||||
}
|
||||
}
|
||||
return objects;
|
||||
}
|
||||
|
||||
public java.util.Map<String,String> genFileFilterList(java.util.List<java.util.Map<String,String>> list,String localdir,String remotedir){
|
||||
if (remotedir != null && !"".equals(remotedir)) {
|
||||
if (remotedir.trim().lastIndexOf("/") != remotedir.trim()
|
||||
.length() - 1) {
|
||||
remotedir = remotedir + "/";
|
||||
}
|
||||
}
|
||||
java.util.Map<String,String> fileMap=new HashMap<String,String>();
|
||||
for (java.util.Map<String, String> map : list) {
|
||||
java.util.Set<String> keySet = map.keySet();
|
||||
for (String key : keySet){
|
||||
String tempdir = localdir;
|
||||
String filemask = key;
|
||||
String dir = null;
|
||||
String mask = filemask.replaceAll("\\\\", "/") ;
|
||||
int i = mask.lastIndexOf('/');
|
||||
if (i!=-1){
|
||||
dir = mask.substring(0, i);
|
||||
mask = mask.substring(i+1);
|
||||
}
|
||||
if (dir!=null && !"".equals(dir)) tempdir = tempdir + "/" + dir;
|
||||
mask = mask.replaceAll("\\.", "\\\\.").replaceAll("\\*", ".*");
|
||||
final String finalMask = mask;
|
||||
java.io.File[] listings = null;
|
||||
java.io.File file = new java.io.File(tempdir);
|
||||
if (file.isDirectory()) {
|
||||
listings = file.listFiles(new java.io.FileFilter() {
|
||||
public boolean accept(java.io.File pathname) {
|
||||
boolean result = false;
|
||||
if (pathname != null && pathname.isFile()) {
|
||||
result = java.util.regex.Pattern.compile(finalMask).matcher(pathname.getName()).find();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
});
|
||||
}
|
||||
if(listings == null || listings.length <= 0){
|
||||
System.err.println("No match file("+key+") exist!");
|
||||
}else{
|
||||
String localFilePath = "";
|
||||
String newObjectKey = "";
|
||||
for (int m = 0; m < listings.length; m++){
|
||||
if (listings[m].getName().matches(mask)){
|
||||
localFilePath = listings[m].getAbsolutePath();
|
||||
if(map.get(key)!=null && map.get(key).length()>0){
|
||||
newObjectKey = remotedir+map.get(key);
|
||||
}else{
|
||||
newObjectKey = remotedir+listings[m].getName();
|
||||
}
|
||||
fileMap.put(localFilePath, newObjectKey);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return fileMap;
|
||||
}
|
||||
|
||||
public List<GSObject> genObjectByFileMap(java.util.Map<String,String> fileMap) throws Exception, IOException{
|
||||
Set<String> localFiles=fileMap.keySet();
|
||||
List<GSObject> objects=new ArrayList<GSObject>();
|
||||
for(String localFilePath:localFiles){
|
||||
GSObject object=new GSObject(new File(localFilePath));
|
||||
object.setKey(fileMap.get(localFilePath));
|
||||
objects.add(object);
|
||||
}
|
||||
return objects;
|
||||
}
|
||||
|
||||
public void initMimeTypes() throws IOException {
|
||||
InputStream mimetypesFile = this.getClass().getResourceAsStream(
|
||||
"/resource/mime.types");
|
||||
Mimetypes.getInstance().loadAndReplaceMimetypes(mimetypesFile);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,9 +7,9 @@ public class BulkloadClient {
|
||||
|
||||
private String url;
|
||||
|
||||
private String username;
|
||||
private String username;
|
||||
|
||||
private String password;
|
||||
private String password;
|
||||
|
||||
private String universe;
|
||||
|
||||
@@ -19,23 +19,21 @@ public class BulkloadClient {
|
||||
|
||||
private String dataModel;
|
||||
|
||||
private String transactionId;
|
||||
|
||||
private BulkloadOptions options = new BulkloadOptions();
|
||||
|
||||
private static final AtomicInteger startedBulkloadCount = new AtomicInteger(0);
|
||||
|
||||
public BulkloadClient(String url, String username, String password, String universe, String cluster, String concept, String dataModel) {
|
||||
this.url = url;
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
this.universe = universe;
|
||||
this.cluster = cluster;
|
||||
this.concept = concept;
|
||||
this.dataModel = dataModel;
|
||||
}
|
||||
public BulkloadClient(String url, String username, String password, String universe, String cluster, String concept, String dataModel) {
|
||||
this.url=url;
|
||||
this.username=username;
|
||||
this.password=password;
|
||||
this.universe=universe;
|
||||
this.cluster=cluster;
|
||||
this.concept=concept;
|
||||
this.dataModel = dataModel;
|
||||
}
|
||||
|
||||
public void startThreadCount() {
|
||||
public void startThreadCount(){
|
||||
// Kept for compatibility with tMDMBulkload.
|
||||
}
|
||||
|
||||
@@ -51,98 +49,89 @@ public class BulkloadClient {
|
||||
}
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getUniverse() {
|
||||
return universe;
|
||||
}
|
||||
public String getUniverse() {
|
||||
return universe;
|
||||
}
|
||||
|
||||
public void setUniverse(String universe) {
|
||||
this.universe = universe;
|
||||
}
|
||||
public void setUniverse(String universe) {
|
||||
this.universe = universe;
|
||||
}
|
||||
|
||||
public String getCluster() {
|
||||
return cluster;
|
||||
}
|
||||
public String getCluster() {
|
||||
return cluster;
|
||||
}
|
||||
|
||||
public void setCluster(String cluster) {
|
||||
this.cluster = cluster;
|
||||
}
|
||||
public void setCluster(String cluster) {
|
||||
this.cluster = cluster;
|
||||
}
|
||||
|
||||
public String getConcept() {
|
||||
return concept;
|
||||
}
|
||||
public String getConcept() {
|
||||
return concept;
|
||||
}
|
||||
|
||||
public void setConcept(String concept) {
|
||||
this.concept = concept;
|
||||
}
|
||||
public void setConcept(String concept) {
|
||||
this.concept = concept;
|
||||
}
|
||||
|
||||
public String getDatamodel() {
|
||||
return dataModel;
|
||||
}
|
||||
public String getDatamodel() {
|
||||
return dataModel;
|
||||
}
|
||||
|
||||
public void setDatamodel(String dataModel) {
|
||||
this.dataModel = dataModel;
|
||||
}
|
||||
public void setDatamodel(String dataModel) {
|
||||
this.dataModel = dataModel;
|
||||
}
|
||||
|
||||
public BulkloadOptions getOptions() {
|
||||
return options;
|
||||
}
|
||||
public BulkloadOptions getOptions() {
|
||||
return options;
|
||||
}
|
||||
|
||||
public void setOptions(BulkloadOptions options) {
|
||||
this.options = options;
|
||||
}
|
||||
|
||||
public String getTransactionId() {
|
||||
return transactionId;
|
||||
}
|
||||
|
||||
public void setTransactionId(String transactionId) {
|
||||
this.transactionId = transactionId;
|
||||
}
|
||||
public void setOptions(BulkloadOptions options) {
|
||||
this.options = options;
|
||||
}
|
||||
|
||||
/**
|
||||
* load from a huge xml string
|
||||
*
|
||||
* @param xmlString A full xml document.
|
||||
* load from a huge xml string
|
||||
* @param xmlString A full xml document.
|
||||
* @throws Exception Thrown in case of bulk load error.
|
||||
*/
|
||||
public void load(String xmlString) throws Exception {
|
||||
load(new ByteArrayInputStream(xmlString.getBytes("UTF-8")));
|
||||
}
|
||||
*/
|
||||
public void load(String xmlString) throws Exception {
|
||||
load(new ByteArrayInputStream(xmlString.getBytes("UTF-8")));
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Loads XML documents in MDM using an InputStream. All documents should follow each other.
|
||||
* For instance this InputStream can be used with this method.
|
||||
* </p>
|
||||
* <p/>
|
||||
*
|
||||
* <code>
|
||||
* InputStream is = new ByteArrayInputStream("<doc></doc><doc></doc><doc></doc>".getBytes());
|
||||
* </code>
|
||||
* <p/>
|
||||
*
|
||||
* <p>
|
||||
* This method blocks until all documents in <code>xmlDocuments</code> are read. For non blocking use cases
|
||||
* see {@link #load()}.
|
||||
@@ -161,7 +150,6 @@ public class BulkloadClient {
|
||||
xmlDocuments,
|
||||
username,
|
||||
password,
|
||||
transactionId,
|
||||
universe);
|
||||
}
|
||||
|
||||
@@ -170,18 +158,18 @@ public class BulkloadClient {
|
||||
* Loads XML documents in MDM using an InputStream created for the load. This method creates a {@link Thread} that
|
||||
* wait for {@link InputStreamMerger#push(java.io.InputStream)} to get called.
|
||||
* </p>
|
||||
* <p/>
|
||||
*
|
||||
* <code>
|
||||
* BulkloadClient client = ...<br/>
|
||||
* InputStreamMerger is = client.load();<br/>
|
||||
* for(...) {<br/>
|
||||
* is.push(new ByteArrayInputStream("...".getBytes());<br/>
|
||||
* is.push(new ByteArrayInputStream("...".getBytes());<br/>
|
||||
* }
|
||||
* </code>
|
||||
*
|
||||
* @return A {@link InputStreamMerger} that allow asynchronous push to bulkload client.
|
||||
* @throws Exception Thrown in case of communication error
|
||||
* @see InputStreamMerger
|
||||
* @return A {@link InputStreamMerger} that allow asynchronous push to bulkload client.
|
||||
*/
|
||||
public InputStreamMerger load() throws Exception {
|
||||
return BulkloadClientUtil.bulkload(url,
|
||||
@@ -192,7 +180,6 @@ public class BulkloadClient {
|
||||
options.isSmartpk(),
|
||||
username,
|
||||
password,
|
||||
transactionId,
|
||||
universe,
|
||||
startedBulkloadCount);
|
||||
}
|
||||
|
||||
@@ -20,17 +20,8 @@ import org.apache.commons.httpclient.params.HttpClientParams;
|
||||
*/
|
||||
public class BulkloadClientUtil {
|
||||
|
||||
public static void bulkload(String url,
|
||||
String cluster,
|
||||
String concept,
|
||||
String datamodel,
|
||||
boolean validate,
|
||||
boolean smartpk,
|
||||
InputStream itemdata,
|
||||
String username,
|
||||
String password,
|
||||
String transactionId,
|
||||
String universe) throws Exception {
|
||||
public static void bulkload(String url, String cluster, String concept, String datamodel, boolean validate, boolean smartpk, InputStream itemdata,
|
||||
String username, String password, String universe) throws Exception {
|
||||
HostConfiguration config = new HostConfiguration();
|
||||
URI uri = new URI(url, false, "UTF-8"); //$NON-NLS-1$
|
||||
config.setHost(uri);
|
||||
@@ -56,9 +47,6 @@ public class BulkloadClientUtil {
|
||||
try {
|
||||
// Configuration
|
||||
putMethod.setRequestHeader("Content-Type", "text/xml; charset=utf8"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
if (transactionId != null) {
|
||||
putMethod.setRequestHeader("transaction-id", transactionId); //$NON-NLS-1$
|
||||
}
|
||||
putMethod.setQueryString(parameters);
|
||||
putMethod.setContentChunked(true);
|
||||
// Set the content of the PUT request
|
||||
@@ -78,31 +66,10 @@ public class BulkloadClientUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public static InputStreamMerger bulkload(String url,
|
||||
String cluster,
|
||||
String concept,
|
||||
String dataModel,
|
||||
boolean validate,
|
||||
boolean smartPK,
|
||||
String username,
|
||||
String password,
|
||||
String transactionId,
|
||||
String universe,
|
||||
AtomicInteger startedBulkloadCount) {
|
||||
public static InputStreamMerger bulkload(String url, String cluster, String concept, String dataModel, boolean validate, boolean smartPK, String username, String password, String universe, AtomicInteger startedBulkloadCount) {
|
||||
InputStreamMerger merger = new InputStreamMerger();
|
||||
|
||||
Runnable loadRunnable = new AsyncLoadRunnable(url,
|
||||
cluster,
|
||||
concept,
|
||||
dataModel,
|
||||
validate,
|
||||
smartPK,
|
||||
merger,
|
||||
username,
|
||||
password,
|
||||
transactionId,
|
||||
universe,
|
||||
startedBulkloadCount);
|
||||
Runnable loadRunnable = new AsyncLoadRunnable(url, cluster, concept, dataModel, validate, smartPK, merger, username, password, universe, startedBulkloadCount);
|
||||
Thread loadThread = new Thread(loadRunnable);
|
||||
loadThread.start();
|
||||
|
||||
@@ -129,24 +96,11 @@ public class BulkloadClientUtil {
|
||||
|
||||
private final String password;
|
||||
|
||||
private final String transactionId;
|
||||
|
||||
private final String universe;
|
||||
|
||||
private final AtomicInteger startedBulkloadCount;
|
||||
|
||||
public AsyncLoadRunnable(String url,
|
||||
String cluster,
|
||||
String concept,
|
||||
String dataModel,
|
||||
boolean validate,
|
||||
boolean smartPK,
|
||||
InputStreamMerger inputStream,
|
||||
String userName,
|
||||
String password,
|
||||
String transactionId,
|
||||
String universe,
|
||||
AtomicInteger startedBulkloadCount) {
|
||||
public AsyncLoadRunnable(String url, String cluster, String concept, String dataModel, boolean validate, boolean smartPK, InputStreamMerger inputStream, String userName, String password, String universe, AtomicInteger startedBulkloadCount) {
|
||||
this.url = url;
|
||||
this.cluster = cluster;
|
||||
this.concept = concept;
|
||||
@@ -156,7 +110,6 @@ public class BulkloadClientUtil {
|
||||
this.inputStream = inputStream;
|
||||
this.userName = userName;
|
||||
this.password = password;
|
||||
this.transactionId = transactionId;
|
||||
this.universe = universe;
|
||||
this.startedBulkloadCount = startedBulkloadCount;
|
||||
}
|
||||
@@ -164,17 +117,7 @@ public class BulkloadClientUtil {
|
||||
public void run() {
|
||||
try {
|
||||
startedBulkloadCount.incrementAndGet();
|
||||
bulkload(url,
|
||||
cluster,
|
||||
concept,
|
||||
dataModel,
|
||||
validate,
|
||||
smartPK,
|
||||
inputStream,
|
||||
userName,
|
||||
password,
|
||||
transactionId,
|
||||
universe);
|
||||
bulkload(url, cluster, concept, dataModel, validate, smartPK, inputStream, userName, password, universe);
|
||||
} catch (Throwable e) {
|
||||
inputStream.reportFailure(e);
|
||||
} finally {
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="org.talend.designer.components.libs" default="process" basedir=".">
|
||||
|
||||
<property name="component.plugin.home" value="../../../org.talend.designer.components.localprovider/components" />
|
||||
|
||||
<!-- #################################################### -->
|
||||
|
||||
<!-- modification 1: config -->
|
||||
<property name="jar.name" value="mdm_transaction.jar" />
|
||||
<property name="component.name" value="tMDMConnection" />
|
||||
<property name="author.name" value="wliu" />
|
||||
|
||||
<!-- modification 2: compile classpath -->
|
||||
<path id="compile.classpath">
|
||||
<pathelement location="${component.plugin.home}/tMDMBulkLoad/commons-codec.jar" />
|
||||
<pathelement location="${component.plugin.home}/tMDMBulkLoad/commons-httpclient.jar" />
|
||||
<pathelement location="${component.plugin.home}/tMDMBulkLoad/commons-logging.jar" />
|
||||
</path>
|
||||
|
||||
<!-- #################################################### -->
|
||||
|
||||
|
||||
<!-- sourcecode and final jar path -->
|
||||
<property name="source.home" value="." />
|
||||
<property name="jar.home" value="${component.plugin.home}/${component.name}/${jar.name}" />
|
||||
|
||||
<!-- temp dir for clasee files -->
|
||||
<property name="build.dir" value="../../build" />
|
||||
|
||||
<!-- compile option -->
|
||||
<property name="compile.debug" value="true" />
|
||||
<property name="compile.deprecation" value="false" />
|
||||
<property name="compile.optimize" value="true" />
|
||||
|
||||
|
||||
<target name="process" description="prepare a temp dir">
|
||||
<antcall target="prepare" />
|
||||
<antcall target="compile" />
|
||||
<antcall target="clean" />
|
||||
</target>
|
||||
|
||||
<target name="prepare" description="prepare a temp dir">
|
||||
<delete dir="${build.dir}" />
|
||||
<mkdir dir="${build.dir}" />
|
||||
<mkdir dir="${build.dir}/classes" />
|
||||
</target>
|
||||
|
||||
<target name="compile" description="Compile Java sources">
|
||||
|
||||
<!-- compile -->
|
||||
<javac srcdir="${source.home}" destdir="${build.dir}/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}">
|
||||
<classpath refid="compile.classpath" />
|
||||
</javac>
|
||||
|
||||
<!-- include source code -->
|
||||
<copy todir="${build.dir}/classes">
|
||||
<fileset dir="${source.home}">
|
||||
<exclude name="build.xml" />
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
<!-- make jar -->
|
||||
<tstamp>
|
||||
<format property="date" pattern="yyyy-MM-dd HH:mm:ss" />
|
||||
</tstamp>
|
||||
|
||||
<jar destfile="${build.dir}/${jar.name}" basedir="${build.dir}/classes">
|
||||
<manifest>
|
||||
<!-- who -->
|
||||
<attribute name="Built-By" value="${author.name}" />
|
||||
<!-- when -->
|
||||
<attribute name="Built-Date" value="${date}"/>
|
||||
<!-- JDK version -->
|
||||
<attribute name="Created-By" value="${java.version} (${java.vendor})" />
|
||||
<!-- Information about the program itself -->
|
||||
<attribute name="Implementation-Vendor" value="Talend SA" />
|
||||
<attribute name="Implementation-Title" value="${jar.name}" />
|
||||
<attribute name="Implementation-Version" value="1.0" />
|
||||
</manifest>
|
||||
</jar>
|
||||
|
||||
<!-- move jar -->
|
||||
<move file="${build.dir}/${jar.name}" tofile="${jar.home}" />
|
||||
|
||||
</target>
|
||||
|
||||
<target name="clean" description="clean the temp dir">
|
||||
<delete dir="${build.dir}" />
|
||||
<mkdir dir="${build.dir}" />
|
||||
</target>
|
||||
</project>
|
||||
@@ -1,88 +0,0 @@
|
||||
package com.talend.mdm.transaction.client;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.commons.httpclient.HttpClient;
|
||||
import org.apache.commons.httpclient.HttpException;
|
||||
import org.apache.commons.httpclient.HttpMethod;
|
||||
import org.apache.commons.httpclient.UsernamePasswordCredentials;
|
||||
import org.apache.commons.httpclient.auth.AuthScope;
|
||||
import org.apache.commons.httpclient.methods.DeleteMethod;
|
||||
import org.apache.commons.httpclient.methods.PostMethod;
|
||||
|
||||
public class MDMTransaction {
|
||||
|
||||
private String url;
|
||||
private String id;
|
||||
private String username;
|
||||
private String password;
|
||||
|
||||
public boolean commit() throws IOException {
|
||||
HttpClient client = new HttpClient();
|
||||
client.getState().setCredentials(AuthScope.ANY,
|
||||
new UsernamePasswordCredentials(username, password));
|
||||
|
||||
HttpMethod method = new PostMethod(url + "/" + id);
|
||||
method.setDoAuthentication(true);
|
||||
try {
|
||||
client.executeMethod(method);
|
||||
} catch (HttpException e) {
|
||||
throw e;
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
} finally {
|
||||
method.releaseConnection();
|
||||
}
|
||||
|
||||
int statuscode = method.getStatusCode();
|
||||
if (statuscode >= 400) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean rollback() throws IOException {
|
||||
HttpClient client = new HttpClient();
|
||||
client.getState().setCredentials(AuthScope.ANY,
|
||||
new UsernamePasswordCredentials(username, password));
|
||||
|
||||
HttpMethod method = new DeleteMethod(url + "/" + id);
|
||||
method.setDoAuthentication(true);
|
||||
try {
|
||||
client.executeMethod(method);
|
||||
} catch (HttpException e) {
|
||||
throw e;
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
} finally {
|
||||
method.releaseConnection();
|
||||
}
|
||||
|
||||
int statuscode = method.getStatusCode();
|
||||
if (statuscode >= 400) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
package com.talend.mdm.transaction.client;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.commons.httpclient.HttpClient;
|
||||
import org.apache.commons.httpclient.HttpException;
|
||||
import org.apache.commons.httpclient.UsernamePasswordCredentials;
|
||||
import org.apache.commons.httpclient.auth.AuthScope;
|
||||
import org.apache.commons.httpclient.methods.PutMethod;
|
||||
|
||||
public class MDMTransactionClient {
|
||||
|
||||
public static MDMTransaction newTransaction(String url, String username, String password) throws IOException {
|
||||
HttpClient client = new HttpClient();
|
||||
client.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
|
||||
|
||||
PutMethod put = new PutMethod(url);
|
||||
put.setDoAuthentication(true);
|
||||
String tid = "";
|
||||
try {
|
||||
client.executeMethod(put);
|
||||
tid = put.getResponseBodyAsString();
|
||||
} catch (HttpException e) {
|
||||
throw e;
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
} finally {
|
||||
put.releaseConnection();
|
||||
}
|
||||
|
||||
MDMTransaction result = new MDMTransaction();
|
||||
result.setUrl(url);
|
||||
result.setId(tid);
|
||||
result.setUsername(username);
|
||||
result.setPassword(password);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static String getMDMTransactionURL(String url) {
|
||||
if(url == null || "".equals(url)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
int count = 3;
|
||||
int i=0;
|
||||
for(;i<url.length();i++) {
|
||||
char c = url.charAt(i);
|
||||
if('/' == c) {
|
||||
count--;
|
||||
}
|
||||
if(count == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
String result = url.substring(0, i);
|
||||
result += "/datamanager/services/transactions";
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
MDMTransaction mt = MDMTransactionClient.newTransaction("http://localhost:8080/datamanager/services/transactions", "administrator", "administrator");
|
||||
boolean commitresult = mt.commit();
|
||||
|
||||
MDMTransaction mt1 = MDMTransactionClient.newTransaction("http://localhost:8080/datamanager/services/transactions", "administrator", "administrator");
|
||||
boolean rollbackcommit = mt1.rollback();
|
||||
|
||||
System.out.println(commitresult);
|
||||
System.out.println(rollbackcommit);
|
||||
|
||||
String url = "http://localhost:8080/talend/TalendPort";
|
||||
String mdmurl = MDMTransactionClient.getMDMTransactionURL(url);
|
||||
System.out.println(mdmurl);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,18 +18,14 @@ public class MsmqUtil {
|
||||
private String msgContent;
|
||||
|
||||
boolean bTried = false;
|
||||
|
||||
|
||||
String ipAddr = "";
|
||||
|
||||
final String LOCALIP = "127.0.0.1";
|
||||
|
||||
public MsmqUtil() {
|
||||
try {
|
||||
java.net.InetAddress thisIp = java.net.InetAddress.getLocalHost();
|
||||
ipAddr = thisIp.getHostAddress();
|
||||
} catch (Exception ex1) {
|
||||
ex1.printStackTrace();
|
||||
}
|
||||
public MsmqUtil() throws Exception {
|
||||
java.net.InetAddress thisIp = java.net.InetAddress.getLocalHost();
|
||||
ipAddr = thisIp.getHostAddress();
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws java.lang.Exception {
|
||||
@@ -52,43 +48,29 @@ public class MsmqUtil {
|
||||
}
|
||||
|
||||
// message remain in queue
|
||||
public void peek() {
|
||||
try {
|
||||
checkOpen();
|
||||
System.out.println("peek");
|
||||
Message msg = msmqHandle.peek(2000); // timeout= 2000 ms
|
||||
System.out.println(" ==> message: " + msg.getBodyAsString());
|
||||
System.out.println(" label: " + msg.getLabel());
|
||||
} catch (MessageQueueException ex1) {
|
||||
System.out.println("Peek failure: " + ex1);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
public void peek() throws MessageQueueException, UnsupportedEncodingException {
|
||||
checkOpen();
|
||||
System.out.println("peek");
|
||||
Message msg = msmqHandle.peek(2000); // timeout= 2000 ms
|
||||
System.out.println(" ==> message: " + msg.getBodyAsString());
|
||||
System.out.println(" label: " + msg.getLabel());
|
||||
}
|
||||
|
||||
// close an open queue
|
||||
public void close() {
|
||||
try {
|
||||
checkOpen();
|
||||
msmqHandle.close();
|
||||
msmqHandle = null;
|
||||
} catch (MessageQueueException ex1) {
|
||||
System.out.println("close failure: " + ex1);
|
||||
}
|
||||
public void close() throws MessageQueueException {
|
||||
checkOpen();
|
||||
msmqHandle.close();
|
||||
msmqHandle = null;
|
||||
}
|
||||
|
||||
// delete the queue
|
||||
private void delete() {
|
||||
try {
|
||||
String fullname = getQueueFullName(".", queueName);
|
||||
ionic.Msmq.Queue.delete(fullname);
|
||||
} catch (MessageQueueException ex1) {
|
||||
System.out.println("Queue deletion failure: " + ex1);
|
||||
}
|
||||
private void delete() throws MessageQueueException {
|
||||
String fullname = getQueueFullName(".", queueName);
|
||||
ionic.Msmq.Queue.delete(fullname);
|
||||
}
|
||||
|
||||
// open the queue, if it not exists, and creating is required, try to create a queue with the name.
|
||||
public void open() {
|
||||
public void open() throws MessageQueueException {
|
||||
try {
|
||||
if (msmqHandle != null) {
|
||||
msmqHandle.close();
|
||||
@@ -98,45 +80,34 @@ public class MsmqUtil {
|
||||
msmqHandle = new Queue(fullname);
|
||||
// msmqHandle= new Queue(fullname, 0x02); // 0x02 == SEND only
|
||||
} catch (MessageQueueException ex1) {
|
||||
System.out.println("Queue open failure: " + ex1);
|
||||
|
||||
if (bTried) {
|
||||
System.out.println("Queue open failure: " + ex1);
|
||||
bTried = false;
|
||||
create();
|
||||
}else{
|
||||
throw ex1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void send() {
|
||||
try {
|
||||
checkOpen();
|
||||
// the transaction flag must agree with the transactional flavor of the queue.
|
||||
int transactionFlag = 0; // 0 = NO TRANSACTION, 1= MTS, 2= XA, 3= SINGLE_MESSAGE
|
||||
String mLabel = "inserted by " + this.getClass().getName() + ".java";
|
||||
String correlationID = "L:none";
|
||||
Message msg = new Message(msgContent, mLabel, correlationID);
|
||||
msmqHandle.send(msg);
|
||||
} catch (MessageQueueException ex1) {
|
||||
System.out.println("Send failure: " + ex1);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
public void send() throws MessageQueueException, UnsupportedEncodingException {
|
||||
checkOpen();
|
||||
// the transaction flag must agree with the transactional flavor of the queue.
|
||||
int transactionFlag = 0; // 0 = NO TRANSACTION, 1= MTS, 2= XA, 3= SINGLE_MESSAGE
|
||||
String mLabel = "inserted by " + this.getClass().getName() + ".java";
|
||||
String correlationID = "L:none";
|
||||
Message msg = new Message(msgContent, mLabel, correlationID);
|
||||
msmqHandle.send(msg);
|
||||
}
|
||||
|
||||
public String receive() {
|
||||
try {
|
||||
checkOpen();
|
||||
// System.out.println("receive");
|
||||
Message msg = msmqHandle.receive(2000); // timeout= 2000 ms
|
||||
// System.out.println(" ==> message: " + msg.getMessage());
|
||||
// System.out.println(" label: " + msg.getLabel());
|
||||
return msg.getBodyAsString();
|
||||
} catch (MessageQueueException ex1) {
|
||||
System.out.println("Receive failure: " + ex1);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
public String receive() throws MessageQueueException, UnsupportedEncodingException {
|
||||
checkOpen();
|
||||
// System.out.println("receive");
|
||||
Message msg = msmqHandle.receive(2000); // timeout= 2000 ms
|
||||
// System.out.println(" ==> message: " + msg.getMessage());
|
||||
// System.out.println(" label: " + msg.getLabel());
|
||||
return msg.getBodyAsString();
|
||||
}
|
||||
|
||||
private String getQueueFullName(String hostname, String queueShortName) {
|
||||
@@ -151,19 +122,15 @@ public class MsmqUtil {
|
||||
return "DIRECT=" + a1 + ":" + h1 + "\\private$\\" + queueShortName;
|
||||
}
|
||||
|
||||
private void create() {
|
||||
try {
|
||||
if (!(host == null || "".equals(host) || "localhost".equalsIgnoreCase(host) || host.equals(ipAddr) || LOCALIP
|
||||
.equals(host))) {
|
||||
throw new MessageQueueException("can only create queue locally", -1); // can only create locally.
|
||||
}
|
||||
String fullname = ".\\private$\\" + queueName;
|
||||
String qLabel = "Created by " + this.getClass().getName() + ".java";
|
||||
boolean transactional = false; // should the queue be transactional
|
||||
msmqHandle = Queue.create(fullname, qLabel, transactional);
|
||||
} catch (MessageQueueException ex1) {
|
||||
System.out.println("Queue creation failure: " + ex1);
|
||||
private void create() throws MessageQueueException {
|
||||
if (!(host == null || "".equals(host) || "localhost".equalsIgnoreCase(host) || host.equals(ipAddr) || LOCALIP
|
||||
.equals(host))) {
|
||||
throw new MessageQueueException("can only create queue locally", -1); // can only create locally.
|
||||
}
|
||||
String fullname = ".\\private$\\" + queueName;
|
||||
String qLabel = "Created by " + this.getClass().getName() + ".java";
|
||||
boolean transactional = false; // should the queue be transactional
|
||||
msmqHandle = Queue.create(fullname, qLabel, transactional);
|
||||
}
|
||||
|
||||
private void checkOpen() throws MessageQueueException {
|
||||
|
||||
@@ -102,6 +102,9 @@ public class palodata {
|
||||
csv.setQuoteChar('"');
|
||||
int iCoordElem = 0;
|
||||
while (csv.readNext()) {
|
||||
if(iCoordElem > lstDimensionElementArray.size()-1){
|
||||
break;
|
||||
}
|
||||
String strArrCoord[] = new String[iDimensionElementLength];
|
||||
for (int i = 0; i < iDimensionElementLength; i++) {
|
||||
strArrCoord[i] = (String) lstDimensionElementArray.get(iCoordElem++);
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
<project name="org.talend.designer.components.libs" default="process" basedir=".">
|
||||
|
||||
<property name="component.plugin.home" value="../../../org.talend.designer.components.localprovider/components" />
|
||||
<property name="csv.dir" value="../../../org.talend.libraries.csv/lib" />
|
||||
<property name="lib.dir" value="../../../org.talend.libraries.salesforce/lib" />
|
||||
|
||||
<!-- #################################################### -->
|
||||
|
||||
@@ -17,7 +15,7 @@
|
||||
<path id="compile.classpath">
|
||||
<pathelement location="${component.plugin.home}/tSalesforceBulkExec/partnerBulk.jar" />
|
||||
<pathelement location="${component.plugin.home}/tSalesforceBulkExec/wsc.jar" />
|
||||
<pathelement location="${csv.dir}/talendcsv.jar" />
|
||||
<pathelement location="${component.plugin.home}/tFileInputDelimited/talendcsv.jar" />
|
||||
</path>
|
||||
|
||||
<!-- #################################################### -->
|
||||
@@ -25,7 +23,7 @@
|
||||
|
||||
<!-- sourcecode and final jar path -->
|
||||
<property name="source.home" value="." />
|
||||
<property name="jar.home" value="${lib.dir}/${jar.name}" />
|
||||
<property name="jar.home" value="${component.plugin.home}/${component.name}/${jar.name}" />
|
||||
|
||||
<!-- temp dir for clasee files -->
|
||||
<property name="build.dir" value="../../build" />
|
||||
|
||||
@@ -103,10 +103,6 @@ public class SalesforceBulkAPI {
|
||||
this.connection = getBulkConnection(endpoint, username, password, apiVersion);
|
||||
}
|
||||
|
||||
public void login(String sessionID, String endpointURL) throws ConnectionException, AsyncApiException {
|
||||
this.connection = getBulkConnection(sessionID, endpointURL);
|
||||
}
|
||||
|
||||
private JobInfo job;
|
||||
|
||||
private com.talend.csv.CSVReader baseFileReader;
|
||||
@@ -220,21 +216,17 @@ public class SalesforceBulkAPI {
|
||||
// Creating the connection automatically handles login and stores
|
||||
// the session in partnerConfig
|
||||
new PartnerConnection(partnerConfig);
|
||||
// The endpoint for the Bulk API service is the same as for the normal
|
||||
// SOAP uri until the /Soap/ part. From here it's '/async/versionNumber'
|
||||
String soapEndpoint = partnerConfig.getServiceEndpoint();
|
||||
String restEndpoint = soapEndpoint.substring(0, soapEndpoint.indexOf("Soap/")) + "async/" + apiVersion;
|
||||
// When PartnerConnection is instantiated, a login is implicitly
|
||||
// executed and, if successful,
|
||||
// a valid session is stored in the ConnectorConfig instance.
|
||||
// Use this key to initialize a BulkConnection:
|
||||
return getBulkConnection(partnerConfig.getSessionId(), restEndpoint);
|
||||
}
|
||||
|
||||
private BulkConnection getBulkConnection(String sessionID, String endpointURL) throws ConnectionException, AsyncApiException {
|
||||
ConnectorConfig config = new ConnectorConfig();
|
||||
config.setSessionId(sessionID);
|
||||
config.setRestEndpoint(endpointURL);
|
||||
config.setSessionId(partnerConfig.getSessionId());
|
||||
// The endpoint for the Bulk API service is the same as for the normal
|
||||
// SOAP uri until the /Soap/ part. From here it's '/async/versionNumber'
|
||||
String soapEndpoint = partnerConfig.getServiceEndpoint();
|
||||
String restEndpoint = soapEndpoint.substring(0, soapEndpoint.indexOf("Soap/")) + "async/" + apiVersion;
|
||||
config.setRestEndpoint(restEndpoint);
|
||||
setProxyToConnection(config);
|
||||
// This should only be false when doing debugging.
|
||||
config.setCompression(needCompression);
|
||||
@@ -489,6 +481,8 @@ public class SalesforceBulkAPI {
|
||||
}
|
||||
}
|
||||
batchInfoList.add(info);
|
||||
//For TDI-27909
|
||||
closeJob();
|
||||
}
|
||||
|
||||
public String[] getQueryResultIDs() {
|
||||
|
||||
@@ -2,37 +2,24 @@
|
||||
<project name="org.talend.designer.components.libs" default="process" basedir=".">
|
||||
|
||||
<property name="component.plugin.home" value="../../../org.talend.designer.components.localprovider/components" />
|
||||
<property name="axis2.dir" value="../../../org.talend.libraries.apache.axis2/lib" />
|
||||
<property name="targetplugin.dir" value="/home/bchen/Develope/yoxos/targets/target-530/plugins" />
|
||||
<property name="http.dir" value="../../../org.talend.libraries.apache.http/lib" />
|
||||
|
||||
|
||||
<!-- #################################################### -->
|
||||
|
||||
<!-- modification 1: config -->
|
||||
<property name="jar.name" value="salesforceCRMManagement.jar" />
|
||||
<property name="component.name" value="tSalesforceInput" />
|
||||
<property name="author.name" value="wyang" />
|
||||
<property name="lib.dir" value="../../../org.talend.libraries.salesforce/lib" />
|
||||
|
||||
<!-- modification 2: compile classpath -->
|
||||
<path id="compile.classpath">
|
||||
<pathelement location="${axis2.dir}/axiom-api-1.2.13.jar" />
|
||||
<pathelement location="${axis2.dir}/axiom-impl-1.2.13.jar" />
|
||||
<pathelement location="${axis2.dir}/axis2-kernel-1.6.2.jar" />
|
||||
<pathelement location="${axis2.dir}/axis2-transport-http-1.6.2.jar" />
|
||||
<pathelement location="${axis2.dir}/axis2-transport-local-1.6.2.jar" />
|
||||
<pathelement location="${targetplugin.dir}/org.apache.commons.codec_1.3.0.v201101211617.jar" />
|
||||
<pathelement location="${http.dir}/commons-httpclient-3.1.jar" />
|
||||
<pathelement location="${targetplugin.dir}/org.apache.commons.logging_1.1.1.v201101211721.jar" />
|
||||
<pathelement location="${http.dir}/httpcore-4.0.jar" />
|
||||
<pathelement location="${axis2.dir}/mail-1.4.jar" />
|
||||
<pathelement location="${axis2.dir}/neethi-3.0.1.jar" />
|
||||
<pathelement location="${axis2.dir}/wsdl4j-1.6.2.jar" />
|
||||
<pathelement location="${axis2.dir}/xmlschema-core-2.0.1.jar" />
|
||||
<pathelement location="${axis2.dir}/axis2-adb-1.6.2.jar" />
|
||||
<pathelement location="${axis2.dir}/geronimo-stax-api_1.0_spec-1.0.1.jar" />
|
||||
<pathelement location="${axis2.dir}/activation-1.1.jar" />
|
||||
<pathelement location="${axis2.dir}/wstx-asl-3.2.9.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/axis.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/commons-discovery-0.2.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/wsdl4j-1.5.1.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/saaj.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/jaxrpc.jar" />
|
||||
<pathelement location="${component.plugin.home}/tXMLRPCInput/commons-logging-1.1.jar" />
|
||||
<pathelement location="${component.plugin.home}/tCentricCRMInput/log4j-1.2.15.jar" />
|
||||
<pathelement location="${component.plugin.home}/tFileInputXML/dom4j-1.6.1.jar" />
|
||||
</path>
|
||||
|
||||
<!-- #################################################### -->
|
||||
@@ -40,7 +27,7 @@
|
||||
|
||||
<!-- sourcecode and final jar path -->
|
||||
<property name="source.home" value="." />
|
||||
<property name="jar.home" value="${lib.dir}/${jar.name}" />
|
||||
<property name="jar.home" value="${component.plugin.home}/${component.name}/${jar.name}" />
|
||||
|
||||
<!-- temp dir for clasee files -->
|
||||
<property name="build.dir" value="../../build" />
|
||||
@@ -66,27 +53,14 @@
|
||||
<target name="compile" description="Compile Java sources">
|
||||
|
||||
<!-- compile -->
|
||||
<javac destdir="${build.dir}/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}">
|
||||
<javac srcdir="${source.home}" destdir="${build.dir}/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}">
|
||||
<classpath refid="compile.classpath" />
|
||||
<src path="${source.home}" />
|
||||
<exclude name="org/salesforce/samples/PartnerSamples.java"/>
|
||||
<exclude name="org/talend/log/TOSAxisHttpLogController.java"/>
|
||||
<exclude name="org/talend/log/TOSAxisHttpSimpleLog.java"/>
|
||||
<exclude name="org/talend/Test4Feature8540.java"/>
|
||||
<exclude name="org/talend/salesforce/util/SObjectsToSchema.java"/>
|
||||
<exclude name="org/talend/salesforce/util/ConvertSFTypeToTOSType.java"/>
|
||||
</javac>
|
||||
|
||||
<!-- include source code -->
|
||||
<copy todir="${build.dir}/classes">
|
||||
<fileset dir="${source.home}">
|
||||
<exclude name="build.xml" />
|
||||
<exclude name="org/salesforce/samples/PartnerSamples.java"/>
|
||||
<exclude name="org/talend/log/TOSAxisHttpLogController.java"/>
|
||||
<exclude name="org/talend/log/TOSAxisHttpSimpleLog.java"/>
|
||||
<exclude name="org/talend/Test4Feature8540.java"/>
|
||||
<exclude name="org/talend/salesforce/util/SObjectsToSchema.java"/>
|
||||
<exclude name="org/talend/salesforce/util/ConvertSFTypeToTOSType.java"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
|
||||
@@ -44,8 +44,6 @@ public interface SforceManagement {
|
||||
|
||||
public void setClientID(String clientID);
|
||||
|
||||
public boolean login(String sessionID, String endpoint, int timeout, boolean needCompression) throws Exception;
|
||||
|
||||
public boolean login(String endpoint, String username, String password, int timeout, boolean needCompression)
|
||||
throws Exception;
|
||||
|
||||
@@ -54,9 +52,6 @@ public interface SforceManagement {
|
||||
|
||||
public void login(SforceServiceStub stub, SessionHeader sh) throws Exception;
|
||||
|
||||
public boolean login(String sessionID, String endpoint, int timeout, boolean needCompression, int commitLevel,
|
||||
boolean exceptionForErrors, String errorLogFile) throws Exception;
|
||||
|
||||
public boolean login(String endpoint, String username, String password, int timeout, boolean needCompression,
|
||||
int commitLevel, boolean exceptionForErrors, String errorLogFile) throws Exception;
|
||||
|
||||
|
||||
@@ -64,27 +64,22 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
|
||||
private CallOptions co;
|
||||
|
||||
@Override
|
||||
public SforceServiceStub getStub() {
|
||||
return stub;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SessionHeader getSessionHeader() {
|
||||
return sh;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CallOptions getCallOptions() {
|
||||
return co;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCallOptions(CallOptions co) {
|
||||
this.co = co;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setClientID(String clientID) {
|
||||
if (co == null) {
|
||||
co = new CallOptions();
|
||||
@@ -110,15 +105,12 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (httpsHost != null) {
|
||||
ProxyProperties proxyProperties = new ProxyProperties();
|
||||
proxyProperties.setProxyName(httpsHost);
|
||||
if (httpsPort != null) {
|
||||
if (httpsPort != null)
|
||||
proxyProperties.setProxyPort(Integer.parseInt(httpsPort));
|
||||
}
|
||||
if (httpsUser != null && !"".equals(httpsUser)) {
|
||||
if (httpsUser != null && !"".equals(httpsUser))
|
||||
proxyProperties.setUserName(httpsUser);
|
||||
}
|
||||
if (httpsPwd != null && !"".equals(httpsPwd)) {
|
||||
if (httpsPwd != null && !"".equals(httpsPwd))
|
||||
proxyProperties.setPassWord(httpsPwd);
|
||||
}
|
||||
options.setProperty(HTTPConstants.PROXY, proxyProperties);
|
||||
} else {
|
||||
String host = System.getProperty("http.proxyHost");
|
||||
@@ -128,15 +120,12 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (host != null) {
|
||||
ProxyProperties proxyProperties = new ProxyProperties();
|
||||
proxyProperties.setProxyName(host);
|
||||
if (port != null) {
|
||||
if (port != null)
|
||||
proxyProperties.setProxyPort(Integer.parseInt(port));
|
||||
}
|
||||
if (user != null && !"".equals(user)) {
|
||||
if (user != null && !"".equals(user))
|
||||
proxyProperties.setUserName(user);
|
||||
}
|
||||
if (pwd != null && !"".equals(pwd)) {
|
||||
if (pwd != null && !"".equals(pwd))
|
||||
proxyProperties.setPassWord(pwd);
|
||||
}
|
||||
options.setProperty(HTTPConstants.PROXY, proxyProperties);
|
||||
} else {
|
||||
String socksHost = System.getProperty("socksProxyHost");
|
||||
@@ -146,15 +135,12 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (socksHost != null) {
|
||||
ProxyProperties proxyProperties = new ProxyProperties();
|
||||
proxyProperties.setProxyName(socksHost);
|
||||
if (socksPort != null) {
|
||||
if (socksPort != null)
|
||||
proxyProperties.setProxyPort(Integer.parseInt(socksPort));
|
||||
}
|
||||
if (socksUser != null && !"".equals(socksUser)) {
|
||||
if (socksUser != null && !"".equals(socksUser))
|
||||
proxyProperties.setUserName(socksUser);
|
||||
}
|
||||
if (socksPwd != null && !"".equals(socksPwd)) {
|
||||
if (socksPwd != null && !"".equals(socksPwd))
|
||||
proxyProperties.setPassWord(socksPwd);
|
||||
}
|
||||
options.setProperty(HTTPConstants.PROXY, proxyProperties);
|
||||
}
|
||||
}
|
||||
@@ -163,7 +149,20 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
// HTTPConstants.HEADER_PROTOCOL_10);
|
||||
}
|
||||
|
||||
private void _init() {
|
||||
public boolean login(String endpoint, String username, String password, String timeout, boolean needCompression)
|
||||
throws Exception {
|
||||
return login(endpoint, username, password, Integer.parseInt(timeout), needCompression);
|
||||
}
|
||||
|
||||
public boolean login(String endpoint, String username, String password, int timeout, boolean needCompression)
|
||||
throws Exception {
|
||||
if (endpoint == null || endpoint.trim().length() == 0)
|
||||
return false;
|
||||
if (username == null || username.trim().length() == 0)
|
||||
return false;
|
||||
if (password == null || password.trim().length() == 0)
|
||||
return false;
|
||||
|
||||
this.commitLevel = 1;
|
||||
|
||||
this.deleteItems = new ArrayList<ID>(commitLevel * 2);
|
||||
@@ -171,39 +170,7 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
this.updateItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.upsertItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.upsertKeyColumn = "";
|
||||
}
|
||||
|
||||
private void _init(int commitLevel, boolean exceptionForErrors, String errorLogFile) throws Exception {
|
||||
if (commitLevel < 0) {
|
||||
commitLevel = 1;
|
||||
} else if (commitLevel > 200) {
|
||||
commitLevel = 200;
|
||||
}
|
||||
|
||||
this.commitLevel = commitLevel;
|
||||
this.exceptionForErrors = exceptionForErrors;
|
||||
if (errorLogFile != null && errorLogFile.trim().length() > 0) {
|
||||
logWriter = new java.io.BufferedWriter(new java.io.FileWriter(errorLogFile));
|
||||
}
|
||||
|
||||
this.deleteItems = new ArrayList<ID>(commitLevel * 2);
|
||||
this.insertItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.updateItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.upsertItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.upsertKeyColumn = "";
|
||||
}
|
||||
|
||||
private boolean _login(String endpoint, String username, String password, int timeout, boolean needCompression)
|
||||
throws Exception {
|
||||
if (endpoint == null || endpoint.trim().length() == 0) {
|
||||
return false;
|
||||
}
|
||||
if (username == null || username.trim().length() == 0) {
|
||||
return false;
|
||||
}
|
||||
if (password == null || password.trim().length() == 0) {
|
||||
return false;
|
||||
}
|
||||
stub = new SforceServiceStub(endpoint);
|
||||
Options options = stub._getServiceClient().getOptions();
|
||||
|
||||
@@ -218,32 +185,9 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
login.setPassword(password);
|
||||
|
||||
LoginResult loginResult = stub.login(login, null, co).getResult();
|
||||
return _login(loginResult.getSessionId(), loginResult.getServerUrl(), timeout, needCompression);
|
||||
}
|
||||
|
||||
private void _login(SforceServiceStub stub, SessionHeader sh) throws Exception {
|
||||
if (stub == null) {
|
||||
throw new RuntimeException("SforceServiceStub is null! Connection is unavailable!");
|
||||
}
|
||||
if (sh == null) {
|
||||
throw new RuntimeException("SessionHeader is null! Connection is unavailable!");
|
||||
}
|
||||
this.stub = stub;
|
||||
this.sh = sh;
|
||||
}
|
||||
|
||||
private boolean _login(String sessionID, String endpoint, int timeout, boolean needCompression) throws Exception {
|
||||
|
||||
if (sessionID == null || sessionID.trim().length() == 0) {
|
||||
return false;
|
||||
}
|
||||
if (endpoint == null || endpoint.trim().length() == 0) {
|
||||
return false;
|
||||
}
|
||||
sh = new SessionHeader();
|
||||
sh.setSessionId(sessionID);
|
||||
stub = new SforceServiceStub(endpoint);
|
||||
Options options = stub._getServiceClient().getOptions();
|
||||
sh.setSessionId(loginResult.getSessionId());
|
||||
stub = new SforceServiceStub(loginResult.getServerUrl());
|
||||
options = stub._getServiceClient().getOptions();
|
||||
|
||||
if (needCompression) {
|
||||
@@ -255,29 +199,22 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean login(String sessionID, String endpoint, int timeout, boolean needCompression) throws Exception {
|
||||
_init();
|
||||
return _login(sessionID, endpoint, timeout, needCompression);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean login(String endpoint, String username, String password, String timeout, boolean needCompression)
|
||||
throws Exception {
|
||||
return login(endpoint, username, password, Integer.parseInt(timeout), needCompression);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean login(String endpoint, String username, String password, int timeout, boolean needCompression)
|
||||
throws Exception {
|
||||
_init();
|
||||
return _login(endpoint, username, password, timeout, needCompression);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void login(SforceServiceStub stub, SessionHeader sh) throws Exception {
|
||||
_init();
|
||||
_login(stub, sh);
|
||||
this.commitLevel = 1;
|
||||
|
||||
this.deleteItems = new ArrayList<ID>(commitLevel * 2);
|
||||
this.insertItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.updateItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.upsertItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.upsertKeyColumn = "";
|
||||
if (stub == null) {
|
||||
throw new RuntimeException("SforceServiceStub is null! Connection is unavailable!");
|
||||
}
|
||||
if (sh == null) {
|
||||
throw new RuntimeException("SessionHeader is null! Connection is unavailable!");
|
||||
}
|
||||
this.stub = stub;
|
||||
this.sh = sh;
|
||||
}
|
||||
|
||||
private boolean exceptionForErrors = false;
|
||||
@@ -298,39 +235,97 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
|
||||
private String upsertKeyColumn;
|
||||
|
||||
@Override
|
||||
public boolean login(String sessionID, String endpoint, int timeout, boolean needCompression, int commitLevel,
|
||||
boolean exceptionForErrors, String errorLogFile) throws Exception {
|
||||
_init(commitLevel, exceptionForErrors, errorLogFile);
|
||||
return _login(sessionID, endpoint, timeout, needCompression);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean login(String endpoint, String username, String password, String timeout, boolean needCompression,
|
||||
int commitLevel, boolean exceptionForErrors, String errorLogFile) throws Exception {
|
||||
return login(endpoint, username, password, Integer.parseInt(timeout), needCompression, commitLevel, exceptionForErrors,
|
||||
errorLogFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean login(String endpoint, String username, String password, int timeout, boolean needCompression,
|
||||
int commitLevel, boolean exceptionForErrors, String errorLogFile) throws Exception {
|
||||
_init(commitLevel, exceptionForErrors, errorLogFile);
|
||||
return _login(endpoint, username, password, timeout, needCompression);
|
||||
if (username == null || username.trim().length() == 0)
|
||||
return false;
|
||||
if (password == null || password.trim().length() == 0)
|
||||
return false;
|
||||
if (endpoint == null || endpoint.trim().length() == 0)
|
||||
return false;
|
||||
|
||||
if (commitLevel < 0)
|
||||
commitLevel = 1;
|
||||
else if (commitLevel > 200)
|
||||
commitLevel = 200;
|
||||
|
||||
this.commitLevel = commitLevel;
|
||||
this.exceptionForErrors = exceptionForErrors;
|
||||
if (errorLogFile != null && errorLogFile.trim().length() > 0) {
|
||||
logWriter = new java.io.BufferedWriter(new java.io.FileWriter(errorLogFile));
|
||||
}
|
||||
|
||||
this.deleteItems = new ArrayList<ID>(commitLevel * 2);
|
||||
this.insertItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.updateItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.upsertItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.upsertKeyColumn = "";
|
||||
|
||||
stub = new SforceServiceStub(endpoint);
|
||||
Options options = stub._getServiceClient().getOptions();
|
||||
|
||||
if (needCompression) {
|
||||
needCompression(options);
|
||||
}
|
||||
setTimeout(options, timeout);
|
||||
setHttpProxy(options);
|
||||
|
||||
Login login = new Login();
|
||||
login.setUsername(username);
|
||||
login.setPassword(password);
|
||||
|
||||
LoginResult loginResult = stub.login(login, null, co).getResult();
|
||||
sh = new SessionHeader();
|
||||
sh.setSessionId(loginResult.getSessionId());
|
||||
stub = new SforceServiceStub(loginResult.getServerUrl());
|
||||
options = stub._getServiceClient().getOptions();
|
||||
|
||||
if (needCompression) {
|
||||
needCompression(options);
|
||||
}
|
||||
setTimeout(options, timeout);
|
||||
setHttpProxy(options);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void login(SforceServiceStub stub, SessionHeader sh, int commitLevel, boolean exceptionForErrors, String errorLogFile)
|
||||
throws Exception {
|
||||
_init(commitLevel, exceptionForErrors, errorLogFile);
|
||||
if (commitLevel < 0)
|
||||
commitLevel = 1;
|
||||
else if (commitLevel > 200)
|
||||
commitLevel = 200;
|
||||
|
||||
_login(stub, sh);
|
||||
this.commitLevel = commitLevel;
|
||||
this.exceptionForErrors = exceptionForErrors;
|
||||
if (errorLogFile != null && errorLogFile.trim().length() > 0) {
|
||||
logWriter = new java.io.BufferedWriter(new java.io.FileWriter(errorLogFile));
|
||||
}
|
||||
|
||||
this.deleteItems = new ArrayList<ID>(commitLevel * 2);
|
||||
this.insertItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.updateItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.upsertItems = new ArrayList<SObject>(commitLevel * 2);
|
||||
this.upsertKeyColumn = "";
|
||||
if (stub == null) {
|
||||
throw new RuntimeException("SforceServiceStub is null! Connection is unavailable!");
|
||||
}
|
||||
if (sh == null) {
|
||||
throw new RuntimeException("SessionHeader is null! Connection is unavailable!");
|
||||
}
|
||||
this.stub = stub;
|
||||
this.sh = sh;
|
||||
}
|
||||
|
||||
/**
|
||||
* logout
|
||||
*/
|
||||
@Override
|
||||
public void logout() throws Exception {
|
||||
Object returnObject = null;
|
||||
// if there are still records to be commited:
|
||||
@@ -352,8 +347,7 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (result.getSuccess()) {
|
||||
// TODO: send back the ID
|
||||
} else {
|
||||
errors = addLog(result.getErrors(), batch_idx < changedItemKeys.length ? "" + (batch_idx + 1)
|
||||
: "Batch index out of bounds");
|
||||
errors = addLog(result.getErrors(),batch_idx<changedItemKeys.length?""+(batch_idx+1):"Batch index out of bounds");
|
||||
}
|
||||
if (exceptionForErrors && errors.toString().length() > 0) {
|
||||
if (logWriter != null) {
|
||||
@@ -368,9 +362,9 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
}
|
||||
if (deleteItems.size() > 0) {
|
||||
ID[] delIDs = deleteItems.toArray(new ID[deleteItems.size()]);
|
||||
changedItemKeys = new String[delIDs.length];
|
||||
for (int ix = 0; ix < delIDs.length; ++ix) {
|
||||
changedItemKeys[ix] = delIDs[ix].getID();
|
||||
changedItemKeys = new String[delIDs.length];
|
||||
for(int ix=0;ix<delIDs.length;++ix) {
|
||||
changedItemKeys[ix]=delIDs[ix].getID();
|
||||
}
|
||||
Delete dels = new Delete();
|
||||
dels.setIds(delIDs);
|
||||
@@ -387,8 +381,7 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (result.getSuccess()) {
|
||||
// TODO: send back the ID
|
||||
} else {
|
||||
errors = addLog(result.getErrors(), batch_idx < changedItemKeys.length ? changedItemKeys[batch_idx]
|
||||
: "Batch index out of bounds");
|
||||
errors = addLog(result.getErrors(),batch_idx<changedItemKeys.length?changedItemKeys[batch_idx]:"Batch index out of bounds");
|
||||
}
|
||||
if (exceptionForErrors && errors.toString().length() > 0) {
|
||||
if (logWriter != null) {
|
||||
@@ -403,9 +396,9 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
}
|
||||
if (updateItems.size() > 0) {
|
||||
SObject[] upds = updateItems.toArray(new SObject[updateItems.size()]);
|
||||
changedItemKeys = new String[upds.length];
|
||||
for (int ix = 0; ix < upds.length; ++ix) {
|
||||
changedItemKeys[ix] = upds[ix].getId().getID();
|
||||
changedItemKeys = new String[upds.length];
|
||||
for(int ix=0;ix<upds.length;++ix) {
|
||||
changedItemKeys[ix]=upds[ix].getId().getID();
|
||||
}
|
||||
Update update = new Update();
|
||||
update.setSObjects(upds);
|
||||
@@ -422,8 +415,7 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (result.getSuccess()) {
|
||||
// TODO: send back the ID
|
||||
} else {
|
||||
errors = addLog(result.getErrors(), batch_idx < changedItemKeys.length ? changedItemKeys[batch_idx]
|
||||
: "Batch index out of bounds");
|
||||
errors = addLog(result.getErrors(),batch_idx<changedItemKeys.length?changedItemKeys[batch_idx]:"Batch index out of bounds");
|
||||
}
|
||||
if (exceptionForErrors && errors.toString().length() > 0) {
|
||||
if (logWriter != null) {
|
||||
@@ -439,12 +431,12 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (upsertItems.size() > 0) {
|
||||
SObject[] upds = upsertItems.toArray(new SObject[upsertItems.size()]);
|
||||
changedItemKeys = new String[upds.length];
|
||||
for (int ix = 0; ix < upds.length; ++ix) {
|
||||
changedItemKeys[ix] = "No value for " + upsertKeyColumn + " ";
|
||||
for(int ix=0;ix<upds.length;++ix) {
|
||||
changedItemKeys[ix]="No value for "+upsertKeyColumn+" ";
|
||||
OMElement[] oms = upds[ix].getExtraElement();
|
||||
for (int iy = 0; iy < oms.length; ++iy) {
|
||||
if (upsertKeyColumn != null && oms[iy] != null && upsertKeyColumn.equals(oms[iy].getLocalName())) {
|
||||
changedItemKeys[ix] = oms[iy].getText();
|
||||
for(int iy=0;iy<oms.length;++iy) {
|
||||
if(upsertKeyColumn!=null && oms[iy]!=null && upsertKeyColumn.equals(oms[iy].getLocalName())) {
|
||||
changedItemKeys[ix]=oms[iy].getText();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -465,8 +457,7 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (result.getSuccess()) {
|
||||
// TODO: send back the ID
|
||||
} else {
|
||||
errors = addLog(result.getErrors(), batch_idx < changedItemKeys.length ? changedItemKeys[batch_idx]
|
||||
: "Batch index out of bounds");
|
||||
errors = addLog(result.getErrors(),batch_idx<changedItemKeys.length?changedItemKeys[batch_idx]:"Batch index out of bounds");
|
||||
}
|
||||
if (exceptionForErrors && errors.toString().length() > 0) {
|
||||
if (logWriter != null) {
|
||||
@@ -490,11 +481,9 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
/**
|
||||
* delete, one time one record.
|
||||
*/
|
||||
@Override
|
||||
public DeleteResult[] delete(String id) throws Exception {
|
||||
if (id == null) {
|
||||
if (id == null)
|
||||
return null;
|
||||
}
|
||||
|
||||
// String[] ids = new String[] { id };
|
||||
ID dID = new ID();
|
||||
@@ -503,9 +492,9 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
|
||||
if (deleteItems.size() >= commitLevel) {
|
||||
ID[] delIDs = deleteItems.toArray(new ID[deleteItems.size()]);
|
||||
changedItemKeys = new String[delIDs.length];
|
||||
for (int ix = 0; ix < delIDs.length; ++ix) {
|
||||
changedItemKeys[ix] = delIDs[ix].getID();
|
||||
changedItemKeys = new String[delIDs.length];
|
||||
for(int ix=0;ix<delIDs.length;++ix) {
|
||||
changedItemKeys[ix]=delIDs[ix].getID();
|
||||
}
|
||||
Delete dels = new Delete();
|
||||
dels.setIds(delIDs);
|
||||
@@ -522,8 +511,7 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (result.getSuccess()) {
|
||||
// TODO: send back the ID
|
||||
} else {
|
||||
errors = addLog(result.getErrors(), batch_idx < changedItemKeys.length ? changedItemKeys[batch_idx]
|
||||
: "Batch index out of bounds");
|
||||
errors = addLog(result.getErrors(),batch_idx<changedItemKeys.length?changedItemKeys[batch_idx]:"Batch index out of bounds");
|
||||
}
|
||||
if (exceptionForErrors && errors.toString().length() > 0) {
|
||||
if (logWriter != null) {
|
||||
@@ -539,7 +527,6 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OMElement newOMElement(String name, String value) throws Exception {
|
||||
OMFactory fac = OMAbstractFactory.getOMFactory();
|
||||
OMElement ome = fac.createOMElement(name, null);
|
||||
@@ -550,15 +537,12 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
/**
|
||||
* create, one time one record.
|
||||
*/
|
||||
@Override
|
||||
public SaveResult[] insert(String tablename, OMElement[] nameValues) throws Exception {
|
||||
if (tablename == null || tablename.trim().length() == 0) {
|
||||
if (tablename == null || tablename.trim().length() == 0)
|
||||
return null;
|
||||
}
|
||||
|
||||
if (nameValues == null || nameValues.length == 0) {
|
||||
if (nameValues == null || nameValues.length == 0)
|
||||
return null;
|
||||
}
|
||||
|
||||
SObject item = new SObject();
|
||||
item.setType(tablename);
|
||||
@@ -583,8 +567,7 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (result.getSuccess()) {
|
||||
// TODO: send back the ID
|
||||
} else {
|
||||
errors = addLog(result.getErrors(), batch_idx < changedItemKeys.length ? "" + (batch_idx + 1)
|
||||
: "Batch index out of bounds");
|
||||
errors = addLog(result.getErrors(),batch_idx<changedItemKeys.length?""+(batch_idx+1):"Batch index out of bounds");
|
||||
}
|
||||
if (exceptionForErrors && errors.toString().length() > 0) {
|
||||
if (logWriter != null) {
|
||||
@@ -603,7 +586,6 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
/**
|
||||
* update, one record, one time.
|
||||
*/
|
||||
@Override
|
||||
public SaveResult[] update(String tablename, String idStr, OMElement[] updatefields, String[] fieldsToNull) throws Exception {
|
||||
|
||||
SObject item = new SObject(); // create the account object to hold our changes
|
||||
@@ -618,9 +600,9 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
// call the update passing an array of object
|
||||
if (updateItems.size() >= commitLevel) {
|
||||
SObject[] upds = updateItems.toArray(new SObject[updateItems.size()]);
|
||||
changedItemKeys = new String[upds.length];
|
||||
for (int ix = 0; ix < upds.length; ++ix) {
|
||||
changedItemKeys[ix] = upds[ix].getId().getID();
|
||||
changedItemKeys = new String[upds.length];
|
||||
for(int ix=0;ix<upds.length;++ix) {
|
||||
changedItemKeys[ix]=upds[ix].getId().getID();
|
||||
}
|
||||
Update update = new Update();
|
||||
update.setSObjects(upds);
|
||||
@@ -637,8 +619,7 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (result.getSuccess()) {
|
||||
// TODO: send back the ID
|
||||
} else {
|
||||
errors = addLog(result.getErrors(), batch_idx < changedItemKeys.length ? changedItemKeys[batch_idx]
|
||||
: "Batch index out of bounds");
|
||||
errors = addLog(result.getErrors(),batch_idx<changedItemKeys.length?changedItemKeys[batch_idx]:"Batch index out of bounds");
|
||||
}
|
||||
if (exceptionForErrors && errors.toString().length() > 0) {
|
||||
if (logWriter != null) {
|
||||
@@ -659,7 +640,6 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
/**
|
||||
* upsert, one record, one time.
|
||||
*/
|
||||
@Override
|
||||
public UpsertResult[] upsert(String tablename, String upsertkey, OMElement[] updatefields, String[] fieldsToNull)
|
||||
throws Exception {
|
||||
|
||||
@@ -676,13 +656,13 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
// call the update passing an array of object
|
||||
if (upsertItems.size() >= commitLevel) {
|
||||
SObject[] upds = upsertItems.toArray(new SObject[upsertItems.size()]);
|
||||
changedItemKeys = new String[upds.length];
|
||||
for (int ix = 0; ix < upds.length; ++ix) {
|
||||
changedItemKeys[ix] = "No value for " + upsertKeyColumn + " ";
|
||||
changedItemKeys = new String[upds.length];
|
||||
for(int ix=0;ix<upds.length;++ix) {
|
||||
changedItemKeys[ix]="No value for "+upsertKeyColumn+" ";
|
||||
OMElement[] oms = upds[ix].getExtraElement();
|
||||
for (int iy = 0; iy < oms.length; ++iy) {
|
||||
if (upsertKeyColumn != null && oms[iy] != null && upsertKeyColumn.equals(oms[iy].getLocalName())) {
|
||||
changedItemKeys[ix] = oms[iy].getText();
|
||||
for(int iy=0;iy<oms.length;++iy) {
|
||||
if(upsertKeyColumn!=null && oms[iy]!=null && upsertKeyColumn.equals(oms[iy].getLocalName())) {
|
||||
changedItemKeys[ix]=oms[iy].getText();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -703,8 +683,7 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
if (result.getSuccess()) {
|
||||
// TODO: send back the ID
|
||||
} else {
|
||||
errors = addLog(result.getErrors(), batch_idx < changedItemKeys.length ? changedItemKeys[batch_idx]
|
||||
: "Batch index out of bounds");
|
||||
errors = addLog(result.getErrors(),batch_idx<changedItemKeys.length?changedItemKeys[batch_idx]:"Batch index out of bounds");
|
||||
}
|
||||
if (exceptionForErrors && errors.toString().length() > 0) {
|
||||
if (logWriter != null) {
|
||||
@@ -730,10 +709,10 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
logWriter.append("\tStatus Code: ").append(error.getStatusCode().toString());
|
||||
logWriter.newLine();
|
||||
logWriter.newLine();
|
||||
logWriter.append("\tRowKey/RowNo: " + row_key);
|
||||
logWriter.append("\tRowKey/RowNo: "+row_key);
|
||||
if (error.getFields() != null) {
|
||||
logWriter.newLine();
|
||||
logWriter.append("\tFields: ");
|
||||
logWriter.newLine();
|
||||
logWriter.append("\tFields: ");
|
||||
boolean flag = false;
|
||||
for (String field : error.getFields()) {
|
||||
if (flag) {
|
||||
@@ -762,21 +741,18 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
return errors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> readResult(Object[] results) throws Exception {
|
||||
Map<String, String> resultMessage = null;
|
||||
if (results instanceof SaveResult[]) {
|
||||
for (SaveResult result : (SaveResult[]) results) {
|
||||
resultMessage = new HashMap<String, String>();
|
||||
if (result.getId() != null) {
|
||||
if (result.getId() != null)
|
||||
resultMessage.put("id", result.getId().getID());
|
||||
}
|
||||
resultMessage.put("success", String.valueOf(result.getSuccess()));
|
||||
if (!result.getSuccess()) {
|
||||
for (Error error : result.getErrors()) {
|
||||
if (error.getStatusCode() != null) {
|
||||
if (error.getStatusCode() != null)
|
||||
resultMessage.put("StatusCode", error.getStatusCode().toString());
|
||||
}
|
||||
if (error.getFields() != null) {
|
||||
StringBuffer fields = new StringBuffer();
|
||||
for (String field : error.getFields()) {
|
||||
@@ -796,15 +772,13 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
} else if (results instanceof DeleteResult[]) {
|
||||
for (DeleteResult result : (DeleteResult[]) results) {
|
||||
resultMessage = new HashMap<String, String>();
|
||||
if (result.getId() != null) {
|
||||
if (result.getId() != null)
|
||||
resultMessage.put("id", result.getId().getID());
|
||||
}
|
||||
resultMessage.put("success", String.valueOf(result.getSuccess()));
|
||||
if (!result.getSuccess()) {
|
||||
for (Error error : result.getErrors()) {
|
||||
if (error.getStatusCode() != null) {
|
||||
if (error.getStatusCode() != null)
|
||||
resultMessage.put("StatusCode", error.getStatusCode().toString());
|
||||
}
|
||||
resultMessage.put("Message", error.getMessage());
|
||||
}
|
||||
}
|
||||
@@ -813,16 +787,14 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
} else if (results instanceof UpsertResult[]) {
|
||||
for (UpsertResult result : (UpsertResult[]) results) {
|
||||
resultMessage = new HashMap<String, String>();
|
||||
if (result.getId() != null) {
|
||||
if (result.getId() != null)
|
||||
resultMessage.put("id", result.getId().getID());
|
||||
}
|
||||
resultMessage.put("success", String.valueOf(result.getSuccess()));
|
||||
resultMessage.put("created", String.valueOf(result.getCreated()));
|
||||
if (!result.getSuccess()) {
|
||||
for (Error error : result.getErrors()) {
|
||||
if (error.getStatusCode() != null) {
|
||||
if (error.getStatusCode() != null)
|
||||
resultMessage.put("StatusCode", error.getStatusCode().toString());
|
||||
}
|
||||
if (error.getFields() != null) {
|
||||
StringBuffer fields = new StringBuffer();
|
||||
for (String field : error.getFields()) {
|
||||
@@ -843,12 +815,10 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Calendar getServerTimestamp() throws Exception {
|
||||
return stub.getServerTimestamp(new GetServerTimestamp(), sh, co).getResult().getTimestamp();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ID[] getUpdated(String objectType, Calendar startDate, Calendar endDate) throws Exception {
|
||||
GetUpdated getUpdated = new GetUpdated();
|
||||
getUpdated.setSObjectType(objectType);
|
||||
@@ -859,7 +829,6 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
return ids;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SObject[] retrieve(ID[] ids, String objectType, String fieldsList) throws Exception {
|
||||
Retrieve retrieve = new Retrieve();
|
||||
retrieve.setFieldList(fieldsList);
|
||||
@@ -876,7 +845,6 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GetDeletedResult getDeleted(String objectType, Calendar startDate, Calendar endDate) throws Exception {
|
||||
GetDeleted getDeleted = new GetDeleted();
|
||||
getDeleted.setSObjectType(objectType);
|
||||
@@ -891,7 +859,6 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryResult queryAll(String soql, int batchSize) throws Exception {
|
||||
QueryAll queryAll = new QueryAll();
|
||||
queryAll.setQueryString(soql);
|
||||
@@ -901,7 +868,6 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
return qr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryResult queryMore(QueryLocator queryLocator, int batchSize) throws Exception {
|
||||
QueryOptions queryOptions = new QueryOptions();
|
||||
queryOptions.setBatchSize(batchSize);
|
||||
@@ -911,7 +877,6 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
return qr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryResult query(String soql, int batchSize) throws Exception {
|
||||
Query query = new Query();
|
||||
query.setQueryString(soql);
|
||||
@@ -920,5 +885,4 @@ public class SforceManagementImpl implements SforceManagement {
|
||||
QueryResult qr = stub.query(query, sh, co, queryOptions, null, null).getResult();
|
||||
return qr;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="org.talend.designer.components.libs" default="process" basedir=".">
|
||||
|
||||
<property name="component.plugin.home" value="../../../org.talend.designer.components.localprovider/components" />
|
||||
<property name="jetty.dir" value="../../../org.talend.libraries.jetty/lib" />
|
||||
<property name="servlet.dir" value="../../../org.talend.libraries.salesforce/lib" />
|
||||
<property name="jackson.dir" value="../../../org.talend.libraries.jackson/lib" />
|
||||
<property name="lib.dir" value="../../../org.talend.libraries.salesforce/lib" />
|
||||
|
||||
<!-- #################################################### -->
|
||||
|
||||
<!-- modification 1: config -->
|
||||
<property name="jar.name" value="salesforceOAuth.jar" />
|
||||
<property name="author.name" value="bchen" />
|
||||
|
||||
<!-- modification 2: compile classpath -->
|
||||
<path id="compile.classpath">
|
||||
<pathelement location="${jetty.dir}/jetty-all-8.1.12.v20130726.jar" />
|
||||
<pathelement location="${servlet.dir}/servlet-api-3.0.jar" />
|
||||
<pathelement location="${jackson.dir}/json_simple-1.1.jar" />
|
||||
</path>
|
||||
|
||||
<!-- #################################################### -->
|
||||
|
||||
|
||||
<!-- sourcecode and final jar path -->
|
||||
<property name="source.home" value="." />
|
||||
<property name="test.home" value="/org/talend/salesforce/oauth/test" />
|
||||
<property name="jar.home" value="${lib.dir}/${jar.name}" />
|
||||
|
||||
<!-- temp dir for clasee files -->
|
||||
<property name="build.dir" value="../../build" />
|
||||
|
||||
<!-- compile option -->
|
||||
<property name="compile.debug" value="true" />
|
||||
<property name="compile.deprecation" value="false" />
|
||||
<property name="compile.optimize" value="true" />
|
||||
|
||||
|
||||
<target name="process" description="prepare a temp dir">
|
||||
<antcall target="prepare" />
|
||||
<antcall target="compile" />
|
||||
<antcall target="clean" />
|
||||
</target>
|
||||
|
||||
<target name="prepare" description="prepare a temp dir">
|
||||
<delete dir="${build.dir}" />
|
||||
<mkdir dir="${build.dir}" />
|
||||
<mkdir dir="${build.dir}/classes" />
|
||||
</target>
|
||||
|
||||
<target name="compile" description="Compile Java sources">
|
||||
|
||||
<!-- compile -->
|
||||
<javac destdir="${build.dir}/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}">
|
||||
<classpath refid="compile.classpath" />
|
||||
<src path="${source.home}"/>
|
||||
<exclude name="org/talend/salesforce/oauth/test/OAuthClientTest.java" />
|
||||
</javac>
|
||||
|
||||
<!-- include source code -->
|
||||
<copy todir="${build.dir}/classes">
|
||||
<fileset dir="${source.home}">
|
||||
<exclude name="build.xml" />
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
<!-- make jar -->
|
||||
<tstamp>
|
||||
<format property="date" pattern="yyyy-MM-dd HH:mm:ss" />
|
||||
</tstamp>
|
||||
|
||||
<jar destfile="${build.dir}/${jar.name}" basedir="${build.dir}/classes">
|
||||
<manifest>
|
||||
<!-- who -->
|
||||
<attribute name="Built-By" value="${author.name}" />
|
||||
<!-- when -->
|
||||
<attribute name="Built-Date" value="${date}" />
|
||||
<!-- JDK version -->
|
||||
<attribute name="Created-By" value="${java.version} (${java.vendor})" />
|
||||
<!-- Information about the program itself -->
|
||||
<attribute name="Implementation-Vendor" value="Talend SA" />
|
||||
<attribute name="Implementation-Title" value="${jar.name}" />
|
||||
<attribute name="Implementation-Version" value="1.0" />
|
||||
</manifest>
|
||||
</jar>
|
||||
|
||||
<!-- move jar -->
|
||||
<move file="${build.dir}/${jar.name}" tofile="${jar.home}" />
|
||||
|
||||
</target>
|
||||
|
||||
<target name="clean" description="clean the temp dir">
|
||||
<delete dir="${build.dir}" />
|
||||
<mkdir dir="${build.dir}" />
|
||||
</target>
|
||||
</project>
|
||||
@@ -1,84 +0,0 @@
|
||||
package org.talend.salesforce.oauth;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.eclipse.jetty.server.Request;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.handler.AbstractHandler;
|
||||
import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
|
||||
import org.eclipse.jetty.util.ssl.SslContextFactory;
|
||||
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2012 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
|
||||
//
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* created by bchen on Aug 26, 2013 Detailled comment
|
||||
*
|
||||
*/
|
||||
public class HttpsService {
|
||||
|
||||
Server server;
|
||||
|
||||
String code;
|
||||
|
||||
/**
|
||||
* DOC bchen HttpService constructor comment.
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public HttpsService(int port) throws Exception {
|
||||
server = new Server();
|
||||
|
||||
SslSelectChannelConnector ssl_connector = new SslSelectChannelConnector();
|
||||
ssl_connector.setPort(port);
|
||||
SslContextFactory cf = ssl_connector.getSslContextFactory();
|
||||
cf.setKeyStorePath(HttpsService.class.getResource("tsalesforce").toString());
|
||||
cf.setKeyStorePassword("talend");
|
||||
cf.setKeyManagerPassword("talend");
|
||||
server.addConnector(ssl_connector);
|
||||
|
||||
server.setHandler(new CallBackHandler());
|
||||
|
||||
server.start();
|
||||
}
|
||||
|
||||
public void stop() throws Exception {
|
||||
server.stop();
|
||||
server.join();
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
class CallBackHandler extends AbstractHandler {
|
||||
|
||||
@Override
|
||||
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
|
||||
throws IOException, ServletException {
|
||||
response.setContentType("text/html;charset=utf-8");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
if (code == null) {
|
||||
code = request.getParameter("code");
|
||||
if (code != null) {
|
||||
response.getWriter().println("<p>Successful to get authorization code:" + code + "</p>");
|
||||
}
|
||||
}
|
||||
response.flushBuffer();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,394 +0,0 @@
|
||||
package org.talend.salesforce.oauth;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.net.URLEncoder;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.json.simple.parser.ParseException;
|
||||
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2012 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
|
||||
//
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* created by bchen on Aug 26, 2013 Detailled comment
|
||||
*
|
||||
*/
|
||||
public class OAuthClient {
|
||||
|
||||
private static final String OAUTH2_TOKEN = "token";
|
||||
|
||||
private static final String OAUTH2_AUTHORIZE = "authorize";
|
||||
|
||||
private static final String UTF8 = "UTF-8";
|
||||
|
||||
private String clientID;
|
||||
|
||||
// don't need for user-agent flow
|
||||
private String clientSecret;
|
||||
|
||||
private String callbackHost = "localhost";
|
||||
|
||||
private int callbackPort;
|
||||
|
||||
private String baseOAuthURL;
|
||||
|
||||
private HttpsService service;
|
||||
|
||||
public String getBulkEndpoint(Token token, String version) {
|
||||
return token.getInstance_url() + "/services/async/" + version;
|
||||
}
|
||||
|
||||
public String getSOAPEndpoint(Token token, String version) throws MalformedURLException, IOException ,ParseException{
|
||||
URLConnection idConn = new URL(token.getId()).openConnection();
|
||||
idConn.setRequestProperty("Authorization", "Bearer " + token.getAccess_token());
|
||||
String endpointURL = null;
|
||||
BufferedReader reader = null;
|
||||
try {
|
||||
reader = new BufferedReader(new InputStreamReader(idConn.getInputStream()));
|
||||
JSONParser jsonParser = new JSONParser();
|
||||
JSONObject json = (JSONObject) jsonParser.parse(reader);
|
||||
JSONObject urls = (JSONObject) json.get("urls");
|
||||
endpointURL = urls.get("partner").toString().replace("{version}", version);
|
||||
}finally {
|
||||
if (reader != null) {
|
||||
try {
|
||||
reader.close();
|
||||
} catch (IOException ignore) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return endpointURL;
|
||||
}
|
||||
|
||||
public Token refreshToken(String refreshToken) throws Exception {
|
||||
Token newToken = new Token();
|
||||
newToken.setRefresh_token(refreshToken);
|
||||
|
||||
// get token using refresh token
|
||||
String token_url = baseOAuthURL.endsWith("/") ? baseOAuthURL + OAUTH2_TOKEN : baseOAuthURL + "/" + OAUTH2_TOKEN;
|
||||
URLConnection conn = new URL(token_url).openConnection();
|
||||
conn.setDoOutput(true);// post
|
||||
String query = String.format("grant_type=%s&client_id=%s&client_secret=%s&refresh_token=%s&format=%s", "refresh_token",
|
||||
clientID, clientSecret, refreshToken, "json");
|
||||
OutputStream output = null;
|
||||
try {
|
||||
output = conn.getOutputStream();
|
||||
output.write(query.getBytes(UTF8));
|
||||
} finally {
|
||||
if (output != null) {
|
||||
try {
|
||||
output.close();
|
||||
} catch (IOException ignore) {
|
||||
}
|
||||
}
|
||||
}
|
||||
InputStream input = conn.getInputStream();
|
||||
BufferedReader reader = null;
|
||||
try {
|
||||
reader = new BufferedReader(new InputStreamReader(input));
|
||||
JSONParser jsonParser = new JSONParser();
|
||||
JSONObject json = (JSONObject) jsonParser.parse(reader);
|
||||
if (json.get("error") == null) {
|
||||
if (json.get("access_token") != null) {
|
||||
newToken.setAccess_token(json.get("access_token").toString());
|
||||
}
|
||||
if (json.get("instance_url") != null) {
|
||||
newToken.setInstance_url(json.get("instance_url").toString());
|
||||
}
|
||||
if (json.get("id") != null) {
|
||||
newToken.setId(json.get("id").toString());
|
||||
}
|
||||
if (json.get("issued_at") != null) {
|
||||
newToken.setIssued_at(Long.parseLong(json.get("issued_at").toString()));
|
||||
}
|
||||
if (json.get("signature") != null) {
|
||||
newToken.setSignature(json.get("signature").toString());
|
||||
}
|
||||
} else {
|
||||
throw new Exception(json.toString());
|
||||
}
|
||||
} finally {
|
||||
if (reader != null) {
|
||||
try {
|
||||
reader.close();
|
||||
} catch (IOException ignore) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return newToken;
|
||||
}
|
||||
|
||||
public String getUrl()throws Exception{
|
||||
URL callback_url = new URL("https", callbackHost, callbackPort, "");
|
||||
String oauth2_authorize_url = baseOAuthURL.endsWith("/") ? baseOAuthURL + OAUTH2_AUTHORIZE : baseOAuthURL + "/"
|
||||
+ OAUTH2_AUTHORIZE;
|
||||
String authorize_url = String.format("%s?response_type=%s&client_id=%s&redirect_uri=%s", oauth2_authorize_url,// &scope=%s
|
||||
"code", clientID, URLEncoder.encode(callback_url.toString(), UTF8));// , "full%20refresh_token"
|
||||
return authorize_url;
|
||||
}
|
||||
|
||||
public void startServer() throws Exception{
|
||||
service = new HttpsService(callbackPort);
|
||||
}
|
||||
|
||||
public HttpsService getServer(){
|
||||
return service;
|
||||
}
|
||||
|
||||
public void stopServer() throws Exception{
|
||||
if(service!=null){
|
||||
service.stop();
|
||||
}
|
||||
}
|
||||
|
||||
public Token getTokenForWizard(String code) throws Exception{
|
||||
Token token = new Token();
|
||||
|
||||
URL callback_url = new URL("https", callbackHost, callbackPort, "");
|
||||
|
||||
String oauth2_authorize_url = baseOAuthURL.endsWith("/") ? baseOAuthURL + OAUTH2_AUTHORIZE : baseOAuthURL + "/"
|
||||
+ OAUTH2_AUTHORIZE;
|
||||
String authorize_url = String.format("%s?response_type=%s&client_id=%s&redirect_uri=%s", oauth2_authorize_url,// &scope=%s
|
||||
"code", clientID, URLEncoder.encode(callback_url.toString(), UTF8));// , "full%20refresh_token"
|
||||
|
||||
String token_url = baseOAuthURL.endsWith("/") ? baseOAuthURL + OAUTH2_TOKEN : baseOAuthURL + "/" + OAUTH2_TOKEN;
|
||||
URLConnection conn = new URL(token_url).openConnection();
|
||||
conn.setDoOutput(true);// post
|
||||
String query = String.format("grant_type=%s&client_id=%s&client_secret=%s&redirect_uri=%s&code=%s", "authorization_code",
|
||||
clientID, clientSecret, URLEncoder.encode(callback_url.toString(), UTF8), code);
|
||||
OutputStream output = null;
|
||||
try {
|
||||
output = conn.getOutputStream();
|
||||
output.write(query.getBytes(UTF8));
|
||||
} finally {
|
||||
if (output != null) {
|
||||
try {
|
||||
output.close();
|
||||
} catch (IOException ignore) {
|
||||
}
|
||||
}
|
||||
}
|
||||
InputStream input = conn.getInputStream();
|
||||
BufferedReader reader = null;
|
||||
try {
|
||||
reader = new BufferedReader(new InputStreamReader(input));
|
||||
JSONParser jsonParser = new JSONParser();
|
||||
JSONObject json = (JSONObject) jsonParser.parse(reader);
|
||||
if (json.get("access_token") != null) {
|
||||
token.setAccess_token(json.get("access_token").toString());
|
||||
}
|
||||
if (json.get("refresh_token") != null) {
|
||||
token.setRefresh_token(json.get("refresh_token").toString());
|
||||
}
|
||||
if (json.get("instance_url") != null) {
|
||||
token.setInstance_url(json.get("instance_url").toString());
|
||||
}
|
||||
if (json.get("id") != null) {
|
||||
token.setId(json.get("id").toString());
|
||||
}
|
||||
if (json.get("issued_at") != null) {
|
||||
token.setIssued_at(Long.parseLong(json.get("issued_at").toString()));
|
||||
}
|
||||
if (json.get("signature") != null) {
|
||||
token.setSignature(json.get("signature").toString());
|
||||
}
|
||||
} finally {
|
||||
if (reader != null) {
|
||||
try {
|
||||
reader.close();
|
||||
} catch (IOException ignore) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return token;
|
||||
}
|
||||
|
||||
public Token getToken() throws Exception {
|
||||
Token token = new Token();
|
||||
|
||||
URL callback_url = new URL("https", callbackHost, callbackPort, "");
|
||||
|
||||
String oauth2_authorize_url = baseOAuthURL.endsWith("/") ? baseOAuthURL + OAUTH2_AUTHORIZE : baseOAuthURL + "/"
|
||||
+ OAUTH2_AUTHORIZE;
|
||||
String authorize_url = String.format("%s?response_type=%s&client_id=%s&redirect_uri=%s", oauth2_authorize_url,// &scope=%s
|
||||
"code", clientID, URLEncoder.encode(callback_url.toString(), UTF8));// , "full%20refresh_token"
|
||||
System.out.println("Paste this URL into a web browser to authorize Salesforce Access:");
|
||||
System.out.println(authorize_url);
|
||||
|
||||
// start a service to get Authorization code
|
||||
HttpsService service = new HttpsService(callbackPort);
|
||||
String code = null;
|
||||
while (service.getCode() == null) {
|
||||
Thread.sleep(2 * 1000);
|
||||
}
|
||||
code = service.getCode();
|
||||
// stop service
|
||||
service.stop();
|
||||
|
||||
// get token using Authorization code
|
||||
String token_url = baseOAuthURL.endsWith("/") ? baseOAuthURL + OAUTH2_TOKEN : baseOAuthURL + "/" + OAUTH2_TOKEN;
|
||||
URLConnection conn = new URL(token_url).openConnection();
|
||||
conn.setDoOutput(true);// post
|
||||
String query = String.format("grant_type=%s&client_id=%s&client_secret=%s&redirect_uri=%s&code=%s", "authorization_code",
|
||||
clientID, clientSecret, URLEncoder.encode(callback_url.toString(), UTF8), code);
|
||||
OutputStream output = null;
|
||||
try {
|
||||
output = conn.getOutputStream();
|
||||
output.write(query.getBytes(UTF8));
|
||||
} finally {
|
||||
if (output != null) {
|
||||
try {
|
||||
output.close();
|
||||
} catch (IOException ignore) {
|
||||
}
|
||||
}
|
||||
}
|
||||
InputStream input = conn.getInputStream();
|
||||
BufferedReader reader = null;
|
||||
try {
|
||||
reader = new BufferedReader(new InputStreamReader(input));
|
||||
JSONParser jsonParser = new JSONParser();
|
||||
JSONObject json = (JSONObject) jsonParser.parse(reader);
|
||||
if (json.get("access_token") != null) {
|
||||
token.setAccess_token(json.get("access_token").toString());
|
||||
}
|
||||
if (json.get("refresh_token") != null) {
|
||||
token.setRefresh_token(json.get("refresh_token").toString());
|
||||
}
|
||||
if (json.get("instance_url") != null) {
|
||||
token.setInstance_url(json.get("instance_url").toString());
|
||||
}
|
||||
if (json.get("id") != null) {
|
||||
token.setId(json.get("id").toString());
|
||||
}
|
||||
if (json.get("issued_at") != null) {
|
||||
token.setIssued_at(Long.parseLong(json.get("issued_at").toString()));
|
||||
}
|
||||
if (json.get("signature") != null) {
|
||||
token.setSignature(json.get("signature").toString());
|
||||
}
|
||||
} finally {
|
||||
if (reader != null) {
|
||||
try {
|
||||
reader.close();
|
||||
} catch (IOException ignore) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return token;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for clientID.
|
||||
*
|
||||
* @return the clientID
|
||||
*/
|
||||
public String getClientID() {
|
||||
return this.clientID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the clientID.
|
||||
*
|
||||
* @param clientID the clientID to set
|
||||
*/
|
||||
public void setClientID(String clientID) {
|
||||
this.clientID = clientID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for clientSecret.
|
||||
*
|
||||
* @return the clientSecret
|
||||
*/
|
||||
public String getClientSecret() {
|
||||
return this.clientSecret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the clientSecret.
|
||||
*
|
||||
* @param clientSecret the clientSecret to set
|
||||
*/
|
||||
public void setClientSecret(String clientSecret) {
|
||||
this.clientSecret = clientSecret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for callbackHost.
|
||||
*
|
||||
* @return the callbackHost
|
||||
*/
|
||||
public String getCallbackHost() {
|
||||
return this.callbackHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the callbackHost.
|
||||
*
|
||||
* @param callbackHost the callbackHost to set
|
||||
*/
|
||||
public void setCallbackHost(String callbackHost) {
|
||||
this.callbackHost = callbackHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for callbackPort.
|
||||
*
|
||||
* @return the callbackPort
|
||||
*/
|
||||
public int getCallbackPort() {
|
||||
return this.callbackPort;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the callbackPort.
|
||||
*
|
||||
* @param callbackPort the callbackPort to set
|
||||
*/
|
||||
public void setCallbackPort(int callbackPort) {
|
||||
this.callbackPort = callbackPort;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for baseOAuthURL.
|
||||
*
|
||||
* @return the baseOAuthURL
|
||||
*/
|
||||
public String getBaseOAuthURL() {
|
||||
return baseOAuthURL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the baseOAuthURL.
|
||||
*
|
||||
* @param baseOAuthURL the baseOAuthURL to set
|
||||
*/
|
||||
public void setBaseOAuthURL(String baseOAuthURL) {
|
||||
this.baseOAuthURL = baseOAuthURL;
|
||||
}
|
||||
}
|
||||
@@ -1,141 +0,0 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2012 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.salesforce.oauth;
|
||||
|
||||
/**
|
||||
* created by bchen on Aug 28, 2013 Detailled comment
|
||||
*
|
||||
*/
|
||||
public class Token {
|
||||
|
||||
private String access_token;
|
||||
|
||||
private String refresh_token;
|
||||
|
||||
private String instance_url;
|
||||
|
||||
private String id;
|
||||
|
||||
private long issued_at;
|
||||
|
||||
private String signature;
|
||||
|
||||
/**
|
||||
* Getter for access_token.
|
||||
*
|
||||
* @return the access_token
|
||||
*/
|
||||
public String getAccess_token() {
|
||||
return this.access_token;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the access_token.
|
||||
*
|
||||
* @param access_token the access_token to set
|
||||
*/
|
||||
public void setAccess_token(String access_token) {
|
||||
this.access_token = access_token;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for refresh_token.
|
||||
*
|
||||
* @return the refresh_token
|
||||
*/
|
||||
public String getRefresh_token() {
|
||||
return this.refresh_token;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the refresh_token.
|
||||
*
|
||||
* @param refresh_token the refresh_token to set
|
||||
*/
|
||||
public void setRefresh_token(String refresh_token) {
|
||||
this.refresh_token = refresh_token;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for instance_url.
|
||||
*
|
||||
* @return the instance_url
|
||||
*/
|
||||
public String getInstance_url() {
|
||||
return this.instance_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the instance_url.
|
||||
*
|
||||
* @param instance_url the instance_url to set
|
||||
*/
|
||||
public void setInstance_url(String instance_url) {
|
||||
this.instance_url = instance_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for id.
|
||||
*
|
||||
* @return the id
|
||||
*/
|
||||
public String getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the id.
|
||||
*
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for issued_at.
|
||||
*
|
||||
* @return the issued_at
|
||||
*/
|
||||
public long getIssued_at() {
|
||||
return this.issued_at;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the issued_at.
|
||||
*
|
||||
* @param issued_at the issued_at to set
|
||||
*/
|
||||
public void setIssued_at(long issued_at) {
|
||||
this.issued_at = issued_at;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for signature.
|
||||
*
|
||||
* @return the signature
|
||||
*/
|
||||
public String getSignature() {
|
||||
return this.signature;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the signature.
|
||||
*
|
||||
* @param signature the signature to set
|
||||
*/
|
||||
public void setSignature(String signature) {
|
||||
this.signature = signature;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2012 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.salesforce.oauth.test;
|
||||
|
||||
import org.talend.salesforce.oauth.OAuthClient;
|
||||
import org.talend.salesforce.oauth.Token;
|
||||
|
||||
import com.salesforce.soap.partner.sobject.SObject;
|
||||
|
||||
/**
|
||||
* created by bchen on Aug 28, 2013 Detailled comment
|
||||
*
|
||||
*/
|
||||
public class OAuthClientTest {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
OAuthClient client = new OAuthClient();
|
||||
client.setBaseOAuthURL("https://login.salesforce.com/services/oauth2");
|
||||
client.setCallbackHost("192.168.30.123");
|
||||
client.setCallbackPort(8555);
|
||||
client.setClientID("3MVG99qusVZJwhsl6LQR3j8Kp74AoXCfza9O6Q09mfGq0Rk1uGZ1whOlV24dxQLFIrn1MSe7dm4JUbG8oy9fY");
|
||||
client.setClientSecret("8349684339611555474");
|
||||
Token token = client.getToken();
|
||||
System.out.println(token.getAccess_token());
|
||||
String refreshToken = token.getRefresh_token();
|
||||
token = client.refreshToken(refreshToken);
|
||||
System.out.println(token.getAccess_token());
|
||||
// rest bulk api
|
||||
org.talend.salesforceBulk.SalesforceBulkAPI sforceBulk = new org.talend.salesforceBulk.SalesforceBulkAPI();
|
||||
|
||||
sforceBulk.login(token.getAccess_token(), client.getBulkEndpoint(token, "25.0"));
|
||||
|
||||
sforceBulk.setConcurrencyMode("Parallel");
|
||||
sforceBulk.setAwaitTime(100 * 1000);
|
||||
|
||||
sforceBulk.executeBulk("Account", "insert", "Id", "csv", "/home/bchen/Desktop/sforce_bulk.csv", 10 * 1024 * 1024, 10000);
|
||||
|
||||
// soap api
|
||||
String endpoint = client.getSOAPEndpoint(token, "25.0");
|
||||
|
||||
org.talend.salesforce.SforceManagement sfMgr = new org.talend.salesforce.SforceManagementImpl();
|
||||
|
||||
boolean result = sfMgr.login(token.getAccess_token(), endpoint, 60000, false);
|
||||
if (!result) {
|
||||
throw new RuntimeException("Login failed! Please check the username,password and endpoint");
|
||||
}
|
||||
com.salesforce.soap.partner.QueryResult qr = sfMgr.query("select Id from Account", 250);
|
||||
SObject[] records = qr.getRecords();
|
||||
System.out.println(records.length);
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -13,16 +13,16 @@
|
||||
|
||||
<!-- modification 2: compile classpath -->
|
||||
<path id="compile.classpath">
|
||||
<pathelement location="../../../org.talend.libraries.apache.axis2/lib/axis.jar" />
|
||||
<pathelement location="../../../org.talend.libraries.apache.common/lib/commons-discovery-0.2.jar" />
|
||||
<pathelement location="lib/jaxrpc.jar" />
|
||||
<pathelement location="lib/saaj.jar" />
|
||||
<pathelement location="../../../org.talend.libraries.apache.axis2/lib/wsdl4j-1.6.2.jar" />
|
||||
<pathelement location="../../../org.talend.libraries.apache.common/lib/commons-logging-1.1.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/axis.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/commons-discovery-0.2.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/jaxrpc.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/saaj.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebService/wsdl4j-1.6.2.jar" />
|
||||
<pathelement location="${component.plugin.home}/tEDIFACTtoXML/commons-logging-1.1.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/mail.jar" />
|
||||
<pathelement location="${component.plugin.home}/tWebServiceInput/activation.jar" />
|
||||
<pathelement location="../../../org.talend.libraries.dom4j-jaxen/lib/dom4j-1.6.1.jar" />
|
||||
<pathelement location="../../../org.talend.libraries.dom4j-jaxen/lib/jaxen-1.1.1.jar" />
|
||||
<pathelement location="${component.plugin.home}/tEDIFACTtoXML/dom4j-1.6.1.jar" />
|
||||
<pathelement location="${component.plugin.home}/tEDIFACTtoXML/jaxen-1.1.1.jar" />
|
||||
</path>
|
||||
|
||||
<!-- #################################################### -->
|
||||
@@ -58,20 +58,15 @@
|
||||
<!-- compile -->
|
||||
<javac srcdir="${source.home}" destdir="${build.dir}/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}">
|
||||
<classpath refid="compile.classpath" />
|
||||
<src path="${source.home}"/>
|
||||
<exclude name="org/talend/marketo/GenConfigOfComponent.java" />
|
||||
</javac>
|
||||
|
||||
<!-- include source code -->
|
||||
<copy todir="${build.dir}/classes">
|
||||
<fileset dir="${source.home}">
|
||||
<exclude name="build.xml" />
|
||||
<exclude name="lib" />
|
||||
<exclude name="org/talend/marketo/GenConfigOfComponent.java" />
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
<delete dir="${build.dir}/classes/lib" />
|
||||
|
||||
<!-- make jar -->
|
||||
<tstamp>
|
||||
<format property="date" pattern="yyyy-MM-dd HH:mm:ss" />
|
||||
|
||||
@@ -1,491 +1,491 @@
|
||||
/**
|
||||
* ActivityRecord.java
|
||||
*
|
||||
* This file was auto-generated from WSDL
|
||||
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
|
||||
*/
|
||||
|
||||
package com.marketo.www.mktows;
|
||||
|
||||
public class ActivityRecord implements java.io.Serializable {
|
||||
private int id;
|
||||
|
||||
private java.util.Calendar activityDateTime;
|
||||
|
||||
private java.lang.String activityType;
|
||||
|
||||
private java.lang.String mktgAssetName;
|
||||
|
||||
private com.marketo.www.mktows.Attribute[] activityAttributes;
|
||||
|
||||
private java.lang.String campaign;
|
||||
|
||||
private java.lang.String personName;
|
||||
|
||||
private java.lang.String mktPersonId;
|
||||
|
||||
private java.lang.String foreignSysId;
|
||||
|
||||
private java.lang.String orgName;
|
||||
|
||||
private java.lang.String foreignSysOrgId;
|
||||
|
||||
public ActivityRecord() {
|
||||
}
|
||||
|
||||
public ActivityRecord(
|
||||
int id,
|
||||
java.util.Calendar activityDateTime,
|
||||
java.lang.String activityType,
|
||||
java.lang.String mktgAssetName,
|
||||
com.marketo.www.mktows.Attribute[] activityAttributes,
|
||||
java.lang.String campaign,
|
||||
java.lang.String personName,
|
||||
java.lang.String mktPersonId,
|
||||
java.lang.String foreignSysId,
|
||||
java.lang.String orgName,
|
||||
java.lang.String foreignSysOrgId) {
|
||||
this.id = id;
|
||||
this.activityDateTime = activityDateTime;
|
||||
this.activityType = activityType;
|
||||
this.mktgAssetName = mktgAssetName;
|
||||
this.activityAttributes = activityAttributes;
|
||||
this.campaign = campaign;
|
||||
this.personName = personName;
|
||||
this.mktPersonId = mktPersonId;
|
||||
this.foreignSysId = foreignSysId;
|
||||
this.orgName = orgName;
|
||||
this.foreignSysOrgId = foreignSysOrgId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the id value for this ActivityRecord.
|
||||
*
|
||||
* @return id
|
||||
*/
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the id value for this ActivityRecord.
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the activityDateTime value for this ActivityRecord.
|
||||
*
|
||||
* @return activityDateTime
|
||||
*/
|
||||
public java.util.Calendar getActivityDateTime() {
|
||||
return activityDateTime;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the activityDateTime value for this ActivityRecord.
|
||||
*
|
||||
* @param activityDateTime
|
||||
*/
|
||||
public void setActivityDateTime(java.util.Calendar activityDateTime) {
|
||||
this.activityDateTime = activityDateTime;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the activityType value for this ActivityRecord.
|
||||
*
|
||||
* @return activityType
|
||||
*/
|
||||
public java.lang.String getActivityType() {
|
||||
return activityType;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the activityType value for this ActivityRecord.
|
||||
*
|
||||
* @param activityType
|
||||
*/
|
||||
public void setActivityType(java.lang.String activityType) {
|
||||
this.activityType = activityType;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the mktgAssetName value for this ActivityRecord.
|
||||
*
|
||||
* @return mktgAssetName
|
||||
*/
|
||||
public java.lang.String getMktgAssetName() {
|
||||
return mktgAssetName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the mktgAssetName value for this ActivityRecord.
|
||||
*
|
||||
* @param mktgAssetName
|
||||
*/
|
||||
public void setMktgAssetName(java.lang.String mktgAssetName) {
|
||||
this.mktgAssetName = mktgAssetName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the activityAttributes value for this ActivityRecord.
|
||||
*
|
||||
* @return activityAttributes
|
||||
*/
|
||||
public com.marketo.www.mktows.Attribute[] getActivityAttributes() {
|
||||
return activityAttributes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the activityAttributes value for this ActivityRecord.
|
||||
*
|
||||
* @param activityAttributes
|
||||
*/
|
||||
public void setActivityAttributes(com.marketo.www.mktows.Attribute[] activityAttributes) {
|
||||
this.activityAttributes = activityAttributes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the campaign value for this ActivityRecord.
|
||||
*
|
||||
* @return campaign
|
||||
*/
|
||||
public java.lang.String getCampaign() {
|
||||
return campaign;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the campaign value for this ActivityRecord.
|
||||
*
|
||||
* @param campaign
|
||||
*/
|
||||
public void setCampaign(java.lang.String campaign) {
|
||||
this.campaign = campaign;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the personName value for this ActivityRecord.
|
||||
*
|
||||
* @return personName
|
||||
*/
|
||||
public java.lang.String getPersonName() {
|
||||
return personName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the personName value for this ActivityRecord.
|
||||
*
|
||||
* @param personName
|
||||
*/
|
||||
public void setPersonName(java.lang.String personName) {
|
||||
this.personName = personName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the mktPersonId value for this ActivityRecord.
|
||||
*
|
||||
* @return mktPersonId
|
||||
*/
|
||||
public java.lang.String getMktPersonId() {
|
||||
return mktPersonId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the mktPersonId value for this ActivityRecord.
|
||||
*
|
||||
* @param mktPersonId
|
||||
*/
|
||||
public void setMktPersonId(java.lang.String mktPersonId) {
|
||||
this.mktPersonId = mktPersonId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the foreignSysId value for this ActivityRecord.
|
||||
*
|
||||
* @return foreignSysId
|
||||
*/
|
||||
public java.lang.String getForeignSysId() {
|
||||
return foreignSysId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the foreignSysId value for this ActivityRecord.
|
||||
*
|
||||
* @param foreignSysId
|
||||
*/
|
||||
public void setForeignSysId(java.lang.String foreignSysId) {
|
||||
this.foreignSysId = foreignSysId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the orgName value for this ActivityRecord.
|
||||
*
|
||||
* @return orgName
|
||||
*/
|
||||
public java.lang.String getOrgName() {
|
||||
return orgName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the orgName value for this ActivityRecord.
|
||||
*
|
||||
* @param orgName
|
||||
*/
|
||||
public void setOrgName(java.lang.String orgName) {
|
||||
this.orgName = orgName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the foreignSysOrgId value for this ActivityRecord.
|
||||
*
|
||||
* @return foreignSysOrgId
|
||||
*/
|
||||
public java.lang.String getForeignSysOrgId() {
|
||||
return foreignSysOrgId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the foreignSysOrgId value for this ActivityRecord.
|
||||
*
|
||||
* @param foreignSysOrgId
|
||||
*/
|
||||
public void setForeignSysOrgId(java.lang.String foreignSysOrgId) {
|
||||
this.foreignSysOrgId = foreignSysOrgId;
|
||||
}
|
||||
|
||||
private java.lang.Object __equalsCalc = null;
|
||||
public synchronized boolean equals(java.lang.Object obj) {
|
||||
if (!(obj instanceof ActivityRecord)) return false;
|
||||
ActivityRecord other = (ActivityRecord) obj;
|
||||
if (obj == null) return false;
|
||||
if (this == obj) return true;
|
||||
if (__equalsCalc != null) {
|
||||
return (__equalsCalc == obj);
|
||||
}
|
||||
__equalsCalc = obj;
|
||||
boolean _equals;
|
||||
_equals = true &&
|
||||
this.id == other.getId() &&
|
||||
((this.activityDateTime==null && other.getActivityDateTime()==null) ||
|
||||
(this.activityDateTime!=null &&
|
||||
this.activityDateTime.equals(other.getActivityDateTime()))) &&
|
||||
((this.activityType==null && other.getActivityType()==null) ||
|
||||
(this.activityType!=null &&
|
||||
this.activityType.equals(other.getActivityType()))) &&
|
||||
((this.mktgAssetName==null && other.getMktgAssetName()==null) ||
|
||||
(this.mktgAssetName!=null &&
|
||||
this.mktgAssetName.equals(other.getMktgAssetName()))) &&
|
||||
((this.activityAttributes==null && other.getActivityAttributes()==null) ||
|
||||
(this.activityAttributes!=null &&
|
||||
java.util.Arrays.equals(this.activityAttributes, other.getActivityAttributes()))) &&
|
||||
((this.campaign==null && other.getCampaign()==null) ||
|
||||
(this.campaign!=null &&
|
||||
this.campaign.equals(other.getCampaign()))) &&
|
||||
((this.personName==null && other.getPersonName()==null) ||
|
||||
(this.personName!=null &&
|
||||
this.personName.equals(other.getPersonName()))) &&
|
||||
((this.mktPersonId==null && other.getMktPersonId()==null) ||
|
||||
(this.mktPersonId!=null &&
|
||||
this.mktPersonId.equals(other.getMktPersonId()))) &&
|
||||
((this.foreignSysId==null && other.getForeignSysId()==null) ||
|
||||
(this.foreignSysId!=null &&
|
||||
this.foreignSysId.equals(other.getForeignSysId()))) &&
|
||||
((this.orgName==null && other.getOrgName()==null) ||
|
||||
(this.orgName!=null &&
|
||||
this.orgName.equals(other.getOrgName()))) &&
|
||||
((this.foreignSysOrgId==null && other.getForeignSysOrgId()==null) ||
|
||||
(this.foreignSysOrgId!=null &&
|
||||
this.foreignSysOrgId.equals(other.getForeignSysOrgId())));
|
||||
__equalsCalc = null;
|
||||
return _equals;
|
||||
}
|
||||
|
||||
private boolean __hashCodeCalc = false;
|
||||
public synchronized int hashCode() {
|
||||
if (__hashCodeCalc) {
|
||||
return 0;
|
||||
}
|
||||
__hashCodeCalc = true;
|
||||
int _hashCode = 1;
|
||||
_hashCode += getId();
|
||||
if (getActivityDateTime() != null) {
|
||||
_hashCode += getActivityDateTime().hashCode();
|
||||
}
|
||||
if (getActivityType() != null) {
|
||||
_hashCode += getActivityType().hashCode();
|
||||
}
|
||||
if (getMktgAssetName() != null) {
|
||||
_hashCode += getMktgAssetName().hashCode();
|
||||
}
|
||||
if (getActivityAttributes() != null) {
|
||||
for (int i=0;
|
||||
i<java.lang.reflect.Array.getLength(getActivityAttributes());
|
||||
i++) {
|
||||
java.lang.Object obj = java.lang.reflect.Array.get(getActivityAttributes(), i);
|
||||
if (obj != null &&
|
||||
!obj.getClass().isArray()) {
|
||||
_hashCode += obj.hashCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (getCampaign() != null) {
|
||||
_hashCode += getCampaign().hashCode();
|
||||
}
|
||||
if (getPersonName() != null) {
|
||||
_hashCode += getPersonName().hashCode();
|
||||
}
|
||||
if (getMktPersonId() != null) {
|
||||
_hashCode += getMktPersonId().hashCode();
|
||||
}
|
||||
if (getForeignSysId() != null) {
|
||||
_hashCode += getForeignSysId().hashCode();
|
||||
}
|
||||
if (getOrgName() != null) {
|
||||
_hashCode += getOrgName().hashCode();
|
||||
}
|
||||
if (getForeignSysOrgId() != null) {
|
||||
_hashCode += getForeignSysOrgId().hashCode();
|
||||
}
|
||||
__hashCodeCalc = false;
|
||||
return _hashCode;
|
||||
}
|
||||
|
||||
// Type metadata
|
||||
private static org.apache.axis.description.TypeDesc typeDesc =
|
||||
new org.apache.axis.description.TypeDesc(ActivityRecord.class, true);
|
||||
|
||||
static {
|
||||
typeDesc.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "ActivityRecord"));
|
||||
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("id");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "id"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("activityDateTime");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "activityDateTime"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("activityType");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "activityType"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("mktgAssetName");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "mktgAssetName"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("activityAttributes");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "activityAttributes"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "Attribute"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
elemField.setItemQName(new javax.xml.namespace.QName("", "attribute"));
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("campaign");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "campaign"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("personName");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "personName"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("mktPersonId");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "mktPersonId"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("foreignSysId");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "foreignSysId"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("orgName");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "orgName"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("foreignSysOrgId");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "foreignSysOrgId"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return type metadata object
|
||||
*/
|
||||
public static org.apache.axis.description.TypeDesc getTypeDesc() {
|
||||
return typeDesc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Serializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Serializer getSerializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanSerializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Deserializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Deserializer getDeserializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanDeserializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* ActivityRecord.java
|
||||
*
|
||||
* This file was auto-generated from WSDL
|
||||
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
|
||||
*/
|
||||
|
||||
package com.marketo.www.mktows;
|
||||
|
||||
public class ActivityRecord implements java.io.Serializable {
|
||||
private int id;
|
||||
|
||||
private java.util.Calendar activityDateTime;
|
||||
|
||||
private java.lang.String activityType;
|
||||
|
||||
private java.lang.String mktgAssetName;
|
||||
|
||||
private com.marketo.www.mktows.Attribute[] activityAttributes;
|
||||
|
||||
private java.lang.String campaign;
|
||||
|
||||
private java.lang.String personName;
|
||||
|
||||
private java.lang.String mktPersonId;
|
||||
|
||||
private java.lang.String foreignSysId;
|
||||
|
||||
private java.lang.String orgName;
|
||||
|
||||
private java.lang.String foreignSysOrgId;
|
||||
|
||||
public ActivityRecord() {
|
||||
}
|
||||
|
||||
public ActivityRecord(
|
||||
int id,
|
||||
java.util.Calendar activityDateTime,
|
||||
java.lang.String activityType,
|
||||
java.lang.String mktgAssetName,
|
||||
com.marketo.www.mktows.Attribute[] activityAttributes,
|
||||
java.lang.String campaign,
|
||||
java.lang.String personName,
|
||||
java.lang.String mktPersonId,
|
||||
java.lang.String foreignSysId,
|
||||
java.lang.String orgName,
|
||||
java.lang.String foreignSysOrgId) {
|
||||
this.id = id;
|
||||
this.activityDateTime = activityDateTime;
|
||||
this.activityType = activityType;
|
||||
this.mktgAssetName = mktgAssetName;
|
||||
this.activityAttributes = activityAttributes;
|
||||
this.campaign = campaign;
|
||||
this.personName = personName;
|
||||
this.mktPersonId = mktPersonId;
|
||||
this.foreignSysId = foreignSysId;
|
||||
this.orgName = orgName;
|
||||
this.foreignSysOrgId = foreignSysOrgId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the id value for this ActivityRecord.
|
||||
*
|
||||
* @return id
|
||||
*/
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the id value for this ActivityRecord.
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the activityDateTime value for this ActivityRecord.
|
||||
*
|
||||
* @return activityDateTime
|
||||
*/
|
||||
public java.util.Calendar getActivityDateTime() {
|
||||
return activityDateTime;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the activityDateTime value for this ActivityRecord.
|
||||
*
|
||||
* @param activityDateTime
|
||||
*/
|
||||
public void setActivityDateTime(java.util.Calendar activityDateTime) {
|
||||
this.activityDateTime = activityDateTime;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the activityType value for this ActivityRecord.
|
||||
*
|
||||
* @return activityType
|
||||
*/
|
||||
public java.lang.String getActivityType() {
|
||||
return activityType;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the activityType value for this ActivityRecord.
|
||||
*
|
||||
* @param activityType
|
||||
*/
|
||||
public void setActivityType(java.lang.String activityType) {
|
||||
this.activityType = activityType;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the mktgAssetName value for this ActivityRecord.
|
||||
*
|
||||
* @return mktgAssetName
|
||||
*/
|
||||
public java.lang.String getMktgAssetName() {
|
||||
return mktgAssetName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the mktgAssetName value for this ActivityRecord.
|
||||
*
|
||||
* @param mktgAssetName
|
||||
*/
|
||||
public void setMktgAssetName(java.lang.String mktgAssetName) {
|
||||
this.mktgAssetName = mktgAssetName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the activityAttributes value for this ActivityRecord.
|
||||
*
|
||||
* @return activityAttributes
|
||||
*/
|
||||
public com.marketo.www.mktows.Attribute[] getActivityAttributes() {
|
||||
return activityAttributes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the activityAttributes value for this ActivityRecord.
|
||||
*
|
||||
* @param activityAttributes
|
||||
*/
|
||||
public void setActivityAttributes(com.marketo.www.mktows.Attribute[] activityAttributes) {
|
||||
this.activityAttributes = activityAttributes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the campaign value for this ActivityRecord.
|
||||
*
|
||||
* @return campaign
|
||||
*/
|
||||
public java.lang.String getCampaign() {
|
||||
return campaign;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the campaign value for this ActivityRecord.
|
||||
*
|
||||
* @param campaign
|
||||
*/
|
||||
public void setCampaign(java.lang.String campaign) {
|
||||
this.campaign = campaign;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the personName value for this ActivityRecord.
|
||||
*
|
||||
* @return personName
|
||||
*/
|
||||
public java.lang.String getPersonName() {
|
||||
return personName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the personName value for this ActivityRecord.
|
||||
*
|
||||
* @param personName
|
||||
*/
|
||||
public void setPersonName(java.lang.String personName) {
|
||||
this.personName = personName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the mktPersonId value for this ActivityRecord.
|
||||
*
|
||||
* @return mktPersonId
|
||||
*/
|
||||
public java.lang.String getMktPersonId() {
|
||||
return mktPersonId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the mktPersonId value for this ActivityRecord.
|
||||
*
|
||||
* @param mktPersonId
|
||||
*/
|
||||
public void setMktPersonId(java.lang.String mktPersonId) {
|
||||
this.mktPersonId = mktPersonId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the foreignSysId value for this ActivityRecord.
|
||||
*
|
||||
* @return foreignSysId
|
||||
*/
|
||||
public java.lang.String getForeignSysId() {
|
||||
return foreignSysId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the foreignSysId value for this ActivityRecord.
|
||||
*
|
||||
* @param foreignSysId
|
||||
*/
|
||||
public void setForeignSysId(java.lang.String foreignSysId) {
|
||||
this.foreignSysId = foreignSysId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the orgName value for this ActivityRecord.
|
||||
*
|
||||
* @return orgName
|
||||
*/
|
||||
public java.lang.String getOrgName() {
|
||||
return orgName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the orgName value for this ActivityRecord.
|
||||
*
|
||||
* @param orgName
|
||||
*/
|
||||
public void setOrgName(java.lang.String orgName) {
|
||||
this.orgName = orgName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the foreignSysOrgId value for this ActivityRecord.
|
||||
*
|
||||
* @return foreignSysOrgId
|
||||
*/
|
||||
public java.lang.String getForeignSysOrgId() {
|
||||
return foreignSysOrgId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the foreignSysOrgId value for this ActivityRecord.
|
||||
*
|
||||
* @param foreignSysOrgId
|
||||
*/
|
||||
public void setForeignSysOrgId(java.lang.String foreignSysOrgId) {
|
||||
this.foreignSysOrgId = foreignSysOrgId;
|
||||
}
|
||||
|
||||
private java.lang.Object __equalsCalc = null;
|
||||
public synchronized boolean equals(java.lang.Object obj) {
|
||||
if (!(obj instanceof ActivityRecord)) return false;
|
||||
ActivityRecord other = (ActivityRecord) obj;
|
||||
if (obj == null) return false;
|
||||
if (this == obj) return true;
|
||||
if (__equalsCalc != null) {
|
||||
return (__equalsCalc == obj);
|
||||
}
|
||||
__equalsCalc = obj;
|
||||
boolean _equals;
|
||||
_equals = true &&
|
||||
this.id == other.getId() &&
|
||||
((this.activityDateTime==null && other.getActivityDateTime()==null) ||
|
||||
(this.activityDateTime!=null &&
|
||||
this.activityDateTime.equals(other.getActivityDateTime()))) &&
|
||||
((this.activityType==null && other.getActivityType()==null) ||
|
||||
(this.activityType!=null &&
|
||||
this.activityType.equals(other.getActivityType()))) &&
|
||||
((this.mktgAssetName==null && other.getMktgAssetName()==null) ||
|
||||
(this.mktgAssetName!=null &&
|
||||
this.mktgAssetName.equals(other.getMktgAssetName()))) &&
|
||||
((this.activityAttributes==null && other.getActivityAttributes()==null) ||
|
||||
(this.activityAttributes!=null &&
|
||||
java.util.Arrays.equals(this.activityAttributes, other.getActivityAttributes()))) &&
|
||||
((this.campaign==null && other.getCampaign()==null) ||
|
||||
(this.campaign!=null &&
|
||||
this.campaign.equals(other.getCampaign()))) &&
|
||||
((this.personName==null && other.getPersonName()==null) ||
|
||||
(this.personName!=null &&
|
||||
this.personName.equals(other.getPersonName()))) &&
|
||||
((this.mktPersonId==null && other.getMktPersonId()==null) ||
|
||||
(this.mktPersonId!=null &&
|
||||
this.mktPersonId.equals(other.getMktPersonId()))) &&
|
||||
((this.foreignSysId==null && other.getForeignSysId()==null) ||
|
||||
(this.foreignSysId!=null &&
|
||||
this.foreignSysId.equals(other.getForeignSysId()))) &&
|
||||
((this.orgName==null && other.getOrgName()==null) ||
|
||||
(this.orgName!=null &&
|
||||
this.orgName.equals(other.getOrgName()))) &&
|
||||
((this.foreignSysOrgId==null && other.getForeignSysOrgId()==null) ||
|
||||
(this.foreignSysOrgId!=null &&
|
||||
this.foreignSysOrgId.equals(other.getForeignSysOrgId())));
|
||||
__equalsCalc = null;
|
||||
return _equals;
|
||||
}
|
||||
|
||||
private boolean __hashCodeCalc = false;
|
||||
public synchronized int hashCode() {
|
||||
if (__hashCodeCalc) {
|
||||
return 0;
|
||||
}
|
||||
__hashCodeCalc = true;
|
||||
int _hashCode = 1;
|
||||
_hashCode += getId();
|
||||
if (getActivityDateTime() != null) {
|
||||
_hashCode += getActivityDateTime().hashCode();
|
||||
}
|
||||
if (getActivityType() != null) {
|
||||
_hashCode += getActivityType().hashCode();
|
||||
}
|
||||
if (getMktgAssetName() != null) {
|
||||
_hashCode += getMktgAssetName().hashCode();
|
||||
}
|
||||
if (getActivityAttributes() != null) {
|
||||
for (int i=0;
|
||||
i<java.lang.reflect.Array.getLength(getActivityAttributes());
|
||||
i++) {
|
||||
java.lang.Object obj = java.lang.reflect.Array.get(getActivityAttributes(), i);
|
||||
if (obj != null &&
|
||||
!obj.getClass().isArray()) {
|
||||
_hashCode += obj.hashCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (getCampaign() != null) {
|
||||
_hashCode += getCampaign().hashCode();
|
||||
}
|
||||
if (getPersonName() != null) {
|
||||
_hashCode += getPersonName().hashCode();
|
||||
}
|
||||
if (getMktPersonId() != null) {
|
||||
_hashCode += getMktPersonId().hashCode();
|
||||
}
|
||||
if (getForeignSysId() != null) {
|
||||
_hashCode += getForeignSysId().hashCode();
|
||||
}
|
||||
if (getOrgName() != null) {
|
||||
_hashCode += getOrgName().hashCode();
|
||||
}
|
||||
if (getForeignSysOrgId() != null) {
|
||||
_hashCode += getForeignSysOrgId().hashCode();
|
||||
}
|
||||
__hashCodeCalc = false;
|
||||
return _hashCode;
|
||||
}
|
||||
|
||||
// Type metadata
|
||||
private static org.apache.axis.description.TypeDesc typeDesc =
|
||||
new org.apache.axis.description.TypeDesc(ActivityRecord.class, true);
|
||||
|
||||
static {
|
||||
typeDesc.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "ActivityRecord"));
|
||||
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("id");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "id"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("activityDateTime");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "activityDateTime"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("activityType");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "activityType"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("mktgAssetName");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "mktgAssetName"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("activityAttributes");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "activityAttributes"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "Attribute"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
elemField.setItemQName(new javax.xml.namespace.QName("", "attribute"));
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("campaign");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "campaign"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("personName");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "personName"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("mktPersonId");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "mktPersonId"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("foreignSysId");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "foreignSysId"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("orgName");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "orgName"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("foreignSysOrgId");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "foreignSysOrgId"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(true);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return type metadata object
|
||||
*/
|
||||
public static org.apache.axis.description.TypeDesc getTypeDesc() {
|
||||
return typeDesc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Serializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Serializer getSerializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanSerializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Deserializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Deserializer getDeserializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanDeserializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,320 +1,186 @@
|
||||
/**
|
||||
* ActivityType.java
|
||||
*
|
||||
* This file was auto-generated from WSDL by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
|
||||
*/
|
||||
|
||||
package com.marketo.www.mktows;
|
||||
|
||||
public class ActivityType implements java.io.Serializable {
|
||||
|
||||
private java.lang.String _value_;
|
||||
|
||||
private static java.util.HashMap _table_ = new java.util.HashMap();
|
||||
|
||||
// Constructor
|
||||
protected ActivityType(java.lang.String value) {
|
||||
_value_ = value;
|
||||
_table_.put(_value_, this);
|
||||
}
|
||||
|
||||
public static final java.lang.String _VisitWebpage = "VisitWebpage";
|
||||
|
||||
public static final java.lang.String _FillOutForm = "FillOutForm";
|
||||
|
||||
public static final java.lang.String _ClickLink = "ClickLink";
|
||||
|
||||
public static final java.lang.String _RegisterForEvent = "RegisterForEvent";
|
||||
|
||||
public static final java.lang.String _AttendEvent = "AttendEvent";
|
||||
|
||||
public static final java.lang.String _SendEmail = "SendEmail";
|
||||
|
||||
public static final java.lang.String _EmailDelivered = "EmailDelivered";
|
||||
|
||||
public static final java.lang.String _EmailBounced = "EmailBounced";
|
||||
|
||||
public static final java.lang.String _UnsubscribeEmail = "UnsubscribeEmail";
|
||||
|
||||
public static final java.lang.String _OpenEmail = "OpenEmail";
|
||||
|
||||
public static final java.lang.String _ClickEmail = "ClickEmail";
|
||||
|
||||
public static final java.lang.String _NewLead = "NewLead";
|
||||
|
||||
public static final java.lang.String _ChangeDataValue = "ChangeDataValue";
|
||||
|
||||
public static final java.lang.String _LeadAssigned = "LeadAssigned";
|
||||
|
||||
public static final java.lang.String _NewSFDCOpprtnty = "NewSFDCOpprtnty";
|
||||
|
||||
public static final java.lang.String _Wait = "Wait";
|
||||
|
||||
public static final java.lang.String _RunSubflow = "RunSubflow";
|
||||
|
||||
public static final java.lang.String _RemoveFromFlow = "RemoveFromFlow";
|
||||
|
||||
public static final java.lang.String _PushLeadToSales = "PushLeadToSales";
|
||||
|
||||
public static final java.lang.String _CreateTask = "CreateTask";
|
||||
|
||||
public static final java.lang.String _ConvertLead = "ConvertLead";
|
||||
|
||||
public static final java.lang.String _ChangeScore = "ChangeScore";
|
||||
|
||||
public static final java.lang.String _ChangeOwner = "ChangeOwner";
|
||||
|
||||
public static final java.lang.String _AddToList = "AddToList";
|
||||
|
||||
public static final java.lang.String _RemoveFromList = "RemoveFromList";
|
||||
|
||||
public static final java.lang.String _SFDCActivity = "SFDCActivity";
|
||||
|
||||
public static final java.lang.String _EmailBouncedSoft = "EmailBouncedSoft";
|
||||
|
||||
public static final java.lang.String _PushLeadUpdatesToSales = "PushLeadUpdatesToSales";
|
||||
|
||||
public static final java.lang.String _DeleteLeadFromSales = "DeleteLeadFromSales";
|
||||
|
||||
public static final java.lang.String _SFDCActivityUpdated = "SFDCActivityUpdated";
|
||||
|
||||
public static final java.lang.String _SFDCMergeLeads = "SFDCMergeLeads";
|
||||
|
||||
public static final java.lang.String _MergeLeads = "MergeLeads";
|
||||
|
||||
public static final java.lang.String _ResolveConflicts = "ResolveConflicts";
|
||||
|
||||
public static final java.lang.String _AssocWithOpprtntyInSales = "AssocWithOpprtntyInSales";
|
||||
|
||||
public static final java.lang.String _DissocFromOpprtntyInSales = "DissocFromOpprtntyInSales";
|
||||
|
||||
public static final java.lang.String _UpdateOpprtntyInSales = "UpdateOpprtntyInSales";
|
||||
|
||||
public static final java.lang.String _DeleteLead = "DeleteLead";
|
||||
|
||||
public static final java.lang.String _SendAlert = "SendAlert";
|
||||
|
||||
public static final java.lang.String _SendSalesEmail = "SendSalesEmail";
|
||||
|
||||
public static final java.lang.String _OpenSalesEmail = "OpenSalesEmail";
|
||||
|
||||
public static final java.lang.String _ClickSalesEmail = "ClickSalesEmail";
|
||||
|
||||
public static final java.lang.String _AddtoSFDCCampaign = "AddtoSFDCCampaign";
|
||||
|
||||
public static final java.lang.String _RemoveFromSFDCCampaign = "RemoveFromSFDCCampaign";
|
||||
|
||||
public static final java.lang.String _ChangeStatusInSFDCCampaign = "ChangeStatusInSFDCCampaign";
|
||||
|
||||
public static final java.lang.String _ReceiveSalesEmail = "ReceiveSalesEmail";
|
||||
|
||||
public static final java.lang.String _InterestingMoment = "InterestingMoment";
|
||||
|
||||
public static final java.lang.String _RequestCampaign = "RequestCampaign";
|
||||
|
||||
public static final java.lang.String _SalesEmailBounced = "SalesEmailBounced";
|
||||
|
||||
public static final java.lang.String _ChangeLeadPartition = "ChangeLeadPartition";
|
||||
|
||||
public static final java.lang.String _ChangeRevenueStage = "ChangeRevenueStage";
|
||||
|
||||
public static final java.lang.String _ChangeRevenueStageManually = "ChangeRevenueStageManually";
|
||||
|
||||
public static final java.lang.String _ComputeDataValue = "ComputeDataValue";
|
||||
|
||||
public static final java.lang.String _ChangeStatusInProgression = "ChangeStatusInProgression";
|
||||
|
||||
public static final java.lang.String _ChangeFieldInProgram = "ChangeFieldInProgram";
|
||||
|
||||
public static final java.lang.String _EnrichWithDatacom = "EnrichWithDatacom";
|
||||
|
||||
public static final java.lang.String _ChangeSegment = "ChangeSegment";
|
||||
|
||||
public static final java.lang.String _ComputeSegmentation = "ComputeSegmentation";
|
||||
|
||||
public static final java.lang.String _ResolveRuleset = "ResolveRuleset";
|
||||
|
||||
public static final java.lang.String _SmartCampaignTest = "SmartCampaignTest";
|
||||
|
||||
public static final java.lang.String _SmartCampaignTestTrigger = "SmartCampaignTestTrigger";
|
||||
|
||||
public static final ActivityType VisitWebpage = new ActivityType(_VisitWebpage);
|
||||
|
||||
public static final ActivityType FillOutForm = new ActivityType(_FillOutForm);
|
||||
|
||||
public static final ActivityType ClickLink = new ActivityType(_ClickLink);
|
||||
|
||||
public static final ActivityType RegisterForEvent = new ActivityType(_RegisterForEvent);
|
||||
|
||||
public static final ActivityType AttendEvent = new ActivityType(_AttendEvent);
|
||||
|
||||
public static final ActivityType SendEmail = new ActivityType(_SendEmail);
|
||||
|
||||
public static final ActivityType EmailDelivered = new ActivityType(_EmailDelivered);
|
||||
|
||||
public static final ActivityType EmailBounced = new ActivityType(_EmailBounced);
|
||||
|
||||
public static final ActivityType UnsubscribeEmail = new ActivityType(_UnsubscribeEmail);
|
||||
|
||||
public static final ActivityType OpenEmail = new ActivityType(_OpenEmail);
|
||||
|
||||
public static final ActivityType ClickEmail = new ActivityType(_ClickEmail);
|
||||
|
||||
public static final ActivityType NewLead = new ActivityType(_NewLead);
|
||||
|
||||
public static final ActivityType ChangeDataValue = new ActivityType(_ChangeDataValue);
|
||||
|
||||
public static final ActivityType LeadAssigned = new ActivityType(_LeadAssigned);
|
||||
|
||||
public static final ActivityType NewSFDCOpprtnty = new ActivityType(_NewSFDCOpprtnty);
|
||||
|
||||
public static final ActivityType Wait = new ActivityType(_Wait);
|
||||
|
||||
public static final ActivityType RunSubflow = new ActivityType(_RunSubflow);
|
||||
|
||||
public static final ActivityType RemoveFromFlow = new ActivityType(_RemoveFromFlow);
|
||||
|
||||
public static final ActivityType PushLeadToSales = new ActivityType(_PushLeadToSales);
|
||||
|
||||
public static final ActivityType CreateTask = new ActivityType(_CreateTask);
|
||||
|
||||
public static final ActivityType ConvertLead = new ActivityType(_ConvertLead);
|
||||
|
||||
public static final ActivityType ChangeScore = new ActivityType(_ChangeScore);
|
||||
|
||||
public static final ActivityType ChangeOwner = new ActivityType(_ChangeOwner);
|
||||
|
||||
public static final ActivityType AddToList = new ActivityType(_AddToList);
|
||||
|
||||
public static final ActivityType RemoveFromList = new ActivityType(_RemoveFromList);
|
||||
|
||||
public static final ActivityType SFDCActivity = new ActivityType(_SFDCActivity);
|
||||
|
||||
public static final ActivityType EmailBouncedSoft = new ActivityType(_EmailBouncedSoft);
|
||||
|
||||
public static final ActivityType PushLeadUpdatesToSales = new ActivityType(_PushLeadUpdatesToSales);
|
||||
|
||||
public static final ActivityType DeleteLeadFromSales = new ActivityType(_DeleteLeadFromSales);
|
||||
|
||||
public static final ActivityType SFDCActivityUpdated = new ActivityType(_SFDCActivityUpdated);
|
||||
|
||||
public static final ActivityType SFDCMergeLeads = new ActivityType(_SFDCMergeLeads);
|
||||
|
||||
public static final ActivityType MergeLeads = new ActivityType(_MergeLeads);
|
||||
|
||||
public static final ActivityType ResolveConflicts = new ActivityType(_ResolveConflicts);
|
||||
|
||||
public static final ActivityType AssocWithOpprtntyInSales = new ActivityType(_AssocWithOpprtntyInSales);
|
||||
|
||||
public static final ActivityType DissocFromOpprtntyInSales = new ActivityType(_DissocFromOpprtntyInSales);
|
||||
|
||||
public static final ActivityType UpdateOpprtntyInSales = new ActivityType(_UpdateOpprtntyInSales);
|
||||
|
||||
public static final ActivityType DeleteLead = new ActivityType(_DeleteLead);
|
||||
|
||||
public static final ActivityType SendAlert = new ActivityType(_SendAlert);
|
||||
|
||||
public static final ActivityType SendSalesEmail = new ActivityType(_SendSalesEmail);
|
||||
|
||||
public static final ActivityType OpenSalesEmail = new ActivityType(_OpenSalesEmail);
|
||||
|
||||
public static final ActivityType ClickSalesEmail = new ActivityType(_ClickSalesEmail);
|
||||
|
||||
public static final ActivityType AddtoSFDCCampaign = new ActivityType(_AddtoSFDCCampaign);
|
||||
|
||||
public static final ActivityType RemoveFromSFDCCampaign = new ActivityType(_RemoveFromSFDCCampaign);
|
||||
|
||||
public static final ActivityType ChangeStatusInSFDCCampaign = new ActivityType(_ChangeStatusInSFDCCampaign);
|
||||
|
||||
public static final ActivityType ReceiveSalesEmail = new ActivityType(_ReceiveSalesEmail);
|
||||
|
||||
public static final ActivityType InterestingMoment = new ActivityType(_InterestingMoment);
|
||||
|
||||
public static final ActivityType RequestCampaign = new ActivityType(_RequestCampaign);
|
||||
|
||||
public static final ActivityType SalesEmailBounced = new ActivityType(_SalesEmailBounced);
|
||||
|
||||
public static final ActivityType ChangeLeadPartition = new ActivityType(_ChangeLeadPartition);
|
||||
|
||||
public static final ActivityType ChangeRevenueStage = new ActivityType(_ChangeRevenueStage);
|
||||
|
||||
public static final ActivityType ChangeRevenueStageManually = new ActivityType(_ChangeRevenueStageManually);
|
||||
|
||||
public static final ActivityType ComputeDataValue = new ActivityType(_ComputeDataValue);
|
||||
|
||||
public static final ActivityType ChangeStatusInProgression = new ActivityType(_ChangeStatusInProgression);
|
||||
|
||||
public static final ActivityType ChangeFieldInProgram = new ActivityType(_ChangeFieldInProgram);
|
||||
|
||||
public static final ActivityType EnrichWithDatacom = new ActivityType(_EnrichWithDatacom);
|
||||
|
||||
public static final ActivityType ChangeSegment = new ActivityType(_ChangeSegment);
|
||||
|
||||
public static final ActivityType ComputeSegmentation = new ActivityType(_ComputeSegmentation);
|
||||
|
||||
public static final ActivityType ResolveRuleset = new ActivityType(_ResolveRuleset);
|
||||
|
||||
public static final ActivityType SmartCampaignTest = new ActivityType(_SmartCampaignTest);
|
||||
|
||||
public static final ActivityType SmartCampaignTestTrigger = new ActivityType(_SmartCampaignTestTrigger);
|
||||
|
||||
public java.lang.String getValue() {
|
||||
return _value_;
|
||||
}
|
||||
|
||||
public static ActivityType fromValue(java.lang.String value) throws java.lang.IllegalArgumentException {
|
||||
ActivityType enumeration = (ActivityType) _table_.get(value);
|
||||
if (enumeration == null) {
|
||||
throw new java.lang.IllegalArgumentException();
|
||||
}
|
||||
return enumeration;
|
||||
}
|
||||
|
||||
public static ActivityType fromString(java.lang.String value) throws java.lang.IllegalArgumentException {
|
||||
return fromValue(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(java.lang.Object obj) {
|
||||
return (obj == this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return toString().hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.lang.String toString() {
|
||||
return _value_;
|
||||
}
|
||||
|
||||
public java.lang.Object readResolve() throws java.io.ObjectStreamException {
|
||||
return fromValue(_value_);
|
||||
}
|
||||
|
||||
public static org.apache.axis.encoding.Serializer getSerializer(java.lang.String mechType, java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return new org.apache.axis.encoding.ser.EnumSerializer(_javaType, _xmlType);
|
||||
}
|
||||
|
||||
public static org.apache.axis.encoding.Deserializer getDeserializer(java.lang.String mechType, java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return new org.apache.axis.encoding.ser.EnumDeserializer(_javaType, _xmlType);
|
||||
}
|
||||
|
||||
// Type metadata
|
||||
private static org.apache.axis.description.TypeDesc typeDesc = new org.apache.axis.description.TypeDesc(ActivityType.class);
|
||||
|
||||
static {
|
||||
typeDesc.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "ActivityType"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return type metadata object
|
||||
*/
|
||||
public static org.apache.axis.description.TypeDesc getTypeDesc() {
|
||||
return typeDesc;
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* ActivityType.java
|
||||
*
|
||||
* This file was auto-generated from WSDL
|
||||
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
|
||||
*/
|
||||
|
||||
package com.marketo.www.mktows;
|
||||
|
||||
public class ActivityType implements java.io.Serializable {
|
||||
private java.lang.String _value_;
|
||||
private static java.util.HashMap _table_ = new java.util.HashMap();
|
||||
|
||||
// Constructor
|
||||
protected ActivityType(java.lang.String value) {
|
||||
_value_ = value;
|
||||
_table_.put(_value_,this);
|
||||
}
|
||||
|
||||
public static final java.lang.String _VisitWebpage = "VisitWebpage";
|
||||
public static final java.lang.String _FillOutForm = "FillOutForm";
|
||||
public static final java.lang.String _ClickLink = "ClickLink";
|
||||
public static final java.lang.String _RegisterForEvent = "RegisterForEvent";
|
||||
public static final java.lang.String _AttendEvent = "AttendEvent";
|
||||
public static final java.lang.String _SendEmail = "SendEmail";
|
||||
public static final java.lang.String _EmailDelivered = "EmailDelivered";
|
||||
public static final java.lang.String _EmailBounced = "EmailBounced";
|
||||
public static final java.lang.String _UnsubscribeEmail = "UnsubscribeEmail";
|
||||
public static final java.lang.String _OpenEmail = "OpenEmail";
|
||||
public static final java.lang.String _ClickEmail = "ClickEmail";
|
||||
public static final java.lang.String _NewLead = "NewLead";
|
||||
public static final java.lang.String _ChangeDataValue = "ChangeDataValue";
|
||||
public static final java.lang.String _LeadAssigned = "LeadAssigned";
|
||||
public static final java.lang.String _NewSFDCOpprtnty = "NewSFDCOpprtnty";
|
||||
public static final java.lang.String _Wait = "Wait";
|
||||
public static final java.lang.String _RunSubflow = "RunSubflow";
|
||||
public static final java.lang.String _RemoveFromFlow = "RemoveFromFlow";
|
||||
public static final java.lang.String _PushLeadToSales = "PushLeadToSales";
|
||||
public static final java.lang.String _CreateTask = "CreateTask";
|
||||
public static final java.lang.String _ConvertLead = "ConvertLead";
|
||||
public static final java.lang.String _ChangeScore = "ChangeScore";
|
||||
public static final java.lang.String _ChangeOwner = "ChangeOwner";
|
||||
public static final java.lang.String _AddToList = "AddToList";
|
||||
public static final java.lang.String _RemoveFromList = "RemoveFromList";
|
||||
public static final java.lang.String _SFDCActivity = "SFDCActivity";
|
||||
public static final java.lang.String _EmailBouncedSoft = "EmailBouncedSoft";
|
||||
public static final java.lang.String _PushLeadUpdatesToSales = "PushLeadUpdatesToSales";
|
||||
public static final java.lang.String _DeleteLeadFromSales = "DeleteLeadFromSales";
|
||||
public static final java.lang.String _SFDCActivityUpdated = "SFDCActivityUpdated";
|
||||
public static final java.lang.String _SFDCMergeLeads = "SFDCMergeLeads";
|
||||
public static final java.lang.String _MergeLeads = "MergeLeads";
|
||||
public static final java.lang.String _ResolveConflicts = "ResolveConflicts";
|
||||
public static final java.lang.String _AssocWithOpprtntyInSales = "AssocWithOpprtntyInSales";
|
||||
public static final java.lang.String _DissocFromOpprtntyInSales = "DissocFromOpprtntyInSales";
|
||||
public static final java.lang.String _UpdateOpprtntyInSales = "UpdateOpprtntyInSales";
|
||||
public static final java.lang.String _DeleteLead = "DeleteLead";
|
||||
public static final java.lang.String _SendAlert = "SendAlert";
|
||||
public static final java.lang.String _SendSalesEmail = "SendSalesEmail";
|
||||
public static final java.lang.String _OpenSalesEmail = "OpenSalesEmail";
|
||||
public static final java.lang.String _ClickSalesEmail = "ClickSalesEmail";
|
||||
public static final java.lang.String _AddtoSFDCCampaign = "AddtoSFDCCampaign";
|
||||
public static final java.lang.String _RemoveFromSFDCCampaign = "RemoveFromSFDCCampaign";
|
||||
public static final java.lang.String _ChangeStatusInSFDCCampaign = "ChangeStatusInSFDCCampaign";
|
||||
public static final java.lang.String _ReceiveSalesEmail = "ReceiveSalesEmail";
|
||||
public static final java.lang.String _InterestingMoment = "InterestingMoment";
|
||||
public static final java.lang.String _RequestCampaign = "RequestCampaign";
|
||||
public static final java.lang.String _SalesEmailBounced = "SalesEmailBounced";
|
||||
public static final java.lang.String _ChangeLeadPartition = "ChangeLeadPartition";
|
||||
public static final java.lang.String _ChangeRevenueStage = "ChangeRevenueStage";
|
||||
public static final java.lang.String _ChangeRevenueStageManually = "ChangeRevenueStageManually";
|
||||
public static final java.lang.String _ComputeDataValue = "ComputeDataValue";
|
||||
public static final java.lang.String _ChangeStatusInProgression = "ChangeStatusInProgression";
|
||||
public static final java.lang.String _ChangeFieldInProgram = "ChangeFieldInProgram";
|
||||
public static final java.lang.String _EnrichWithDatacom = "EnrichWithDatacom";
|
||||
public static final java.lang.String _ChangeSegment = "ChangeSegment";
|
||||
public static final java.lang.String _ComputeSegmentation = "ComputeSegmentation";
|
||||
public static final java.lang.String _ResolveRuleset = "ResolveRuleset";
|
||||
public static final java.lang.String _SmartCampaignTest = "SmartCampaignTest";
|
||||
public static final java.lang.String _SmartCampaignTestTrigger = "SmartCampaignTestTrigger";
|
||||
public static final ActivityType VisitWebpage = new ActivityType(_VisitWebpage);
|
||||
public static final ActivityType FillOutForm = new ActivityType(_FillOutForm);
|
||||
public static final ActivityType ClickLink = new ActivityType(_ClickLink);
|
||||
public static final ActivityType RegisterForEvent = new ActivityType(_RegisterForEvent);
|
||||
public static final ActivityType AttendEvent = new ActivityType(_AttendEvent);
|
||||
public static final ActivityType SendEmail = new ActivityType(_SendEmail);
|
||||
public static final ActivityType EmailDelivered = new ActivityType(_EmailDelivered);
|
||||
public static final ActivityType EmailBounced = new ActivityType(_EmailBounced);
|
||||
public static final ActivityType UnsubscribeEmail = new ActivityType(_UnsubscribeEmail);
|
||||
public static final ActivityType OpenEmail = new ActivityType(_OpenEmail);
|
||||
public static final ActivityType ClickEmail = new ActivityType(_ClickEmail);
|
||||
public static final ActivityType NewLead = new ActivityType(_NewLead);
|
||||
public static final ActivityType ChangeDataValue = new ActivityType(_ChangeDataValue);
|
||||
public static final ActivityType LeadAssigned = new ActivityType(_LeadAssigned);
|
||||
public static final ActivityType NewSFDCOpprtnty = new ActivityType(_NewSFDCOpprtnty);
|
||||
public static final ActivityType Wait = new ActivityType(_Wait);
|
||||
public static final ActivityType RunSubflow = new ActivityType(_RunSubflow);
|
||||
public static final ActivityType RemoveFromFlow = new ActivityType(_RemoveFromFlow);
|
||||
public static final ActivityType PushLeadToSales = new ActivityType(_PushLeadToSales);
|
||||
public static final ActivityType CreateTask = new ActivityType(_CreateTask);
|
||||
public static final ActivityType ConvertLead = new ActivityType(_ConvertLead);
|
||||
public static final ActivityType ChangeScore = new ActivityType(_ChangeScore);
|
||||
public static final ActivityType ChangeOwner = new ActivityType(_ChangeOwner);
|
||||
public static final ActivityType AddToList = new ActivityType(_AddToList);
|
||||
public static final ActivityType RemoveFromList = new ActivityType(_RemoveFromList);
|
||||
public static final ActivityType SFDCActivity = new ActivityType(_SFDCActivity);
|
||||
public static final ActivityType EmailBouncedSoft = new ActivityType(_EmailBouncedSoft);
|
||||
public static final ActivityType PushLeadUpdatesToSales = new ActivityType(_PushLeadUpdatesToSales);
|
||||
public static final ActivityType DeleteLeadFromSales = new ActivityType(_DeleteLeadFromSales);
|
||||
public static final ActivityType SFDCActivityUpdated = new ActivityType(_SFDCActivityUpdated);
|
||||
public static final ActivityType SFDCMergeLeads = new ActivityType(_SFDCMergeLeads);
|
||||
public static final ActivityType MergeLeads = new ActivityType(_MergeLeads);
|
||||
public static final ActivityType ResolveConflicts = new ActivityType(_ResolveConflicts);
|
||||
public static final ActivityType AssocWithOpprtntyInSales = new ActivityType(_AssocWithOpprtntyInSales);
|
||||
public static final ActivityType DissocFromOpprtntyInSales = new ActivityType(_DissocFromOpprtntyInSales);
|
||||
public static final ActivityType UpdateOpprtntyInSales = new ActivityType(_UpdateOpprtntyInSales);
|
||||
public static final ActivityType DeleteLead = new ActivityType(_DeleteLead);
|
||||
public static final ActivityType SendAlert = new ActivityType(_SendAlert);
|
||||
public static final ActivityType SendSalesEmail = new ActivityType(_SendSalesEmail);
|
||||
public static final ActivityType OpenSalesEmail = new ActivityType(_OpenSalesEmail);
|
||||
public static final ActivityType ClickSalesEmail = new ActivityType(_ClickSalesEmail);
|
||||
public static final ActivityType AddtoSFDCCampaign = new ActivityType(_AddtoSFDCCampaign);
|
||||
public static final ActivityType RemoveFromSFDCCampaign = new ActivityType(_RemoveFromSFDCCampaign);
|
||||
public static final ActivityType ChangeStatusInSFDCCampaign = new ActivityType(_ChangeStatusInSFDCCampaign);
|
||||
public static final ActivityType ReceiveSalesEmail = new ActivityType(_ReceiveSalesEmail);
|
||||
public static final ActivityType InterestingMoment = new ActivityType(_InterestingMoment);
|
||||
public static final ActivityType RequestCampaign = new ActivityType(_RequestCampaign);
|
||||
public static final ActivityType SalesEmailBounced = new ActivityType(_SalesEmailBounced);
|
||||
public static final ActivityType ChangeLeadPartition = new ActivityType(_ChangeLeadPartition);
|
||||
public static final ActivityType ChangeRevenueStage = new ActivityType(_ChangeRevenueStage);
|
||||
public static final ActivityType ChangeRevenueStageManually = new ActivityType(_ChangeRevenueStageManually);
|
||||
public static final ActivityType ComputeDataValue = new ActivityType(_ComputeDataValue);
|
||||
public static final ActivityType ChangeStatusInProgression = new ActivityType(_ChangeStatusInProgression);
|
||||
public static final ActivityType ChangeFieldInProgram = new ActivityType(_ChangeFieldInProgram);
|
||||
public static final ActivityType EnrichWithDatacom = new ActivityType(_EnrichWithDatacom);
|
||||
public static final ActivityType ChangeSegment = new ActivityType(_ChangeSegment);
|
||||
public static final ActivityType ComputeSegmentation = new ActivityType(_ComputeSegmentation);
|
||||
public static final ActivityType ResolveRuleset = new ActivityType(_ResolveRuleset);
|
||||
public static final ActivityType SmartCampaignTest = new ActivityType(_SmartCampaignTest);
|
||||
public static final ActivityType SmartCampaignTestTrigger = new ActivityType(_SmartCampaignTestTrigger);
|
||||
public java.lang.String getValue() { return _value_;}
|
||||
public static ActivityType fromValue(java.lang.String value)
|
||||
throws java.lang.IllegalArgumentException {
|
||||
ActivityType enumeration = (ActivityType)
|
||||
_table_.get(value);
|
||||
if (enumeration==null) throw new java.lang.IllegalArgumentException();
|
||||
return enumeration;
|
||||
}
|
||||
public static ActivityType fromString(java.lang.String value)
|
||||
throws java.lang.IllegalArgumentException {
|
||||
return fromValue(value);
|
||||
}
|
||||
public boolean equals(java.lang.Object obj) {return (obj == this);}
|
||||
public int hashCode() { return toString().hashCode();}
|
||||
public java.lang.String toString() { return _value_;}
|
||||
public java.lang.Object readResolve() throws java.io.ObjectStreamException { return fromValue(_value_);}
|
||||
public static org.apache.axis.encoding.Serializer getSerializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.EnumSerializer(
|
||||
_javaType, _xmlType);
|
||||
}
|
||||
public static org.apache.axis.encoding.Deserializer getDeserializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.EnumDeserializer(
|
||||
_javaType, _xmlType);
|
||||
}
|
||||
// Type metadata
|
||||
private static org.apache.axis.description.TypeDesc typeDesc =
|
||||
new org.apache.axis.description.TypeDesc(ActivityType.class);
|
||||
|
||||
static {
|
||||
typeDesc.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "ActivityType"));
|
||||
}
|
||||
/**
|
||||
* Return type metadata object
|
||||
*/
|
||||
public static org.apache.axis.description.TypeDesc getTypeDesc() {
|
||||
return typeDesc;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,175 +1,175 @@
|
||||
/**
|
||||
* ActivityTypeFilter.java
|
||||
*
|
||||
* This file was auto-generated from WSDL
|
||||
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
|
||||
*/
|
||||
|
||||
package com.marketo.www.mktows;
|
||||
|
||||
public class ActivityTypeFilter implements java.io.Serializable {
|
||||
private com.marketo.www.mktows.ActivityType[] includeTypes;
|
||||
|
||||
private com.marketo.www.mktows.ActivityType[] excludeTypes;
|
||||
|
||||
public ActivityTypeFilter() {
|
||||
}
|
||||
|
||||
public ActivityTypeFilter(
|
||||
com.marketo.www.mktows.ActivityType[] includeTypes,
|
||||
com.marketo.www.mktows.ActivityType[] excludeTypes) {
|
||||
this.includeTypes = includeTypes;
|
||||
this.excludeTypes = excludeTypes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the includeTypes value for this ActivityTypeFilter.
|
||||
*
|
||||
* @return includeTypes
|
||||
*/
|
||||
public com.marketo.www.mktows.ActivityType[] getIncludeTypes() {
|
||||
return includeTypes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the includeTypes value for this ActivityTypeFilter.
|
||||
*
|
||||
* @param includeTypes
|
||||
*/
|
||||
public void setIncludeTypes(com.marketo.www.mktows.ActivityType[] includeTypes) {
|
||||
this.includeTypes = includeTypes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the excludeTypes value for this ActivityTypeFilter.
|
||||
*
|
||||
* @return excludeTypes
|
||||
*/
|
||||
public com.marketo.www.mktows.ActivityType[] getExcludeTypes() {
|
||||
return excludeTypes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the excludeTypes value for this ActivityTypeFilter.
|
||||
*
|
||||
* @param excludeTypes
|
||||
*/
|
||||
public void setExcludeTypes(com.marketo.www.mktows.ActivityType[] excludeTypes) {
|
||||
this.excludeTypes = excludeTypes;
|
||||
}
|
||||
|
||||
private java.lang.Object __equalsCalc = null;
|
||||
public synchronized boolean equals(java.lang.Object obj) {
|
||||
if (!(obj instanceof ActivityTypeFilter)) return false;
|
||||
ActivityTypeFilter other = (ActivityTypeFilter) obj;
|
||||
if (obj == null) return false;
|
||||
if (this == obj) return true;
|
||||
if (__equalsCalc != null) {
|
||||
return (__equalsCalc == obj);
|
||||
}
|
||||
__equalsCalc = obj;
|
||||
boolean _equals;
|
||||
_equals = true &&
|
||||
((this.includeTypes==null && other.getIncludeTypes()==null) ||
|
||||
(this.includeTypes!=null &&
|
||||
java.util.Arrays.equals(this.includeTypes, other.getIncludeTypes()))) &&
|
||||
((this.excludeTypes==null && other.getExcludeTypes()==null) ||
|
||||
(this.excludeTypes!=null &&
|
||||
java.util.Arrays.equals(this.excludeTypes, other.getExcludeTypes())));
|
||||
__equalsCalc = null;
|
||||
return _equals;
|
||||
}
|
||||
|
||||
private boolean __hashCodeCalc = false;
|
||||
public synchronized int hashCode() {
|
||||
if (__hashCodeCalc) {
|
||||
return 0;
|
||||
}
|
||||
__hashCodeCalc = true;
|
||||
int _hashCode = 1;
|
||||
if (getIncludeTypes() != null) {
|
||||
for (int i=0;
|
||||
i<java.lang.reflect.Array.getLength(getIncludeTypes());
|
||||
i++) {
|
||||
java.lang.Object obj = java.lang.reflect.Array.get(getIncludeTypes(), i);
|
||||
if (obj != null &&
|
||||
!obj.getClass().isArray()) {
|
||||
_hashCode += obj.hashCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (getExcludeTypes() != null) {
|
||||
for (int i=0;
|
||||
i<java.lang.reflect.Array.getLength(getExcludeTypes());
|
||||
i++) {
|
||||
java.lang.Object obj = java.lang.reflect.Array.get(getExcludeTypes(), i);
|
||||
if (obj != null &&
|
||||
!obj.getClass().isArray()) {
|
||||
_hashCode += obj.hashCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
__hashCodeCalc = false;
|
||||
return _hashCode;
|
||||
}
|
||||
|
||||
// Type metadata
|
||||
private static org.apache.axis.description.TypeDesc typeDesc =
|
||||
new org.apache.axis.description.TypeDesc(ActivityTypeFilter.class, true);
|
||||
|
||||
static {
|
||||
typeDesc.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "ActivityTypeFilter"));
|
||||
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("includeTypes");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "includeTypes"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "ActivityType"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(false);
|
||||
elemField.setItemQName(new javax.xml.namespace.QName("", "activityType"));
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("excludeTypes");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "excludeTypes"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "ActivityType"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(false);
|
||||
elemField.setItemQName(new javax.xml.namespace.QName("", "activityType"));
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return type metadata object
|
||||
*/
|
||||
public static org.apache.axis.description.TypeDesc getTypeDesc() {
|
||||
return typeDesc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Serializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Serializer getSerializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanSerializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Deserializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Deserializer getDeserializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanDeserializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* ActivityTypeFilter.java
|
||||
*
|
||||
* This file was auto-generated from WSDL
|
||||
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
|
||||
*/
|
||||
|
||||
package com.marketo.www.mktows;
|
||||
|
||||
public class ActivityTypeFilter implements java.io.Serializable {
|
||||
private com.marketo.www.mktows.ActivityType[] includeTypes;
|
||||
|
||||
private com.marketo.www.mktows.ActivityType[] excludeTypes;
|
||||
|
||||
public ActivityTypeFilter() {
|
||||
}
|
||||
|
||||
public ActivityTypeFilter(
|
||||
com.marketo.www.mktows.ActivityType[] includeTypes,
|
||||
com.marketo.www.mktows.ActivityType[] excludeTypes) {
|
||||
this.includeTypes = includeTypes;
|
||||
this.excludeTypes = excludeTypes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the includeTypes value for this ActivityTypeFilter.
|
||||
*
|
||||
* @return includeTypes
|
||||
*/
|
||||
public com.marketo.www.mktows.ActivityType[] getIncludeTypes() {
|
||||
return includeTypes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the includeTypes value for this ActivityTypeFilter.
|
||||
*
|
||||
* @param includeTypes
|
||||
*/
|
||||
public void setIncludeTypes(com.marketo.www.mktows.ActivityType[] includeTypes) {
|
||||
this.includeTypes = includeTypes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the excludeTypes value for this ActivityTypeFilter.
|
||||
*
|
||||
* @return excludeTypes
|
||||
*/
|
||||
public com.marketo.www.mktows.ActivityType[] getExcludeTypes() {
|
||||
return excludeTypes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the excludeTypes value for this ActivityTypeFilter.
|
||||
*
|
||||
* @param excludeTypes
|
||||
*/
|
||||
public void setExcludeTypes(com.marketo.www.mktows.ActivityType[] excludeTypes) {
|
||||
this.excludeTypes = excludeTypes;
|
||||
}
|
||||
|
||||
private java.lang.Object __equalsCalc = null;
|
||||
public synchronized boolean equals(java.lang.Object obj) {
|
||||
if (!(obj instanceof ActivityTypeFilter)) return false;
|
||||
ActivityTypeFilter other = (ActivityTypeFilter) obj;
|
||||
if (obj == null) return false;
|
||||
if (this == obj) return true;
|
||||
if (__equalsCalc != null) {
|
||||
return (__equalsCalc == obj);
|
||||
}
|
||||
__equalsCalc = obj;
|
||||
boolean _equals;
|
||||
_equals = true &&
|
||||
((this.includeTypes==null && other.getIncludeTypes()==null) ||
|
||||
(this.includeTypes!=null &&
|
||||
java.util.Arrays.equals(this.includeTypes, other.getIncludeTypes()))) &&
|
||||
((this.excludeTypes==null && other.getExcludeTypes()==null) ||
|
||||
(this.excludeTypes!=null &&
|
||||
java.util.Arrays.equals(this.excludeTypes, other.getExcludeTypes())));
|
||||
__equalsCalc = null;
|
||||
return _equals;
|
||||
}
|
||||
|
||||
private boolean __hashCodeCalc = false;
|
||||
public synchronized int hashCode() {
|
||||
if (__hashCodeCalc) {
|
||||
return 0;
|
||||
}
|
||||
__hashCodeCalc = true;
|
||||
int _hashCode = 1;
|
||||
if (getIncludeTypes() != null) {
|
||||
for (int i=0;
|
||||
i<java.lang.reflect.Array.getLength(getIncludeTypes());
|
||||
i++) {
|
||||
java.lang.Object obj = java.lang.reflect.Array.get(getIncludeTypes(), i);
|
||||
if (obj != null &&
|
||||
!obj.getClass().isArray()) {
|
||||
_hashCode += obj.hashCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (getExcludeTypes() != null) {
|
||||
for (int i=0;
|
||||
i<java.lang.reflect.Array.getLength(getExcludeTypes());
|
||||
i++) {
|
||||
java.lang.Object obj = java.lang.reflect.Array.get(getExcludeTypes(), i);
|
||||
if (obj != null &&
|
||||
!obj.getClass().isArray()) {
|
||||
_hashCode += obj.hashCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
__hashCodeCalc = false;
|
||||
return _hashCode;
|
||||
}
|
||||
|
||||
// Type metadata
|
||||
private static org.apache.axis.description.TypeDesc typeDesc =
|
||||
new org.apache.axis.description.TypeDesc(ActivityTypeFilter.class, true);
|
||||
|
||||
static {
|
||||
typeDesc.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "ActivityTypeFilter"));
|
||||
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("includeTypes");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "includeTypes"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "ActivityType"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(false);
|
||||
elemField.setItemQName(new javax.xml.namespace.QName("", "activityType"));
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("excludeTypes");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "excludeTypes"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "ActivityType"));
|
||||
elemField.setMinOccurs(0);
|
||||
elemField.setNillable(false);
|
||||
elemField.setItemQName(new javax.xml.namespace.QName("", "activityType"));
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return type metadata object
|
||||
*/
|
||||
public static org.apache.axis.description.TypeDesc getTypeDesc() {
|
||||
return typeDesc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Serializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Serializer getSerializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanSerializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Deserializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Deserializer getDeserializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanDeserializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,155 +1,155 @@
|
||||
/**
|
||||
* Attrib.java
|
||||
*
|
||||
* This file was auto-generated from WSDL
|
||||
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
|
||||
*/
|
||||
|
||||
package com.marketo.www.mktows;
|
||||
|
||||
public class Attrib implements java.io.Serializable {
|
||||
private java.lang.String name;
|
||||
|
||||
private java.lang.String value;
|
||||
|
||||
public Attrib() {
|
||||
}
|
||||
|
||||
public Attrib(
|
||||
java.lang.String name,
|
||||
java.lang.String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the name value for this Attrib.
|
||||
*
|
||||
* @return name
|
||||
*/
|
||||
public java.lang.String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the name value for this Attrib.
|
||||
*
|
||||
* @param name
|
||||
*/
|
||||
public void setName(java.lang.String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the value value for this Attrib.
|
||||
*
|
||||
* @return value
|
||||
*/
|
||||
public java.lang.String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the value value for this Attrib.
|
||||
*
|
||||
* @param value
|
||||
*/
|
||||
public void setValue(java.lang.String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
private java.lang.Object __equalsCalc = null;
|
||||
public synchronized boolean equals(java.lang.Object obj) {
|
||||
if (!(obj instanceof Attrib)) return false;
|
||||
Attrib other = (Attrib) obj;
|
||||
if (obj == null) return false;
|
||||
if (this == obj) return true;
|
||||
if (__equalsCalc != null) {
|
||||
return (__equalsCalc == obj);
|
||||
}
|
||||
__equalsCalc = obj;
|
||||
boolean _equals;
|
||||
_equals = true &&
|
||||
((this.name==null && other.getName()==null) ||
|
||||
(this.name!=null &&
|
||||
this.name.equals(other.getName()))) &&
|
||||
((this.value==null && other.getValue()==null) ||
|
||||
(this.value!=null &&
|
||||
this.value.equals(other.getValue())));
|
||||
__equalsCalc = null;
|
||||
return _equals;
|
||||
}
|
||||
|
||||
private boolean __hashCodeCalc = false;
|
||||
public synchronized int hashCode() {
|
||||
if (__hashCodeCalc) {
|
||||
return 0;
|
||||
}
|
||||
__hashCodeCalc = true;
|
||||
int _hashCode = 1;
|
||||
if (getName() != null) {
|
||||
_hashCode += getName().hashCode();
|
||||
}
|
||||
if (getValue() != null) {
|
||||
_hashCode += getValue().hashCode();
|
||||
}
|
||||
__hashCodeCalc = false;
|
||||
return _hashCode;
|
||||
}
|
||||
|
||||
// Type metadata
|
||||
private static org.apache.axis.description.TypeDesc typeDesc =
|
||||
new org.apache.axis.description.TypeDesc(Attrib.class, true);
|
||||
|
||||
static {
|
||||
typeDesc.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "Attrib"));
|
||||
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("name");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "name"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("value");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "value"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return type metadata object
|
||||
*/
|
||||
public static org.apache.axis.description.TypeDesc getTypeDesc() {
|
||||
return typeDesc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Serializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Serializer getSerializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanSerializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Deserializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Deserializer getDeserializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanDeserializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* Attrib.java
|
||||
*
|
||||
* This file was auto-generated from WSDL
|
||||
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
|
||||
*/
|
||||
|
||||
package com.marketo.www.mktows;
|
||||
|
||||
public class Attrib implements java.io.Serializable {
|
||||
private java.lang.String name;
|
||||
|
||||
private java.lang.String value;
|
||||
|
||||
public Attrib() {
|
||||
}
|
||||
|
||||
public Attrib(
|
||||
java.lang.String name,
|
||||
java.lang.String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the name value for this Attrib.
|
||||
*
|
||||
* @return name
|
||||
*/
|
||||
public java.lang.String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the name value for this Attrib.
|
||||
*
|
||||
* @param name
|
||||
*/
|
||||
public void setName(java.lang.String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the value value for this Attrib.
|
||||
*
|
||||
* @return value
|
||||
*/
|
||||
public java.lang.String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the value value for this Attrib.
|
||||
*
|
||||
* @param value
|
||||
*/
|
||||
public void setValue(java.lang.String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
private java.lang.Object __equalsCalc = null;
|
||||
public synchronized boolean equals(java.lang.Object obj) {
|
||||
if (!(obj instanceof Attrib)) return false;
|
||||
Attrib other = (Attrib) obj;
|
||||
if (obj == null) return false;
|
||||
if (this == obj) return true;
|
||||
if (__equalsCalc != null) {
|
||||
return (__equalsCalc == obj);
|
||||
}
|
||||
__equalsCalc = obj;
|
||||
boolean _equals;
|
||||
_equals = true &&
|
||||
((this.name==null && other.getName()==null) ||
|
||||
(this.name!=null &&
|
||||
this.name.equals(other.getName()))) &&
|
||||
((this.value==null && other.getValue()==null) ||
|
||||
(this.value!=null &&
|
||||
this.value.equals(other.getValue())));
|
||||
__equalsCalc = null;
|
||||
return _equals;
|
||||
}
|
||||
|
||||
private boolean __hashCodeCalc = false;
|
||||
public synchronized int hashCode() {
|
||||
if (__hashCodeCalc) {
|
||||
return 0;
|
||||
}
|
||||
__hashCodeCalc = true;
|
||||
int _hashCode = 1;
|
||||
if (getName() != null) {
|
||||
_hashCode += getName().hashCode();
|
||||
}
|
||||
if (getValue() != null) {
|
||||
_hashCode += getValue().hashCode();
|
||||
}
|
||||
__hashCodeCalc = false;
|
||||
return _hashCode;
|
||||
}
|
||||
|
||||
// Type metadata
|
||||
private static org.apache.axis.description.TypeDesc typeDesc =
|
||||
new org.apache.axis.description.TypeDesc(Attrib.class, true);
|
||||
|
||||
static {
|
||||
typeDesc.setXmlType(new javax.xml.namespace.QName("http://www.marketo.com/mktows/", "Attrib"));
|
||||
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("name");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "name"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
elemField = new org.apache.axis.description.ElementDesc();
|
||||
elemField.setFieldName("value");
|
||||
elemField.setXmlName(new javax.xml.namespace.QName("", "value"));
|
||||
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
|
||||
elemField.setNillable(false);
|
||||
typeDesc.addFieldDesc(elemField);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return type metadata object
|
||||
*/
|
||||
public static org.apache.axis.description.TypeDesc getTypeDesc() {
|
||||
return typeDesc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Serializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Serializer getSerializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanSerializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Custom Deserializer
|
||||
*/
|
||||
public static org.apache.axis.encoding.Deserializer getDeserializer(
|
||||
java.lang.String mechType,
|
||||
java.lang.Class _javaType,
|
||||
javax.xml.namespace.QName _xmlType) {
|
||||
return
|
||||
new org.apache.axis.encoding.ser.BeanDeserializer(
|
||||
_javaType, _xmlType, typeDesc);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user