Compare commits

...

140 Commits

Author SHA1 Message Date
ldong-talend
3d41682b4a TDI-31707:revert the code on ebcdic. 2015-01-22 16:53:04 +08:00
cmeng-talend
106c695060 Fix a compile error after update the jar:
poi-ooxml-3.11-20141221_modified_talend.jar
2015-01-16 18:04:05 +08:00
ldong-talend
afd9a6c56b TDI-31692:Can't open add schema sub window when I click edit schema
button for txxxInput for tos_bd.
2015-01-16 14:57:28 +08:00
ldong-talend
c513c98236 TDI-31692:Can't open add schema sub window when I click edit schema
button for txxxInput for tos_bd.
2015-01-16 14:54:23 +08:00
wang wei
1d5252c550 TDI-30541: Unable to create table in redshift
https://jira.talendforge.org/browse/TDI-30541
2015-01-15 18:09:39 +08:00
hcyi
f35625e85a TDI-31646:it is not good java code . 2015-01-15 16:20:30 +08:00
ldong-talend
f802f0b758 TDI-31646:hide the precision column for Redshift component. 2015-01-15 02:25:20 +08:00
wchen-talend
f28b11b1a3 TDI-31520:copy to branch' search option appears to take time to generate
the results
2015-01-15 10:09:18 +08:00
ldong-talend
465aab2360 TDI-31656:Switch to tag project:always has warning message at error log
list.
2015-01-15 10:04:45 +08:00
GGu
fed4759fe1 TUP-2528: when item imported, will block to import, so fix it. 2015-01-14 14:35:29 +08:00
hwang
5976e72b49 TDI-29300:Displaying problem in M/R job editor 2015-01-14 13:20:54 +08:00
jzhao
2b75569380 TDI-31607: tS3 components and Frankfurt AWS region
https://jira.talendforge.org/browse/TDI-31607
Note:Add new jars
2015-01-14 11:05:44 +08:00
qyliu
5834c07bea TDI-31335: error Data Type "BF" does not match a Defined Type name.
https://jira.talendforge.org/browse/TDI-31335
2015-01-13 15:28:47 +08:00
ldong-talend
208f7fc83e TDI-31613:backport TUP-2457 on 5.5 and revert the code of TDI-30237. 2015-01-12 16:59:44 +08:00
wang wei
baab68eb1e TDI-30071: add the miss jar
https://jira.talendforge.org/browse/TDI-30071
2015-01-12 16:32:51 +08:00
hcyi
4b2c568319 TDI-30883:EXASOL metadata Integration not working 2015-01-12 16:02:17 +08:00
ldong-talend
e190a5f9c8 TBD-1146:update schema for Hadoop cluster. 2015-01-12 15:50:12 +08:00
Igor Lazebny
9202b29530 Update version to 5.5.2-SNAPSHOT in poms 2015-01-08 14:57:33 +02:00
GGu
95d4686f5f TUP-2422: fixed the dq problem on 5.5. 2015-01-05 14:48:32 +08:00
cmeng-talend
e43504c1e7 TDI-31483 fix bug: Quotes at database input query
https://jira.talendforge.org/browse/TDI-31483

Conflicts:
	main/plugins/org.talend.core/src/main/java/org/talend/core/model/utils/TalendTextUtils.java
2015-01-05 10:35:27 +08:00
cmeng-talend
7bf2a71a76 TDI-30881 fix bug: The Column number,Create status lost value if I
remove the Name Filter on the retrieve schema wizard
https://jira.talendforge.org/browse/TDI-30881

Conflicts:
	main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/table/database/SelectorTableForm.java
2015-01-05 10:16:32 +08:00
cmeng-talend
45302a3aba TDI-31475 fix bug: AS400:It show all of databases schemas whenever I
just input one database
https://jira.talendforge.org/browse/TDI-31475

Fix an invalid thread access problem when checking connection in DB
Wizard.
2015-01-04 18:58:38 +08:00
cmeng-talend
809bce4541 TDI-31475 fix bug: AS400:It show all of databases schemas whenever I
just input one database
https://jira.talendforge.org/browse/TDI-31475

Conflicts:
	main/plugins/org.talend.metadata.managment/src/main/java/org/talend/repository/ui/utils/ManagerConnection.java
	main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/table/database/SelectorTableForm.java
2015-01-04 18:57:51 +08:00
hcyi
e9f4cbc03a TDI-31546:TalendForge Log In Issue. 2015-01-04 14:54:34 +08:00
xhkong
62df192236 Revert "TDI-31426 fix bug: if get studio license use : Import License :after get license successfully , connection is not created automatically https://jira.talendforge.org/browse/TDI-31426"
This reverts commit e85495c525.
2015-01-04 10:59:03 +08:00
CHEN Bin
505a839810 TUP-2478: Heap space error hangs job with parallel iterations
https://jira.talendforge.org/browse/TUP-2478
handle java.lang.Error when iterator enable parallel
2014-12-31 14:25:38 +08:00
xhkong
e85495c525 TDI-31426 fix bug: if get studio license use : Import License :after get
license successfully , connection is not created automatically
https://jira.talendforge.org/browse/TDI-31426

Conflicts:
	main/plugins/org.talend.core.runtime/src/main/java/org/talend/repository/ui/login/connections/ConnectionUserPerReader.java

Conflicts:
	main/plugins/org.talend.core.runtime/src/main/java/org/talend/repository/ui/login/connections/ConnectionUserPerReader.java
2014-12-31 12:17:45 +08:00
ldong-talend
35440834fb TDI-31260:add quotes for the salesforce's propery value of custom
module.
2014-12-29 11:37:24 +08:00
ldong-talend
f12727922d TDI-31474:fix the pb of multithreading access the same emf model. 2014-12-24 09:57:44 +08:00
jzhao
c204e8e185 TDI-29203: Add the Websphere MQ in the tMomConnection
https://jira.talendforge.org/browse/TDI-29203
Note:Add a new method for get virtual node by unique name
2014-12-23 16:47:53 +08:00
cmeng-talend
99db02c243 TDI-31425 fix bug: If import items operation choose wrong root
folder(lots subfolder under it), then importing operation will never
stop.
https://jira.talendforge.org/browse/TDI-31425

Do some improvement
2014-12-22 16:46:21 +08:00
cmeng-talend
509fba3335 TDI-31425 fix bug: If import items operation choose wrong root
folder(lots subfolder under it), then importing operation will never
stop.
https://jira.talendforge.org/browse/TDI-31425

Do some improvement
2014-12-22 16:21:00 +08:00
cmeng-talend
fe8acbae92 TDI-31425 fix bug: If import items operation choose wrong root
folder(lots subfolder under it), then importing operation will never
stop.
https://jira.talendforge.org/browse/TDI-31425

Conflicts:
	main/plugins/org.talend.repository.items.importexport.ui/src/main/java/org/talend/repository/items/importexport/ui/wizard/imports/ImportItemsWizardPage.java
2014-12-22 16:18:23 +08:00
cmeng-talend
1686ee5be2 TDI-29234 fix bug: #LINK@NODE doesn't work well as the condition when
TABLE IF in the schema
https://jira.talendforge.org/browse/TDI-29234
2014-12-22 11:41:06 +08:00
zshen-talend
9f3bf52a68 bug fixed TDQ-9487change input columns' name, transfer changes to
tMatchGroup, but when open the "Configuration wizard" still use the old
name.
2014-12-22 11:24:21 +08:00
Sebastien Gandon
b0aea33520 TDM-4411 : generate a timestamp at every export for TDM generation 2014-12-22 10:23:24 +08:00
wluo-talend
0561cad3bc TDI-31476: Serious precision loss in standard routine and undue rounding
effect
https://jira.talendforge.org/browse/TDI-31476
2014-12-19 11:16:57 +08:00
CHEN Bin
fb226156ff TDI-31266: OutputFIleDelimited having issues with records over 8K when used with other components
https://jira.talendforge.org/browse/TDI-31266
change the tag about Iterator enable parallel from subtree to each component, which can fix the problem if the component is after onComponent/Subjob

Conflicts:
	main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/process/AbstractNode.java
2014-12-15 16:38:52 +08:00
hcyi
53444e429c TDI-30801:Password disappears when click password after set Hive model
as Standalone then set hive server as hive2
2014-12-10 14:32:59 +08:00
cmeng-talend
9eb9d15a6c TDI-31224 fix bug: Retrieve Schema Wizard hangs and provides no
Exit/Cancel means and eventually needs to be Killed
https://jira.talendforge.org/browse/TDI-31224
2014-12-09 17:39:16 +08:00
cmeng-talend
a645e59e3d TDI-31224 fix bug: Retrieve Schema Wizard hangs and provides no
Exit/Cancel means and eventually needs to be Killed
https://jira.talendforge.org/browse/TDI-31224
2014-12-09 17:39:02 +08:00
wchen-talend
3d592205ab TDI-30111:refactor repository reivew dialog
Conflicts:
	main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/repository/IRepositoryTypeProcessor.java
2014-12-03 11:48:58 +08:00
wang wei
cfb6993fcd TDI-31298: Null Password error if you change the password context field
in Default.properties after building the Talend Job.
https://jira.talendforge.org/browse/TDI-31298
2014-12-01 17:50:55 +08:00
cmeng-talend
df16c70e69 TDI-31282 TBD-1204 fix bug: when there is a jar downloading action while
checking connection, the cancel progress dialog with time limit can not
work well
https://jira.talendforge.org/browse/TDI-31282
https://jira.talendforge.org/browse/TBD-1204

Now, change the time of cancel progress dialog to endless.
2014-11-26 14:39:25 +08:00
wang wei
da0d7bd1cc Fix Bug TDI-28503 : data missing when use an Iterate between the
tCollector and the tDepartitioner
https://jira.talendforge.org/browse/TDI-28503
2014-11-25 18:10:58 +08:00
zshen-talend
794caf8c6c Merge pull request #111 from xqliu-talend/maintenance/5.5
TDQ-9667 Problem to select column for analysis and to see column
2014-11-25 17:56:22 +08:00
xqliu
7a6ccb2366 TDQ-9667 Problem to select column for analysis and to see column
fix the problem: show NPE when modify the database connection which imported from the demo project
2014-11-25 17:47:10 +08:00
cmeng-talend
c9f09384bf TBD-1204 fix bug: Check HDFS connection block the studio
https://jira.talendforge.org/browse/TBD-1204
2014-11-25 17:26:59 +08:00
cmeng-talend
469ee32111 TDI-31282 work item: Maybe should enhance the check action in DB wizard
https://jira.talendforge.org/browse/TDI-31282

Conflicts:
	main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/i18n/messages.properties
	main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/connection/database/DatabaseForm.java
2014-11-25 17:25:51 +08:00
CHEN Bin
b0e5e9a0fa TDI-30996: Duplicate variable names when enabling parallel execution on iterations within the same subjob
https://jira.talendforge.org/browse/TDI-30996
lockWrite is the lock provided by iterate with parallel, one lockWrite for one Iterate connector
2014-11-25 16:55:03 +08:00
ldong-talend
02bc637529 TDI-31272:correct the state of export as context button for andvance
webservice wizard.
2014-11-25 15:51:48 +08:00
hcyi
2eaecae49f TDI-31257:Got NPE when editing a new added column during retrieving MDM
Entity in Metadata.
2014-11-24 16:13:24 +08:00
cmeng-talend
80430a3dd6 TDI-30490 fix bug: Error code when refactor tESBConsumer combining with
tJavaRow to Joblet
https://jira.talendforge.org/browse/TDI-30490

1. Fix replacement bug, after fixed, when the const string is in the
parameter of globalMap.xxx function, Studio will do partly replacement;
when the const string is in other functions(functions except
globalMap.xxx), Studio will do fully replacement.

2. Fix bug: we can NOT refactor those components(on fault / response
line) to Joblet any more...
2014-11-24 09:51:54 +08:00
cmeng-talend
11bf320e70 TDI-30490 fix bug: Error code when refactor tESBConsumer combining with
tJavaRow to Joblet
https://jira.talendforge.org/browse/TDI-30490

1. Fix replacement bug, after fixed, when the const string is in the
parameter of globalMap.xxx function, Studio will do partly replacement;
when the const string is in other functions(functions except
globalMap.xxx), Studio will do fully replacement.

2. Fix bug: we can NOT refactor those components(on fault / response
line) to Joblet any more...
2014-11-24 09:51:41 +08:00
zshen-talend
e9f88d3313 Merge pull request #107 from xqliu-talend/maintenance/5.5
TDQ-9543 Netezza DB: Error When Attempting to View Keys or Indexes
2014-11-21 10:05:32 +08:00
xqliu
1c6f8542d7 TDQ-9543 Netezza DB: Error When Attempting to View Keys or Indexes
1) let Netezza Jdbc connection same with Netezza connection: only show one catalog
2) uppercase the database name when check Netezza connection
2014-11-20 19:03:22 +08:00
cmeng-talend
8d3b0867b0 TDI-30278 fix bug: It will be no response then pop up en error when I
click add schema button at last step for Impala db retrieve schema
https://jira.talendforge.org/browse/TDI-30278

Also fix a potential bug for replacing schema to proposed one
2014-11-18 13:12:44 +08:00
nrousseau
062c91297d Merge pull request #84 from zshen-talend/maintenance/5.5
fixed bug TDI-30384 Unable to extract schema from an AS400 Connection
2014-11-17 17:01:22 +08:00
GGu
7b373cd9df Merge pull request #101 from msjian/maintenance/5.5
TDQ-8546: fix the reload table/column list get wrong information
2014-11-17 15:15:45 +08:00
msjian
159ab9f981 TDQ-8546: fix the reload table/column list get wrong information 2014-11-17 14:48:38 +08:00
cmeng-talend
e6d1dfb530 TDI-30778 fix bug: retrieve schema query issued for Teradata from studio
needs Optimization
https://jira.talendforge.org/browse/TDI-30778
2014-11-14 15:33:11 +08:00
nrousseau
a64db65fdb TDI-31164: fix problem of retrieve schema for sybase 2014-11-14 13:04:49 +08:00
nrousseau
9a95b3aae6 TUP-2118 : review jar dependencies for mockito. Use xstream instead of
objenesis for classloading.
2014-11-14 12:58:38 +08:00
Axel MAUMONT
88df154117 TDI-31161 Mutiple tasks deployment failed if generated jobs folder is NFS shared directory
- add signatures to zip methods with the parameter 'fileFilter' to exclude some kind of files (for this issue it is necessary to exclude .nfs* files)
2014-11-13 16:57:16 +08:00
hwang
585a198b7f TDI-30936:tFileInputEBCDIC - Schema editor 2014-11-12 16:28:01 +08:00
hwang
7f862712bc TDI-30936:tFileInputEBCDIC - Schema editor 2014-11-12 11:56:18 +08:00
hwang
717f74dd8a TDI-30936:tFileInputEBCDIC - Schema editor 2014-11-11 10:58:04 +08:00
CHEN Bin
8a370f3641 Merge pull request #89 from wwang-talend/maintenance/5.5
TDI-31036: LockWrite can not be resolved as a variable in parallel
2014-11-10 17:39:30 +08:00
wang wei
86790ff621 TDI-31036: LockWrite can not be resolved as a variable in parallel
iterations
https://jira.talendforge.org/browse/TDI-31036
2014-11-10 17:19:37 +08:00
hwang
b6830a6ba2 TDI-30657:Expression Builder for Var in tMap does not show Var name 2014-11-10 11:26:53 +08:00
ycbai
033f6a84bb TBD-1171: No response when I click check connection on the Retrieve
schema page for HBase of CDH5.1
2014-11-07 11:36:47 +08:00
cmeng-talend
be22f14104 TDI-30278 fix bug: It will be no response then pop up en error when I
click add schema button at last step for Impala db retrieve schema
https://jira.talendforge.org/browse/TDI-30278
2014-11-06 18:47:02 +08:00
zshen-talend
86c6f96350 fixed bug TDI-30384 Unable to extract schema from an AS400 Connection
some change on the TDQ-9624 is making this issue, this commite fixed it.
2014-11-06 18:19:04 +08:00
zshen-talend
c38b8e752a Merge pull request #81 from xqliu-talend/maintenance/5.5
TDQ-9543
2014-11-06 15:56:18 +08:00
xqliu
9342b968e3 TDQ-9543
1) show catalog and schema in the structure of Netezza connection and jdbc connection
2) let the analysis and indicator can run well on Netezza connection and jdbc connection
3) let reload/compare database connection, drill down, view keys/indexs run well on Netezza's connection and jdbc connection
2014-11-06 15:53:19 +08:00
hcyi
f7be7b8bbd TDI-30739:DB2 connection retrieve schema produces 0 tables. 2014-11-06 15:49:21 +08:00
xqliu
0d666ae58c TDQ-9543
1) show catalog and schema in the structure of Netezza connection and jdbc connection
2) let the analysis and indicator can run well on Netezza connection and jdbc connection
3) let reload/compare database connection, drill down, view keys/indexs run well on Netezza's connection and jdbc connection

Conflicts:
	main/plugins/org.talend.metadata.managment/src/main/java/metadata/managment/i18n/messages.properties
	main/plugins/org.talend.metadata.managment/src/main/java/org/talend/core/model/metadata/MetadataFillFactory.java
	main/plugins/org.talend.metadata.managment/src/main/java/org/talend/core/model/metadata/builder/util/MetadataConnectionUtils.java
2014-11-06 15:49:16 +08:00
cmeng-talend
67dbf5e7c5 TDI-30323 + TUP-2207: xsd infinite loop and fix the problem of same name
of element.
Do a little improvement.
2014-11-05 19:06:05 +08:00
nrousseau
348d956c33 TDI-30323 + TUP-2207: xsd infinite loop and fix the problem of same name
of element.

Conflicts:
	main/plugins/org.talend.metadata.managment.ui/src/main/java/org/talend/repository/ui/utils/XsdMetadataUtils.java
2014-11-05 19:05:41 +08:00
Wu Liu
eb7d8a0f1b TDI-31037 : Password Context generate an error in log4j 2014-11-04 18:24:11 +08:00
ldong-talend
f4d46d2045 TDI-30675:remove the extra string in message.properties. 2014-11-03 16:33:08 +08:00
wang wei
f381a7f26a TDI-30984: tWriteJSONField and tWriteXMLField will be blocked when there
is a big iterate loop to start
https://jira.talendforge.org/browse/TDI-30984
2014-10-31 16:12:56 +08:00
ldong-talend
7a09eff554 TBD-1146:improve the algorithm here for Hadoop Cluster to avoid the NPE. 2014-10-31 14:36:07 +08:00
wang wei
c9fa3c3afc TDI-30896: password is not encryted for resume log
https://jira.talendforge.org/browse/TDI-30896
2014-10-31 10:42:44 +08:00
cmeng-talend
4aa89418cb TDI-30943 fix bug: SAP_issues about IDoc
https://jira.talendforge.org/browse/TDI-30943
2014-10-29 10:10:45 +08:00
nrousseau
cd3e9f59ed Merge pull request #69 from zshen-talend/maintenance/5.5
fixed bug TDQ-9624 The table's number is less in the table folder 'sbrackets under TALEND schema for General JDBC As400
2014-10-29 10:01:18 +08:00
zshen-talend
8da1e60dda fixed bug TDQ-9624 The table's number is less in the table folder 's
brackets under TALEND schema for General JDBC As400
2014-10-28 18:02:22 +08:00
cmeng-talend
402d094dd7 TUP-2333 fix bug: Code generation broken with Jobs using Joblets
https://jira.talendforge.org/browse/TUP-2333
2014-10-28 11:02:31 +08:00
cmeng-talend
f36c02c8d3 TUP-2333 fix bug: Code generation broken with Jobs using Joblets
https://jira.talendforge.org/browse/TUP-2333
2014-10-27 16:38:15 +08:00
zwzhao-talend
7bfb9b1732 TDI-30675 : Salesforce:Job view tab name isn't correct when user clicks
Salesfore Module
2014-10-22 10:57:36 +08:00
cmeng-talend
2b3cbc27f1 TDI-30598 fix bug: DB2 Metadata wizard inconsistent with tDB2 components
https://jira.talendforge.org/browse/TDI-30598

Conflicts:
	main/plugins/org.talend.metadata.managment/src/main/java/metadata/managment/i18n/messages.properties
	main/plugins/org.talend.metadata.managment/src/main/java/org/talend/repository/ui/utils/ManagerConnection.java
2014-10-21 15:25:51 +08:00
nrousseau
eed17c2430 Update version from config file 2014-10-21 15:11:41 +08:00
jzhao
bab72882fd TDI-29885: Google BigQuery upload components do not allow the handling
of newline characters properly.
https://jira.talendforge.org/browse/TDI-29885 
Note:Update the API
2014-10-20 10:53:56 +08:00
zwzhao-talend
37839b4ba5 TUP-2217 : Need to add some warning in the logs to tell which migration
is blocking in case there is any wrong break version
2014-10-17 15:46:23 +08:00
ldong-talend
950fa10187 TDI-30683:remove the extra properties. 2014-10-16 18:36:12 +08:00
ldong-talend
5c2e36af1a TDI-30683:avoid the possable NPE pb and fix another context proposal
description match pb.
2014-10-16 18:25:05 +08:00
hcyi
257a355221 TDI-30528:Fix a bug of load wrong oracle Drivers required for metadata . 2014-10-15 16:30:06 +08:00
zshen-talend
c52cd60499 Merge pull request #52 from xqliu-talend/maintenance/5.5
TDQ-8724 for jdbc connection always get "Confirm Reload Connection" dial...
2014-10-13 17:16:58 +08:00
xqliu
d59c326fa2 TDQ-8724 for jdbc connection always get "Confirm Reload Connection" dialog, even doesn't not change anything.
https://jira.talendforge.org/browse/TDQ-8724
2014-10-13 16:27:26 +08:00
ldong-talend
f2e64716d0 TDI-30715:fix TDI-30715 and TDI-30521 together and improved some code. 2014-10-13 10:46:10 +08:00
cmeng-talend
814652e8b6 TDI-30369 fix bug: Compile error when copy DI job including tjavaRow
component
https://jira.talendforge.org/browse/TDI-30369

Removed some useless comments
2014-09-25 14:57:32 +08:00
cmeng-talend
a38a115342 TDI-30369 fix bug: Compile error when copy DI job including tjavaRow
component
https://jira.talendforge.org/browse/TDI-30369

The method[public static String splitQueryData(String oldName, String
newName, String value)] only process SQL Query before, but seems the
cases in processing SQL Query are same with processing in codes, so here
make this function process all the cases, but the efficiency maybe lower
than before when do replacement..
2014-09-25 14:57:14 +08:00
plv
2afe4e814c TDI-30521 : Switching DB-Connection-Typ keeps schema/catalog 2014-09-24 17:06:42 +08:00
GGu
076f4af3b2 TUP-1820: fixed the dialog to popup twince. 2014-09-22 13:33:01 +08:00
hcyi
3d627f8c7d TDI-30528:To much oracle Drivers required for metadata, wizard and AMC
in Studio.
2014-09-18 15:30:23 +08:00
nrousseau
fe020516e1 TUP-2109: simplify cxf dependencies 2014-09-13 21:08:51 +08:00
cmeng-talend
15eb6a75b1 TDI-30366 fix bug: Unable to retrieve salesforce modules from Salesforce
metadata connection
https://jira.talendforge.org/browse/TDI-30366
2014-09-11 18:26:28 +08:00
hcyi
a274a01b51 TDI-30423:Slow to retrieve tables on AS400 on the wizard,fix a problem
that When LIB empty, ALL libraries' tables should be retrieved.
2014-09-11 14:27:59 +08:00
hcyi
e9b125137c TDI-30384 : Unable to extract schema from an AS400 Connection . 2014-09-04 12:13:31 +08:00
hcyi
715a41790e TDI-30423:Slow to retrieve tables on AS400 on the wizard. 2014-09-04 12:10:47 +08:00
hcyi
e00dec641c TDI-29762: Set up SFTP with private key in repository not possible . 2014-09-01 11:31:24 +08:00
Wu Liu
2fee734607 TDI-30424 : New GUI behavior (in respect to carriage return line feed)
of tOracleRow incompatible with PL/SQL when statement takes multiple
lines and using Oracle 10g
https://jira.talendforge.org/browse/TDI-30424
2014-08-28 16:31:41 +08:00
GGu
4a88151f0b TDI-29841: Enable the case insensitive for folder in all os platforms. 2014-08-27 14:29:08 +08:00
plv
49d4953d63 TDI-30237 : PostgresSQL: All schemas will be retrieved for connection
which specified one Schema if the connection didn't specified schema and
has retrieved schemas before;
2014-08-26 17:09:45 +08:00
plv
619557cdf0 TDI-30208 : The DB Type on the retrieve schema is not consistent with
the type in the db table for HSQL In-Process
2014-08-26 16:58:17 +08:00
mzhao
f7a2496b37 Merge pull request #28 from yyin-talend/maintenance/5.5
TDQ-9344 on Branch 5.5, still use the parameter "isHive"(which is not
2014-08-25 16:12:05 +08:00
yyin-talend
d4050cf8eb TDQ-9344 on Branch 5.5, still use the parameter "isHive"(which is not
used on 5.6 and 6.0), add it again.
2014-08-25 16:03:43 +08:00
plv
ee4b44f33f TDI-29888 : Error occurred when "update repository connection" for
tHBaseOutput
2014-08-25 15:43:32 +08:00
zwzhao-talend
3d833aa131 TDI-29960 : The Required checkbox should be checked as default setting
for components which need to install jar
2014-08-25 15:32:25 +08:00
plv
36e479f2ed TDI-30282 : It show en error when I click Access string of Connection
then I switch to another DB Type
2014-08-25 15:26:49 +08:00
ycbai
923800b725 TBD-948 : Integration - Metadata Hadoop Cluster Connection - Support
Kerberos Connection on Pivotal HD 2.0
2014-08-25 13:39:37 +08:00
mzhao
631ecba267 Merge pull request #23 from yyin-talend/maintenance/5.5
TDQ-9344 ERROR org.talend.core.model.metadata.DBConnectionFillerImpl
2014-08-22 17:34:46 +08:00
yyin-talend
6f25e08963 TDQ-9344 ERROR org.talend.core.model.metadata.DBConnectionFillerImpl
--> Replace all resultset's getString/getInt method in
fillTables/fillViews/fillColumns : with new method
getStringFromResultSet,getIntFromResultSet(which use try/catch for each
get)
2014-08-22 17:31:46 +08:00
ycbai
b124c9dd5c TBD-947 : add estimate of if use keytab 2014-08-21 10:41:56 +08:00
ycbai
fe6d1e6dd9 TBD-947 : Profiling - Metadata Db Connection - Support Kerberos
Connection on Pivotal HD 2.0 for Hive Server 2
2014-08-21 10:41:52 +08:00
GGu
6ad5227165 TDI-30146: fixed the password fields for exporting documention. 2014-08-21 10:21:08 +08:00
CHEN Bin
f735b9b1a7 bug fixed TDI-30368: encrypt password even empty string
https://jira.talendforge.org/browse/TDI-30368
2014-08-20 11:33:57 +08:00
plv
3352bcf8db bug TDI-29450 fix:Support Vertica Case Insensitive Schema Names 2014-08-15 13:24:21 +08:00
nrousseau
726dde67df TDI-30116 : use index when check relationships when delete any item. 2014-08-14 10:06:55 +08:00
ycbai
da6cf54781 TDI-29989 : if the URL contains %20, we should replace it with space 2014-08-13 15:56:57 +08:00
zwzhao-talend
74955b201b bug TDI-29960 fixed : The Required checkbox should be checked as default
setting for components which need to install jar
2014-08-13 14:34:36 +08:00
zwzhao-talend
e620c9fa6d bug TDI-30024 fixed : Import: When re-import same item, it's in the
import tree list always.
2014-08-08 15:39:03 +08:00
nrousseau
c9a02c2b70 TDI-30222 : fix some problems of relationship 2014-08-01 10:59:54 +08:00
Wu Liu
9fc8e76d9e Fix Bug TDI-30071 : add 2 apache jars: json-smart-1.2.jar,
json-path-0.9.0.jar and remove the js-json-path jar:jsonpath.jar
https://jira.talendforge.org/browse/TDI-30071
2014-07-30 16:40:54 +08:00
CHEN Bin
13a6bc5642 fixed Bug TDI-29912: tSalesforceInput - Session Invalid Error
https://jira.talendforge.org/browse/TDI-29912
as API about how to login with salesforce has been changed, so need to change GUI part, Basic and OAuth.
2014-07-25 18:38:15 +08:00
Wu Liu
184a0173ae Fix Bug TDI-29759 : Add a new table to support decoding
Integer(int),Long(long), Byte(byte), Short(short) types.
https://jira.talendforge.org/browse/TDI-29759
2014-07-23 14:28:06 +08:00
nrousseau
0b5d233989 TDI-29991 : avoid throw exception if anything was wrong during the
refresh of the repository, only log it.
2014-07-16 12:36:40 +08:00
zwzhao-talend
53e0ee8517 bug TDI-29845 fixed : Better have Delete option when select a folder and
a job at Recycle bin
2014-07-11 02:17:05 -07:00
cmeng-talend
f10265b81b bug TDI-29901 fixed : Problem (unwanted preceding joblet name in a sql)
with migration from 512 to 542

Conflicts:
	test/plugins/org.talend.core.runtime.test/src/org/talend/core/model/utils/ParameterValueUtilTest.java
2014-07-09 13:20:41 +08:00
nrousseau
8c3e263d19 TDI-29917 : create new test plugin and add junits tests for import 2014-07-07 12:17:02 +08:00
183 changed files with 9394 additions and 5538 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -176,6 +176,8 @@ public enum ECoreImage implements IImage {
EXCHNAGEIMAGEMISSING("/icons/component_missing.gif"), //$NON-NLS-1$
STATUS_OK("/icons/ok.png"), //$NON-NLS-1$
MRGREEBAR("/icons1/mrGreeBar.gif"), //$NON-NLS-1$
MRMAP("/icons1/map.gif"), //$NON-NLS-1$
MRREDUCE("/icons1/reduce.gif"), //$NON-NLS-1$
MRREDBAR("/icons1/mrRedBar.gif"), //$NON-NLS-1$
MRGRAYBAR("/icons1/mrGrayBar.gif"), //$NON-NLS-1$

View File

@@ -60,9 +60,9 @@ public class PasswordEncryptUtil {
}
private static SecretKey passwordKey = null;
private static String CHARSET = "UTF-8";
private static SecretKey getSecretKeyUTF8() throws Exception {
if (passwordKey == null) {
byte rawKeyData[] = rawKey.getBytes(CHARSET);
@@ -72,20 +72,19 @@ public class PasswordEncryptUtil {
}
return passwordKey;
}
public static String encryptPasswordHex(String input) throws Exception {
if (input == null || input.length() == 0) {
if (input == null) {
return input;
}
SecretKey key = getSecretKeyUTF8();
Cipher c = Cipher.getInstance("DES"); //$NON-NLS-1$
c.init(Cipher.ENCRYPT_MODE, key, secureRandom);
byte[] cipherByte = c.doFinal(input.getBytes(CHARSET));//$NON-NLS-1$
byte[] cipherByte = c.doFinal(input.getBytes(CHARSET));
String dec = Hex.encodeHexString(cipherByte);
return dec;
}
public static String decryptPassword(String input) throws Exception, BadPaddingException {
if (input == null || input.length() == 0) {
return input;

View File

@@ -13,39 +13,45 @@
package org.talend.commons.utils.database;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
/**
* created by zshen on Apr 12, 2013 Detailled comment
*
*/
public class AS400DatabaseMetaData extends PackageFakeDatabaseMetadata {
private static final String[] TABLE_META = {
"TABLE_TYPE", "TABLE_NAME", "SYSTEM_TABLE_NAME", "TABLE_SCHEMA", "SYSTEM_TABLE_SCHEMA" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
private String T = "T";//$NON-NLS-1$
private String V = "V";//$NON-NLS-1$
private String S = "S";//$NON-NLS-1$
private String A = "A";//$NON-NLS-1$
private String TABLE = "TABLE"; //$NON-NLS-1$
private String VIEW = "VIEW"; //$NON-NLS-1$
private String SYNONYM = "SYNONYM"; //$NON-NLS-1$
private String ALIAS = "ALIAS"; //$NON-NLS-1$
// private static final String[] TABLE_META = {
// "ID", "TABLE_SCHEM", "TABLE_NAME", "TABLE_TYPE", "REMARKS", "TABLE_NAME", "SYSTEM_TABLE_NAME", "TABLE_SCHEMA", "SYSTEM_TABLE_SCHEMA" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
private static final String[] TABLE_META = {
"TABLE_TYPE", "TABLE_NAME", "SYSTEM_TABLE_NAME", "TABLE_SCHEMA", "SYSTEM_TABLE_SCHEMA" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
private String T = "T";//$NON-NLS-1$
private String V = "V";//$NON-NLS-1$
private String S = "S";//$NON-NLS-1$
private String A = "A";//$NON-NLS-1$
private String P = "P";//$NON-NLS-1$
private String TABLE = "TABLE"; //$NON-NLS-1$
private String EXTERNAL_TABLE = "EXTERNAL_TABLE"; //$NON-NLS-1$
private String VIEW = "VIEW"; //$NON-NLS-1$
private String SYNONYM = "SYNONYM"; //$NON-NLS-1$
private String ALIAS = "ALIAS"; //$NON-NLS-1$
public AS400DatabaseMetaData(Connection conn) throws SQLException {
super(conn);
@@ -123,9 +129,9 @@ public class AS400DatabaseMetaData extends PackageFakeDatabaseMetadata {
String table_name = rs.getString("TABLE_NAME"); //$NON-NLS-1$
String system_table_name = rs.getString("SYSTEM_TABLE_NAME"); //$NON-NLS-1$
String table_schema = rs.getString("TABLE_SCHEMA"); //$NON-NLS-1$
String system_table_schema = rs.getString("SYSTEM_TABLE_SCHEMA");
String system_table_schema = rs.getString("SYSTEM_TABLE_SCHEMA"); //$NON-NLS-1$
String[] r = new String[] { type, table_name, system_table_name, table_schema, system_table_schema }; //$NON-NLS-1$ //$NON-NLS-2$
String[] r = new String[] { type, table_name, system_table_name, table_schema, system_table_schema };
list.add(r);
}
@@ -138,11 +144,11 @@ public class AS400DatabaseMetaData extends PackageFakeDatabaseMetadata {
} catch (Exception e) {
}
}
AS400ResultSet tableResultSet = new AS400ResultSet();
tableResultSet.setMetadata(TABLE_META);
tableResultSet.setData(list);
return tableResultSet;
// return super.getTables(catalog, schemaPattern, tableNamePattern, types);
}
private String getTypeNameType(String typeName) {
@@ -187,6 +193,8 @@ public class AS400DatabaseMetaData extends PackageFakeDatabaseMetadata {
result = S;
} else if (ALIAS.equals(typeName)) {
result = A;
} else if (EXTERNAL_TABLE.equals(typeName)) {
result = P;
}
return result;
}

View File

@@ -19,6 +19,7 @@ import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.ArrayUtils;
import org.apache.log4j.Logger;
/**
@@ -27,6 +28,10 @@ import org.apache.log4j.Logger;
*/
public class SybaseDatabaseMetaData extends PackageFakeDatabaseMetadata {
private static final String[] TABLE_META = { "ID", "TABLE_SCHEM", "TABLE_NAME", "TABLE_TYPE", "REMARKS" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
private static final String[] NEEDED_TYPES = { "TABLE", "VIEW" }; //$NON-NLS-1$ //$NON-NLS-2$
private static Logger log = Logger.getLogger(SybaseDatabaseMetaData.class);
/**
@@ -150,4 +155,39 @@ public class SybaseDatabaseMetaData extends PackageFakeDatabaseMetadata {
return sybaseRS;
}
/*
* (non-Javadoc)
*
* @see org.talend.commons.utils.database.PackageFakeDatabaseMetadata#getTables(java.lang.String, java.lang.String,
* java.lang.String, java.lang.String[])
*/
@Override
public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException {
ResultSet sybaseRS = super.getTables(catalog, schemaPattern, tableNamePattern, NEEDED_TYPES);
List<String[]> list = new ArrayList<String[]>();
while (sybaseRS.next()) {
String name = sybaseRS.getString("TABLE_NAME"); //$NON-NLS-1$
String schema = sybaseRS.getString("TABLE_SCHEM"); //$NON-NLS-1$
String type = sybaseRS.getString("TABLE_TYPE"); //$NON-NLS-1$
String id = ""; //$NON-NLS-1$
String remarks = ""; //$NON-NLS-1$
try {
remarks = sybaseRS.getString("REMARKS"); //$NON-NLS-1$
} catch (Exception e) {
// nothing
}
if (ArrayUtils.contains(NEEDED_TYPES, type)) {
// check if the type is contained is in the types needed.
// since sybase can return some system views as "SYSTEM VIEW" instead of "VIEW/TABLE" from the request.
String[] r = new String[] { id, schema, name, type, remarks };
list.add(r);
}
}
SybaseResultSet tableResultSet = new SybaseResultSet();
tableResultSet.setMetadata(TABLE_META);
tableResultSet.setData(list);
return tableResultSet;
}
}

View File

@@ -161,7 +161,7 @@ public class TeradataDataBaseMetadata extends FakeDatabaseMetaData {
@Override
public ResultSet getTables(String catalog, String database, String tableNamePattern, String[] types) throws SQLException {
// modify by wzhang
if (databaseName != null) {
if (databaseName != null && !databaseName.trim().isEmpty()) {
database = databaseName;
}
// end

View File

@@ -95,35 +95,48 @@ public class FileCopyUtils {
public static void copyFolder(File resFolder, File destFolder) {
try {
if (!resFolder.exists()) {
return;
}
destFolder.mkdirs();
String[] file = resFolder.list();
File temp = null;
for (String element : file) {
temp = new File(resFolder, element);
if (temp.isFile()) {
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(new File(destFolder, temp.getName()));
byte[] b = new byte[1024 * 5];
int len;
while ((len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if (temp.isDirectory()) {
copyFolder(new File(resFolder, element), new File(destFolder, element));
}
}
copyFolder(resFolder, destFolder, false);
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
public static void copyFolder(File resFolder, File destFolder, boolean interruptable) throws Exception {
Thread currentThread = Thread.currentThread();
if (interruptable && currentThread.isInterrupted()) {
throw new InterruptedException();
}
if (!resFolder.exists()) {
return;
}
destFolder.mkdirs();
String[] file = resFolder.list();
File temp = null;
for (String element : file) {
if (interruptable && currentThread.isInterrupted()) {
throw new InterruptedException();
}
temp = new File(resFolder, element);
if (temp.isFile()) {
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(new File(destFolder, temp.getName()));
byte[] b = new byte[1024 * 5];
int len;
while ((len = input.read(b)) != -1) {
if (interruptable && currentThread.isInterrupted()) {
break;
}
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if (temp.isDirectory()) {
copyFolder(new File(resFolder, element), new File(destFolder, element), interruptable);
}
}
}
}

View File

@@ -32,6 +32,11 @@ public class TalendCustomThreadPoolExecutor extends ThreadPoolExecutor {
super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);
}
public TalendCustomThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit,
BlockingQueue<Runnable> workQueue, RejectedExecutionHandler handler) {
super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, handler);
}
public TalendCustomThreadPoolExecutor(int queueCapacity, RejectedExecutionHandler handler) {
super(5, 10, 0, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(queueCapacity), handler);
}

View File

@@ -1 +1 @@
talend.version=5.5.1
talend.version=5.5.2

View File

@@ -20,7 +20,7 @@ import org.talend.core.model.properties.Property;
import org.talend.core.model.properties.User;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.cwm.helper.SubItemHelper;
import org.talend.repository.model.ERepositoryStatus;
import org.talend.repository.model.IRepositoryNode;

View File

@@ -20,9 +20,9 @@ import org.talend.core.model.relationship.RelationshipItemBuilder;
*/
public class PropertyTypeParameterRelationshipHandler extends AbstractJobParameterInRepositoryRelationshipHandler {
public static final String PROPERTY_PROPERTY_TYPE = "PROPERTY:PROPERTY_TYPE"; //$NON-NLS-1$
public static final String PROPERTY_PROPERTY_TYPE = "PROPERTY_TYPE"; //$NON-NLS-1$
public static final String PROPERTY_REPOSITORY_PROPERTY_TYPE = "PROPERTY:REPOSITORY_PROPERTY_TYPE"; //$NON-NLS-1$
public static final String PROPERTY_REPOSITORY_PROPERTY_TYPE = "REPOSITORY_PROPERTY_TYPE"; //$NON-NLS-1$
/*
* (non-Javadoc)

View File

@@ -28,7 +28,7 @@ public class QueryTypeParameterRelationshipHandler extends AbstractJobParameterI
*/
@Override
protected String getRepositoryTypeName() {
return "QUERYSTORE:QUERYSTORE_TYPE"; //$NON-NLS-1$
return "QUERYSTORE_TYPE"; //$NON-NLS-1$
}
/*
@@ -40,7 +40,7 @@ public class QueryTypeParameterRelationshipHandler extends AbstractJobParameterI
*/
@Override
protected String getRepositoryTypeValueName() {
return "QUERYSTORE:REPOSITORY_QUERYSTORE_TYPE"; //$NON-NLS-1$
return "REPOSITORY_QUERYSTORE_TYPE"; //$NON-NLS-1$
}
/*

View File

@@ -28,18 +28,7 @@ public class SchemaTypeParameterRelationshipHandler extends AbstractJobParameter
*/
@Override
protected String getRepositoryTypeName() {
return "SCHEMA:SCHEMA_TYPE"; //$NON-NLS-1$
}
/*
* (non-Javadoc)
*
* @see
* org.talend.core.model.relationship.AbstractJobParameterInRepositoryRelationshipHandler#getRepositoryTypeNameN()
*/
@Override
protected String[] getRepositoryTypeNameN() {
return new String[] { "SCHEMA_OTHER:SCHEMA_TYPE" }; //$NON-NLS-1$
return "SCHEMA_TYPE"; //$NON-NLS-1$
}
/*
@@ -51,19 +40,7 @@ public class SchemaTypeParameterRelationshipHandler extends AbstractJobParameter
*/
@Override
protected String getRepositoryTypeValueName() {
return "SCHEMA:REPOSITORY_SCHEMA_TYPE"; //$NON-NLS-1$
}
/*
* (non-Javadoc)
*
* @see
* org.talend.core.model.relationship.AbstractJobParameterInRepositoryRelationshipHandler#getRepositoryTypeValueNameN
* ()
*/
@Override
protected String[] getRepositoryTypeValueNameN() {
return new String[] { "SCHEMA_OTHER:REPOSITORY_SCHEMA_TYPE" }; //$NON-NLS-1$
return "REPOSITORY_SCHEMA_TYPE"; //$NON-NLS-1$
}
/*

View File

@@ -25,6 +25,7 @@ ProxyRepositoryFactory.log.unlock=Unlock [{0}] by "{1}".
ProxyRepositoryFactory.logonInProgress=Log on in progress...
ProxyRepositoryFactory.MoveFolderContainsLockedItem=Cannot move a folder which contains locked items
ProxyRepositoryFactory.projectIsNotCompatible=The project {0} had been opend by a more recent studio so cannot open it.
ProxyRepositoryFactory.projectCanNotOpen=Cannot open the project.Error task is {0}.
ProxyRepositoryFactory.RenameFolderContainsLockedItem=Cannot rename a folder which contains locked items
ProxyRepositoryFactory.ReplaceJob=is already in use,do you want to replace it?
ProxyRepositoryFactory.synch.repo.items=Synchronize repository items

View File

@@ -20,6 +20,7 @@ import java.util.Set;
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.RepositoryObject;
import org.talend.core.repository.ICheckDeleteItemReference;
import org.talend.repository.model.IProxyRepositoryFactory;
import org.talend.repository.model.IRepositoryNode;
@@ -49,7 +50,7 @@ public abstract class AbstractCheckDeleteItemReference implements ICheckDeleteIt
for (IRepositoryNode repositoryNode : deleteNodes) {
IRepositoryViewObject repoObject = repositoryNode.getObject();
if(repoObject!=null) {
refBeans.addAll(checkItemReferenceBeans(factory, deleteActionCache, repoObject));
refBeans.addAll(checkItemReferenceBeans(factory, deleteActionCache, new RepositoryObject(repoObject.getProperty())));
}
}

View File

@@ -890,10 +890,15 @@ public abstract class AbstractEMFRepositoryFactory extends AbstractRepositoryFac
@Override
public FolderItem getFolderItem(Project project, ERepositoryObjectType itemType, IPath path) {
if (project == null || itemType == null) {
// add this to fix NPE of junit for logon
return null;
}
FolderHelper folderHelper = getFolderHelper(project.getEmfProject());
FolderItem folderItem = folderHelper.getFolder(ERepositoryObjectType.getFolderName(itemType) + IPath.SEPARATOR + path);
if (folderItem == null && itemType != null) {
folderItem = folderHelper.createFolder(ERepositoryObjectType.getFolderName(itemType) + IPath.SEPARATOR + path);
String pathStr = ERepositoryObjectType.getFolderName(itemType) + IPath.SEPARATOR + path;
FolderItem folderItem = folderHelper.getFolder(pathStr);
if (folderItem == null) {
folderItem = folderHelper.createFolder(pathStr);
}
return folderItem;
}

View File

@@ -28,6 +28,8 @@ import org.talend.core.model.process.IProcess2;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.Property;
import org.talend.core.model.relationship.Relation;
import org.talend.core.model.relationship.RelationshipItemBuilder;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.ICheckDeleteItemReference;
@@ -45,7 +47,7 @@ import org.talend.repository.ui.actions.DeleteActionCache;
*/
public class CheckJobDeleteReference extends AbstractCheckDeleteItemReference implements ICheckDeleteItemReference {
private static final String PROCESS_TYPE_PROCESS = "PROCESS_TYPE_PROCESS"; //$NON-NLS-1$
private static final String PROCESS_TYPE_PROCESS = "PROCESS_TYPE_PROCESS"; //$NON-NLS-1$
private static final String USE_DYNAMIC_JOB = "USE_DYNAMIC_JOB"; //$NON-NLS-1$
@@ -70,8 +72,10 @@ public class CheckJobDeleteReference extends AbstractCheckDeleteItemReference im
if (!(item instanceof ProcessItem)) {
return list;
}
EList<?> nodesList = null;
// fix bug 10050
List<Relation> relations = RelationshipItemBuilder.getInstance().getItemsHaveRelationWith(property.getId());
if (relations.isEmpty()) {
return list;
}
Set<Project> refParentProjects = new HashSet<Project>();
try {
refParentProjects.add(ProjectManager.getInstance().getCurrentProject());
@@ -81,121 +85,95 @@ public class CheckJobDeleteReference extends AbstractCheckDeleteItemReference im
deleteActionCache.setProcessList(processes);
for (IRepositoryViewObject process : deleteActionCache.getProcessList()) {
Property property2 = process.getProperty();
if (isOpenedItem(property2, deleteActionCache.getOpenProcessMap())) {
// will be checked in the opened item list.
continue;
}
Relation current = new Relation();
current.setId(property2.getId());
current.setType(RelationshipItemBuilder.JOB_RELATION);
current.setVersion(property2.getVersion());
if (!relations.contains(current)) {
continue;
}
boolean isDelete = factory.getStatus(process) == ERepositoryStatus.DELETED;
Item item2 = property2.getItem();
if (item == item2) {
continue;
}
if (!isOpenedItem(item2, deleteActionCache.getOpenProcessMap())) {
if (item2 instanceof ProcessItem) {
nodesList = ((ProcessItem) item2).getProcess().getNode();
String path = item2.getState().getPath();
boolean found = false;
ItemReferenceBean bean = new ItemReferenceBean();
bean.setItemName(label);
bean.setItemVersion(version);
bean.setItemType(type);
bean.setItemDeleted(isItemDeleted);
bean.setReferenceItemName(property2.getLabel());
bean.setReferenceItemVersion(property2.getVersion());
bean.setReferenceItemType(process.getRepositoryObjectType());
bean.setReferenceItemPath(path);
bean.setReferenceProjectName(refP.getLabel());
bean.setReferenceItemDeleted(isDelete);
for (ItemReferenceBean b : list) {
if (b.equals(bean)) {
found = true;
b.addNodeNum();
break;
}
}
if (nodesList != null) {
for (Object object2 : nodesList) {
if (object2 instanceof NodeType) {
NodeType nodeType = (NodeType) object2;
boolean equals = false;
// only detect the tRunJob component releationship between father job and child job //$NON-NLS-1$
if ("tRunJob".equals(nodeType.getComponentName())) {
boolean isUseDynamicJob = false;
for (Object obj : nodeType.getElementParameter()) {
if (obj != null && obj instanceof ElementParameterType) {
ElementParameterType param = (ElementParameterType) obj;
if (USE_DYNAMIC_JOB.equals(param.getName())) { //$NON-NLS-1$
isUseDynamicJob = Boolean.parseBoolean(param.getValue());
}
if ("PROCESS:PROCESS_TYPE_PROCESS".equals(param.getName())) { //$NON-NLS-1$
if (isUseDynamicJob) {
String[] jobIDs = param.getValue().split(";"); //$NON-NLS-1$
for (String jobID : jobIDs) {
if (property.getId().equals(jobID)) {
equals = true;
break;
}
}
} else if (property.getId().equals(param.getValue())) {
equals = true;
}
}
}
}
}
if (equals) {
String path = item2.getState().getPath();
boolean found = false;
ItemReferenceBean bean = new ItemReferenceBean();
bean.setItemName(label);
bean.setItemVersion(version);
bean.setItemType(type);
bean.setItemDeleted(isItemDeleted);
bean.setReferenceItemName(property2.getLabel());
bean.setReferenceItemVersion(property2.getVersion());
bean.setReferenceItemType(process.getRepositoryObjectType());
bean.setReferenceItemPath(path);
bean.setReferenceProjectName(refP.getLabel());
bean.setReferenceItemDeleted(isDelete);
for (ItemReferenceBean b : list) {
if (b.equals(bean)) {
found = true;
b.addNodeNum();
break;
}
}
if (!found) {
list.add(bean);
}
}
}
}
if (!found) {
list.add(bean);
}
}
for (IProcess2 openedProcess : deleteActionCache.getOpenedProcessList()) {
for (INode node : openedProcess.getGraphicalNodes()) {
boolean equals = false;
IElementParameter processTypeParam = node.getElementParameter(PROCESS_TYPE_PROCESS);
if (processTypeParam != null) {
IElementParameter isUseDynamicJob = node.getElementParameter(USE_DYNAMIC_JOB); //$NON-NLS-1$
if (isUseDynamicJob != null && (Boolean) isUseDynamicJob.getValue()) {
String[] jobsID = ((String) processTypeParam.getValue()).split(";"); //$NON-NLS-1$
for (String jobID : jobsID) {
if (property.getId().equals(jobID)) {
equals = true;
break;
}
}
} else if (property.getId().equals(processTypeParam.getValue())) {
equals = true;
}
}
boolean isDelete = factory.getStatus(openedProcess) == ERepositoryStatus.DELETED;
Property property2 = openedProcess.getProperty();
Item item2 = property2.getItem();
String path = item2.getState().getPath();
if (equals) {
boolean found = false;
ItemReferenceBean bean = new ItemReferenceBean();
bean.setItemName(label);
bean.setItemVersion(version);
bean.setItemType(type);
bean.setItemDeleted(isItemDeleted);
bean.setReferenceItemName(property2.getLabel());
bean.setReferenceItemVersion(property2.getVersion());
bean.setReferenceItemType(ERepositoryObjectType.getItemType(item2));
bean.setReferenceItemPath(path);
bean.setReferenceProjectName(refP.getLabel());
bean.setReferenceItemDeleted(isDelete);
for (ItemReferenceBean b : list) {
if (b.equals(bean)) {
found = true;
b.addNodeNum();
}
for (IProcess2 openedProcess : deleteActionCache.getOpenedProcessList()) {
for (INode node : openedProcess.getGraphicalNodes()) {
boolean equals = false;
IElementParameter processTypeParam = node.getElementParameter(PROCESS_TYPE_PROCESS);
if (processTypeParam != null) {
IElementParameter isUseDynamicJob = node.getElementParameter(USE_DYNAMIC_JOB); //$NON-NLS-1$
if (isUseDynamicJob != null && (Boolean) isUseDynamicJob.getValue()) {
String[] jobsID = ((String) processTypeParam.getValue()).split(";"); //$NON-NLS-1$
for (String jobID : jobsID) {
if (property.getId().equals(jobID)) {
equals = true;
break;
}
}
if (!found) {
list.add(bean);
} else if (property.getId().equals(processTypeParam.getValue())) {
equals = true;
}
}
boolean isDelete = factory.getStatus(openedProcess) == ERepositoryStatus.DELETED;
Property property2 = openedProcess.getProperty();
Item item2 = property2.getItem();
String path = item2.getState().getPath();
if (equals) {
boolean found = false;
ItemReferenceBean bean = new ItemReferenceBean();
bean.setItemName(label);
bean.setItemVersion(version);
bean.setItemType(type);
bean.setItemDeleted(isItemDeleted);
bean.setReferenceItemName(property2.getLabel());
bean.setReferenceItemVersion(property2.getVersion());
bean.setReferenceItemType(ERepositoryObjectType.getItemType(item2));
bean.setReferenceItemPath(path);
bean.setReferenceProjectName(ProjectManager.getInstance().getProject(property2).getLabel());
bean.setReferenceItemDeleted(isDelete);
for (ItemReferenceBean b : list) {
if (b.equals(bean)) {
found = true;
b.addNodeNum();
break;
}
}
if (!found) {
list.add(bean);
}
}
}
}
@@ -224,11 +202,10 @@ public class CheckJobDeleteReference extends AbstractCheckDeleteItemReference im
return list;
}
private static boolean isOpenedItem(Item openedItem, MultiKeyMap openProcessMap) {
if (openedItem == null) {
private boolean isOpenedItem(Property property, MultiKeyMap openProcessMap) {
if (property == null) {
return false;
}
Property property = openedItem.getProperty();
return (openProcessMap.get(property.getId(), property.getLabel(), property.getVersion()) != null);
}

View File

@@ -17,6 +17,8 @@ import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.JobletProcessItem;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.Property;
import org.talend.core.model.relationship.Relation;
import org.talend.core.model.relationship.RelationshipItemBuilder;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.ICheckDeleteItemReference;
@@ -53,8 +55,10 @@ public class CheckJobletDeleteReference extends AbstractCheckDeleteItemReference
if (!(item instanceof JobletProcessItem)) {
return list;
}
EList<?> nodesList = null;
// wzhang added to fix bug 10050
List<Relation> relations = RelationshipItemBuilder.getInstance().getItemsHaveRelationWith(property.getId());
if (relations.isEmpty()) {
return list;
}
Set<Project> refParentProjects = new HashSet<Project>();
try {
refParentProjects.add(ProjectManager.getInstance().getCurrentProject());
@@ -65,63 +69,18 @@ public class CheckJobletDeleteReference extends AbstractCheckDeleteItemReference
ERepositoryObjectType jobType = ERepositoryObjectType.PROCESS;
if (jobType != null) {
List<IRepositoryViewObject> jobs = factory.getAll(refP, jobType, true);
processes.addAll(jobs);
checkRelationshipItems(factory, jobs, RelationshipItemBuilder.JOB_RELATION,
list, label, version, type, isItemDeleted,
item, relations, refP, deleteActionCache);
}
ERepositoryObjectType jobletType = ERepositoryObjectType.JOBLET;
if (jobletType != null) {
List<IRepositoryViewObject> jobletes = factory.getAll(refP, jobletType, true);
processes.addAll(jobletes);
List<IRepositoryViewObject> joblets = factory.getAll(refP, jobletType, true);
checkRelationshipItems(factory, joblets, RelationshipItemBuilder.JOBLET_RELATION,
list, label, version, type, isItemDeleted,
item, relations, refP,deleteActionCache);
}
deleteActionCache.setProcessList(processes);
for (IRepositoryViewObject process : deleteActionCache.getProcessList()) {
Property property2 = process.getProperty();
boolean isDelete = factory.getStatus(process) == ERepositoryStatus.DELETED;
Item item2 = property2.getItem();
if (item == item2) {
continue;
}
if (!isOpenedItem(item2, deleteActionCache.getOpenProcessMap())) {
if (item2 instanceof ProcessItem) {
nodesList = ((ProcessItem) item2).getProcess().getNode();
} else if (item2 instanceof JobletProcessItem) {
nodesList = ((JobletProcessItem) item2).getJobletProcess().getNode();
}
}
if (nodesList != null) {
for (Object object2 : nodesList) {
if (object2 instanceof NodeType) {
NodeType nodeType = (NodeType) object2;
nodeType.getElementParameter();
boolean equals = nodeType.getComponentName().equals(label);
if (equals) {
String path = item2.getState().getPath();
boolean found = false;
ItemReferenceBean bean = new ItemReferenceBean();
bean.setItemName(label);
bean.setItemVersion(version);
bean.setItemType(type);
bean.setItemDeleted(isItemDeleted);
bean.setReferenceItemName(property2.getLabel());
bean.setReferenceItemVersion(property2.getVersion());
bean.setReferenceItemType(process.getRepositoryObjectType());
bean.setReferenceItemPath(path);
bean.setReferenceProjectName(refP.getLabel());
bean.setReferenceItemDeleted(isDelete);
for (ItemReferenceBean b : list) {
if (b.equals(bean)) {
found = true;
b.addNodeNum();
break;
}
}
if (!found) {
list.add(bean);
}
}
}
}
}
}
for (IProcess2 openedProcess : deleteActionCache.getOpenedProcessList()) {
for (INode node : openedProcess.getGraphicalNodes()) {
boolean equals = node.getComponent().getName().equals(label);
@@ -181,11 +140,59 @@ public class CheckJobletDeleteReference extends AbstractCheckDeleteItemReference
return list;
}
private static boolean isOpenedItem(Item openedItem, MultiKeyMap openProcessMap) {
if (openedItem == null) {
private void checkRelationshipItems(IProxyRepositoryFactory factory, List<IRepositoryViewObject> objects, String curRepoObjectType, Set<ItemReferenceBean> list,
String label, String version, ERepositoryObjectType type,
boolean isItemDeleted, Item item, List<Relation> relations,
Project refP, DeleteActionCache deleteActionCache) {
for (IRepositoryViewObject process : objects) {
Property property2 = process.getProperty();
boolean isDelete = factory.getStatus(process) == ERepositoryStatus.DELETED;
Item item2 = property2.getItem();
if (item == item2) {
continue;
}
if (isOpenedItem(property2, deleteActionCache.getOpenProcessMap())) {
// will be checked in the opened item list.
continue;
}
Relation current = new Relation();
current.setId(property2.getId());
current.setType(curRepoObjectType);
current.setVersion(property2.getVersion());
if (!relations.contains(current)) {
continue;
}
String path = item2.getState().getPath();
boolean found = false;
ItemReferenceBean bean = new ItemReferenceBean();
bean.setItemName(label);
bean.setItemVersion(version);
bean.setItemType(type);
bean.setItemDeleted(isItemDeleted);
bean.setReferenceItemName(property2.getLabel());
bean.setReferenceItemVersion(property2.getVersion());
bean.setReferenceItemType(process.getRepositoryObjectType());
bean.setReferenceItemPath(path);
bean.setReferenceProjectName(refP.getLabel());
bean.setReferenceItemDeleted(isDelete);
for (ItemReferenceBean b : list) {
if (b.equals(bean)) {
found = true;
b.addNodeNum();
break;
}
}
if (!found) {
list.add(bean);
}
}
}
private boolean isOpenedItem(Property property, MultiKeyMap openProcessMap) {
if (property == null) {
return false;
}
Property property = openedItem.getProperty();
return (openProcessMap.get(property.getId(), property.getLabel(), property.getVersion()) != null);
}

View File

@@ -286,8 +286,11 @@ public abstract class FolderHelper {
continue;
}
item.setParent(parentItem);
if (item instanceof FolderItem && item.getProperty().getLabel().equals(name)) {
return (FolderItem) item;
if (item instanceof FolderItem) {
// TDI-29841, if in win, case insensitive issue for folder, must ignore case
if (item.getProperty().getLabel().equalsIgnoreCase(name)) {
return (FolderItem) item;
}
}
}
} catch (Exception e) {

View File

@@ -14,8 +14,6 @@ package org.talend.core.repository.model;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Dictionary;
@@ -39,7 +37,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
@@ -72,13 +69,11 @@ import org.talend.core.AbstractDQModelService;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ICoreService;
import org.talend.core.IESBService;
import org.talend.core.ISVNProviderServiceInCoreRuntime;
import org.talend.core.ITDQRepositoryService;
import org.talend.core.PluginChecker;
import org.talend.core.context.Context;
import org.talend.core.context.RepositoryContext;
import org.talend.core.exception.TalendInternalPersistenceException;
import org.talend.core.language.ECodeLanguage;
import org.talend.core.language.LanguageManager;
import org.talend.core.model.general.ModuleNeeded;
import org.talend.core.model.general.Project;
@@ -105,6 +100,7 @@ import org.talend.core.model.repository.Folder;
import org.talend.core.model.repository.IRepositoryContentHandler;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.IRepositoryWorkUnitListener;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.core.model.repository.LockInfo;
import org.talend.core.model.repository.RepositoryContentManager;
import org.talend.core.model.repository.RepositoryObject;
@@ -288,7 +284,9 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
migrationToolService.updateMigrationSystem(project.getEmfProject(), false);
boolean isProjectCompatibility = migrationToolService.checkMigrationTasks(project.getEmfProject());
if (!isProjectCompatibility) {
throw new LoginException(Messages.getString("ProxyRepositoryFactory.projectIsNotCompatible", project.getLabel())); //$NON-NLS-1$
throw new LoginException(Messages.getString(
"ProxyRepositoryFactory.projectCanNotOpen", migrationToolService.getTaskId())); //$NON-NLS-1$
}
}
@@ -1085,10 +1083,14 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
// for bug 9352: .svnlog folder should not be visible in wizards
EObject obj = source.getParent();
if (obj != null && obj instanceof FolderItemImpl) {
target.add(path + source.getProperty().getLabel());
String onePath = path + source.getProperty().getLabel();
// TDI-29841, if in win, case sensitive issue for folder.
onePath = onePath.toUpperCase();
target.add(onePath);
for (Object current : source.getChildren()) {
if (current instanceof FolderItem) {
addChildren(target, (FolderItem) current, type, path + source.getProperty().getLabel() + "/"); //$NON-NLS-1$
addChildren(target, (FolderItem) current, type, onePath + "/"); //$NON-NLS-1$
}
}
}
@@ -1187,6 +1189,8 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
String folderLabel = path.segment(i);
String folderName = parentPath.append(folderLabel).toString();
// TDI-29841, if in win, case insensitive issue for folder.
folderName = folderName.toUpperCase();
if (!folders.contains(folderName)) {
createFolder(project, itemType, parentPath, folderLabel);
}

View File

@@ -24,7 +24,7 @@ import org.talend.core.model.properties.Property;
import org.talend.core.model.properties.User;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.cwm.helper.CatalogHelper;
import org.talend.repository.model.ERepositoryStatus;
import org.talend.repository.model.IRepositoryNode;

View File

@@ -24,7 +24,7 @@ import org.talend.core.model.properties.Property;
import org.talend.core.model.properties.User;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.cwm.helper.CatalogHelper;
import org.talend.cwm.helper.SchemaHelper;
import org.talend.repository.model.ERepositoryStatus;

View File

@@ -31,7 +31,7 @@ import org.talend.core.model.properties.Property;
import org.talend.core.model.properties.User;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.cwm.helper.ConnectionHelper;
import org.talend.cwm.helper.SubItemHelper;
import org.talend.cwm.helper.SwitchHelpers;

View File

@@ -21,7 +21,7 @@ import org.talend.core.model.properties.Property;
import org.talend.core.model.properties.User;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.cwm.xml.TdXmlElementType;
import org.talend.repository.model.ERepositoryStatus;
import org.talend.repository.model.IRepositoryNode;

View File

@@ -21,7 +21,7 @@ import org.talend.core.model.properties.Property;
import org.talend.core.model.properties.User;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.cwm.xml.TdXmlSchema;
import org.talend.repository.model.ERepositoryStatus;
import org.talend.repository.model.IRepositoryNode;

View File

@@ -27,7 +27,7 @@ import org.talend.core.model.properties.Property;
import org.talend.core.model.properties.User;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.cwm.helper.SubItemHelper;
import orgomg.cwm.objectmodel.core.ModelElement;

View File

@@ -23,8 +23,8 @@ import org.talend.core.model.properties.Item;
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.ISubRepositoryObject;
import org.talend.core.model.repository.RepositoryObject;
import org.talend.core.repository.model.ISubRepositoryObject;
import orgomg.cwm.objectmodel.core.ModelElement;
/**

View File

@@ -23,8 +23,8 @@ import org.talend.core.model.properties.Item;
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.ISubRepositoryObject;
import org.talend.core.model.repository.RepositoryObject;
import org.talend.core.repository.model.ISubRepositoryObject;
import orgomg.cwm.objectmodel.core.ModelElement;
/**
@@ -51,6 +51,7 @@ public class SAPIDocRepositoryObject extends RepositoryObject implements ISubRep
return ERepositoryObjectType.METADATA_SAP_IDOC;
}
@Override
public void setLabel(String value) {
if (iDocUnit.getLabel() == null) {
iDocUnit.setLabel(value);
@@ -89,6 +90,7 @@ public class SAPIDocRepositoryObject extends RepositoryObject implements ISubRep
*
* @see org.talend.repository.model.ISubRepositoryObject#getAbstractMetadataObject ()
*/
@Override
public AbstractMetadataObject getAbstractMetadataObject() {
return iDocUnit;
}
@@ -98,10 +100,12 @@ public class SAPIDocRepositoryObject extends RepositoryObject implements ISubRep
*
* @see org.talend.repository.model.ISubRepositoryObject#removeFromParent()
*/
@Override
public void removeFromParent() {
iDocUnit.getConnection().getIDocs().remove(iDocUnit);
}
@Override
public ERepositoryStatus getRepositoryStatus() {
return repObj.getRepositoryStatus();
}
@@ -132,6 +136,7 @@ public class SAPIDocRepositoryObject extends RepositoryObject implements ISubRep
}
@Override
public ModelElement getModelElement() {
return iDocUnit;
}

View File

@@ -25,8 +25,8 @@ import org.talend.core.model.properties.Item;
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.ISubRepositoryObject;
import org.talend.core.model.repository.RepositoryObject;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.cwm.helper.SubItemHelper;
import orgomg.cwm.objectmodel.core.ModelElement;
@@ -67,6 +67,7 @@ public class SalesforceModuleRepositoryObject extends RepositoryObject implement
return ERepositoryObjectType.METADATA_SALESFORCE_MODULE;
}
@Override
public void setLabel(String value) {
if (moduleUnit.getLabel() == null) {
moduleUnit.setLabel(value);
@@ -114,6 +115,7 @@ public class SalesforceModuleRepositoryObject extends RepositoryObject implement
*
* @see org.talend.repository.model.ISubRepositoryObject#getAbstractMetadataObject ()
*/
@Override
public AbstractMetadataObject getAbstractMetadataObject() {
return this.moduleUnit;
}
@@ -123,10 +125,12 @@ public class SalesforceModuleRepositoryObject extends RepositoryObject implement
*
* @see org.talend.repository.model.ISubRepositoryObject#removeFromParent()
*/
@Override
public void removeFromParent() {
moduleUnit.getConnection().getModules().remove(moduleUnit);
}
@Override
public ERepositoryStatus getRepositoryStatus() {
return repObj.getRepositoryStatus();
}
@@ -159,6 +163,7 @@ public class SalesforceModuleRepositoryObject extends RepositoryObject implement
}
@Override
public ModelElement getModelElement() {
return this.moduleUnit;
}

View File

@@ -75,11 +75,11 @@ import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.Folder;
import org.talend.core.model.repository.IRepositoryContentHandler;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.core.model.repository.RepositoryContentManager;
import org.talend.core.model.repository.RepositoryManager;
import org.talend.core.model.utils.RepositoryManagerHelper;
import org.talend.core.repository.i18n.Messages;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject;
import org.talend.core.repository.utils.AbstractResourceChangesService;
@@ -586,10 +586,10 @@ public class DeleteAction extends AContextualAction {
BusinessException bex = null;
for (IRepositoryNode repositoryNode2 : repositoryList) {
try {
boolean ret = deleteRepositoryNode(repositoryNode2, factory);
if (!ret) {
return false;
}
boolean ret = deleteRepositoryNode(repositoryNode2, factory);
if (!ret) {
return false;
}
} catch (PersistenceException e) {
pex = e;
} catch (BusinessException e) {
@@ -620,12 +620,12 @@ public class DeleteAction extends AContextualAction {
folderItem.getState().setPath(fullPath);
return true;
} else {
final DeleteActionCache deleteActionCache = DeleteActionCache.getInstance();
final DeleteActionCache deleteActionCache = DeleteActionCache.getInstance();
deleteActionCache.setGetAlways(false);
deleteActionCache.setDocRefresh(false);
deleteActionCache.createRecords();
final IRepositoryViewObject objToDelete = repositoryNode.getObject();
final boolean[] enableDeleting = new boolean[1];
enableDeleting[0] = true;
@@ -1447,9 +1447,7 @@ public class DeleteAction extends AContextualAction {
case SIMPLE_FOLDER:
Object obj = node.getProperties(EProperties.LABEL);
String label = null;
IRepositoryViewObject folderObj = node.getObject();
ERepositoryStatus statusFolder = folderObj.getRepositoryStatus();
boolean isDeletedFolder = statusFolder == ERepositoryStatus.DELETED;
boolean isDeletedFolder = node.getObject().isDeleted();
if (obj instanceof String) {
label = (String) obj;
}

View File

@@ -44,9 +44,9 @@ import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.SalesforceSchemaConnectionItem;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.core.model.repository.RepositoryManager;
import org.talend.core.repository.i18n.Messages;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject;
import org.talend.core.repository.utils.AbstractResourceChangesService;

View File

@@ -48,11 +48,11 @@ import org.talend.core.model.properties.Item;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryContentHandler;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.core.model.repository.RepositoryContentManager;
import org.talend.core.repository.i18n.Messages;
import org.talend.core.repository.link.IRepoViewLinker;
import org.talend.core.repository.link.RepoViewLinkerRegistryReader;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.utils.AbstractResourceChangesService;
import org.talend.core.repository.utils.RepositoryNodeDeleteManager;

View File

@@ -45,8 +45,8 @@ import org.talend.core.model.properties.FolderItem;
import org.talend.core.model.properties.Item;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.core.repository.i18n.Messages;
import org.talend.core.repository.model.ISubRepositoryObject;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.service.ICoreUIService;
import org.talend.cwm.helper.SubItemHelper;

View File

@@ -12,6 +12,7 @@
<dbType type="DECIMAL" defaultLength="20" defaultPrecision="10"/>
<dbType type="DOUBLE" ignoreLen="true" ignorePre="true"/>
<dbType type="FLOAT" ignoreLen="true" ignorePre="true"/>
<dbType type="INTEGER" ignoreLen="true" ignorePre="true" />
<dbType type="INT" ignoreLen="true" ignorePre="true"/>
<dbType type="LONGVARBINARY" ignoreLen="true" ignorePre="true"/>
<dbType type="LONGVARCHAR" ignoreLen="true" ignorePre="true"/>
@@ -44,6 +45,7 @@
</talendType>
<talendType type="id_Integer">
<dbType type="INT" default="true"/>
<dbType type="INTEGER"/>
<dbType type="BIGINT"/>
</talendType>
<talendType type="id_Long">
@@ -140,6 +142,9 @@
<dbType type="INT">
<talendType type="id_Integer" default="true"/>
<talendType type="id_Long"/>
</dbType>
<dbType type="INTEGER">
<talendType type="id_Integer" default="true" />
</dbType>
<dbType type="LONGVARBINARY">
<talendType type="id_byte[]" default="true"/>

View File

@@ -50,7 +50,7 @@
<dbType type="TIME" ignorePre="true" />
<dbType type="TINTERVAL" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMPTZ" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMP" ignorePre="true" />
<dbType type="TIMESTAMP" ignoreLen="true" ignorePre="true" />
<dbType type="TIMETZ" ignoreLen="true" ignorePre="true" />
<dbType type="VARBIT" ignoreLen="true" ignorePre="true" />
<dbType type="VARCHAR" defaultLength="200" ignorePre="true" />
@@ -125,12 +125,12 @@
<dbType type="TEXT" />
</talendType>
<talendType type="id_Date">
<dbType type="DATE" default="true" />
<dbType type="DATE" />
<dbType type="ABSTIME" />
<dbType type="TIMETZ" />
<dbType type="TIME" />
<dbType type="TIMESTAMPTZ" />
<dbType type="TIMESTAMP" />
<dbType type="TIMESTAMP" default="true"/>
<dbType type="INTERVAL" />
<dbType type="TINTERVAL" />
<dbType type="RELTIME" />

View File

@@ -13,6 +13,7 @@
<dbType type="DATETIME" ignoreLen="true" ignorePre="true" />
<dbType type="DECIMAL" defaultLength="20" defaultPrecision="10" />
<dbType type="DOUBLE PRECISION" ignoreLen="true" ignorePre="true" />
<dbType type="UNSIGNED INT" ignoreLen="true" ignorePre="true" />
<dbType type="DOUBLE PRECIS" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT" ignoreLen="true" ignorePre="true" />
<dbType type="INT" ignoreLen="true" ignorePre="true" />
@@ -92,10 +93,12 @@
<dbType type="BIGINT" />
<dbType type="SMALLINT"/>
<dbType type="TINYINT"/>
<dbType type="UNSIGNED INT"/>
</talendType>
<talendType type="id_Long">
<dbType type="BIGINT" default="true" />
<dbType type="INT"/>
<dbType type="UNSIGNED INT"/>
<dbType type="SMALLINT"/>
<dbType type="TINYINT"/>
</talendType>
@@ -172,6 +175,10 @@
<talendType type="id_Double"/>
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="UNSIGNED INT">
<talendType type="id_Long" default="true" />
<talendType type="id_Integer"/>
</dbType>
<dbType type="INT">
<talendType type="id_Integer" default="true" />
<talendType type="id_Short"/>

View File

@@ -58,13 +58,13 @@
</talendType>
<talendType type="id_Byte">
<dbType type="BF" default="true"/>
<dbType type="BYTEINT" />
<dbType type="BYTE" />
<dbType type="BF"/>
<dbType type="BYTEINT" default="true"/>
<dbType type="BYTE"/>
</talendType>
<talendType type="id_byte[]">
<dbType type="BF" default="true"/>
<dbType type="VARBYTE"/>
<dbType type="BF"/>
<dbType type="VARBYTE" default="true"/>
</talendType>
<talendType type="id_Character">
<dbType type="BYTE" />

View File

@@ -286,4 +286,11 @@ public enum EDatabaseTypeName {
return useProvider;
}
public boolean isSchemaCaseSensitive() {
if (EDatabaseTypeName.ORACLEFORSID == this || EDatabaseTypeName.TERADATA == this || EDatabaseTypeName.VERTICA == this) {
return false;
} else {
return true;
}
}
}

View File

@@ -308,6 +308,9 @@ public class DatabaseConnStrUtil {
// Added by Marvin Wang on May. 6, 2013 for bug TDI-25873.
if (version != null) {
for (EDatabaseConnTemplate template : EDatabaseConnTemplate.values()) {
if (template == EDatabaseConnTemplate.GODBC || template == EDatabaseConnTemplate.MSODBC) {
continue;
}
String urlTemplate = template.getUrlTemplate(version);
if (urlTemplate.indexOf("<") != -1) {
startTemplateString = urlTemplate.substring(0, urlTemplate.indexOf("<")); //$NON-NLS-1$

View File

@@ -33,12 +33,15 @@ public class DbVersion4DriversForOracle11 extends DbVersion4Drivers {
@Override
Set<String> getDrivers() {
Set<String> drivers = new HashSet<String>();
if (System.getProperty("java.version").startsWith("1.6")) { //$NON-NLS-1$ //$NON-NLS-2$
drivers.add(DRIVER_1_6);
} else {
drivers.add(DRIVER_1_5);
String javaVersion = System.getProperty("java.version");//$NON-NLS-1$
if (javaVersion != null) {
org.talend.commons.utils.Version v = new org.talend.commons.utils.Version(javaVersion);
if (v.getMajor() == 1 && v.getMinor() == 5) {
drivers.add(DRIVER_1_5);
} else {
drivers.add(DRIVER_1_6);
}
}
return drivers;
}
}

View File

@@ -91,7 +91,7 @@ public enum EHadoopVersion4Drivers {
EHadoopDistributions.PIVOTAL_HD,
"Pivotal HD 2.0",
"PIVOTAL_HD_2_0",
false,
true,
false,
new EMRVersion[] { EMRVersion.YARN }),

View File

@@ -0,0 +1,22 @@
// ============================================================================
//
// Copyright (C) 2006-2014 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.model.metadata;
/**
* created by ldong on Jan 13, 2015 Detailled comment
*
*/
public interface IDatabaseConstant {
public static final String REDSHIFT = "DATABASE:REDSHIFT";
}

View File

@@ -206,6 +206,7 @@ public class MetadataSchema {
final Node defaultValue = nodeMap.getNamedItem("default"); //$NON-NLS-1$
final Node comment = nodeMap.getNamedItem("comment"); //$NON-NLS-1$
final Node pattern = nodeMap.getNamedItem("pattern"); //$NON-NLS-1$
final Node originalLength = nodeMap.getNamedItem("originalLength");//$NON-NLS-1$
// see feature 4456
String nodeValue = MetadataToolHelper.validateColumnName(label.getNodeValue(), 0);
@@ -222,6 +223,15 @@ public class MetadataSchema {
} else {
metadataColumn.setOriginalDbColumnName(nodeValue);
}
if (originalLength != null && originalLength.getNodeValue() != null) {
try {
metadataColumn.setOriginalLength(Integer.parseInt(originalLength.getNodeValue()));
} catch (final NumberFormatException e) {
metadataColumn.setOriginalLength(null);
}
} else {
metadataColumn.setOriginalLength(null);
}
if (length.getNodeValue() != null) {
try {
metadataColumn.setLength(Integer.parseInt(length.getNodeValue()));
@@ -784,6 +794,14 @@ public class MetadataSchema {
}
column.setAttributeNode(length);
Attr originalLength = document.createAttribute("originalLength"); //$NON-NLS-1$
if (metadataColumn.getOriginalLength() == null) {
originalLength.setNodeValue("-1"); //$NON-NLS-1$
} else {
originalLength.setNodeValue(String.valueOf(metadataColumn.getOriginalLength()));
}
column.setAttributeNode(originalLength);
Attr precision = document.createAttribute("precision"); //$NON-NLS-1$
if (metadataColumn.getPrecision() == null) {
precision.setNodeValue("-1"); //$NON-NLS-1$

View File

@@ -45,7 +45,7 @@ public enum HiveConnVersionInfo {
HDP_2_1(1, "HDP_2_1", "Hortonworks Data Platform V2.1.0(Baikal)", true, false, true, true, HiveConnVersionInfo.HORTONWORKS), //$NON-NLS-1$//$NON-NLS-2$
HDP_2_0(1, "HDP_2_0", "Hortonworks Data Platform V2.0.0(BigWheel)", true, false, true, false, HiveConnVersionInfo.HORTONWORKS), //$NON-NLS-1$//$NON-NLS-2$
HDP_2_0(1, "HDP_2_0", "Hortonworks Data Platform V2.0.0(BigWheel)", true, false, true, true, HiveConnVersionInfo.HORTONWORKS), //$NON-NLS-1$//$NON-NLS-2$
HDP_1_3(1, "HDP_1_3", "Hortonworks Data Platform V1.3.0(Condor)", true, true, HiveConnVersionInfo.HORTONWORKS), //$NON-NLS-1$//$NON-NLS-2$
@@ -81,7 +81,7 @@ public enum HiveConnVersionInfo {
MapR_EMR(1, "MapR_EMR", "MapR 1.2.8(deprecated)", false, HiveConnVersionInfo.AMAZON_EMR), //$NON-NLS-1$//$NON-NLS-2$
PIVOTAL_HD_2_0(1, "PIVOTAL_HD_2_0", "Pivotal HD 2.0", true, false, true, false, HiveConnVersionInfo.PIVOTAL_HD), //$NON-NLS-1$//$NON-NLS-2$
PIVOTAL_HD_2_0(1, "PIVOTAL_HD_2_0", "Pivotal HD 2.0", true, false, true, true, HiveConnVersionInfo.PIVOTAL_HD), //$NON-NLS-1$//$NON-NLS-2$
PIVOTAL_HD_1_0_1(1, "PIVOTAL_HD_1_0_1", "Pivotal HD 1.0.1", false, false, true, false, HiveConnVersionInfo.PIVOTAL_HD), //$NON-NLS-1$//$NON-NLS-2$

View File

@@ -118,8 +118,10 @@ public class ComponentToRepositoryProperty {
product = EDatabaseTypeName.MYSQL.getProduct();
}
}
String mapping = MetadataTalendType.getDefaultDbmsFromProduct(product).getId();
conn.setDbmsId(mapping);
if (MetadataTalendType.getDefaultDbmsFromProduct(product) != null) {
String mapping = MetadataTalendType.getDefaultDbmsFromProduct(product).getId();
conn.setDbmsId(mapping);
}
}
}
return true;

View File

@@ -26,6 +26,7 @@ import org.eclipse.core.runtime.Path;
import org.eclipse.emf.common.util.EList;
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
import org.talend.commons.ui.utils.PathUtils;
import org.talend.commons.utils.PasswordEncryptUtil;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.database.conn.ConnParameterKeys;
@@ -499,15 +500,21 @@ public class RepositoryToComponentProperty {
return "CustomModule"; //$NON-NLS-1$
} else {
if (table != null) {
EList<SalesforceModuleUnit> moduleList = connection.getModules();
for (SalesforceModuleUnit unit : moduleList) {
if (table.getLabel().equals(unit.getModuleName())) {
return unit.getModuleName();
}
SalesforceModuleUnit currentUnit = getSaleforceModuleUnitByTable(table, connection.getModules());
if (currentUnit != null) {
return currentUnit.getModuleName();
}
}
return connection.getModuleName();
}
} else if ("CUSTOM_MODULE_NAME".equals(value)) { //$NON-NLS-1$
if (table != null) {
SalesforceModuleUnit currentUnit = getSaleforceModuleUnitByTable(table, connection.getModules());
if (currentUnit != null) {
return TalendQuoteUtils.addQuotes(currentUnit.getModuleName());
}
}
return TalendQuoteUtils.addQuotes(connection.getModuleName());
} else if ("QUERY_CONDITION".equals(value)) { //$NON-NLS-1$
if (isContextMode(connection, connection.getQueryCondition())) {
return connection.getQueryCondition();
@@ -595,6 +602,15 @@ public class RepositoryToComponentProperty {
return null;
}
private static SalesforceModuleUnit getSaleforceModuleUnitByTable(IMetadataTable table, EList<SalesforceModuleUnit> moduleList) {
for (SalesforceModuleUnit unit : moduleList) {
if (table.getLabel().equals(unit.getModuleName())) {
return unit;
}
}
return null;
}
/**
* DOC qzhang Comment method "getWSDLValue".
*
@@ -2349,7 +2365,12 @@ public class RepositoryToComponentProperty {
if (isContextMode(connection, connection.getPassword())) {
return connection.getPassword();
} else {
return TalendQuoteUtils.addQuotes(connection.getPassword());
try {
return TalendQuoteUtils.addQuotes(PasswordEncryptUtil.decryptPassword(connection.getPassword()));
} catch (Exception e) {
String pwd = ConnectionHelper.getDecryptPassword(connection.getPassword());
return pwd == null ? TalendQuoteUtils.addQuotes(connection.getPassword()) : TalendQuoteUtils.addQuotes(pwd);
}
}
}
if (value.equals("KEYSTORE_FILE")) {
@@ -2364,7 +2385,33 @@ public class RepositoryToComponentProperty {
if (isContextMode(connection, connection.getKeystorePassword())) {
return connection.getKeystorePassword();
} else {
return TalendQuoteUtils.addQuotes(connection.getKeystorePassword());
try {
return TalendQuoteUtils.addQuotes(PasswordEncryptUtil.decryptPassword(connection.getKeystorePassword()));
} catch (Exception e) {
String pwd = ConnectionHelper.getDecryptPassword(connection.getKeystorePassword());
return pwd == null ? TalendQuoteUtils.addQuotes(connection.getKeystorePassword()) : TalendQuoteUtils
.addQuotes(pwd);
}
}
}
if (value.equals("PRIVATEKEY")) {
if (isContextMode(connection, connection.getPrivatekey())) {
return connection.getPrivatekey();
} else {
return TalendQuoteUtils.addQuotes(connection.getPrivatekey());
}
}
if (value.equals("PASSPHRASE")) {
if (isContextMode(connection, connection.getPassphrase())) {
return connection.getPassphrase();
} else {
try {
return TalendQuoteUtils.addQuotes(PasswordEncryptUtil.decryptPassword(connection.getPassphrase()));
} catch (Exception e) {
String pwd = ConnectionHelper.getDecryptPassword(connection.getPassphrase());
return pwd == null ? TalendQuoteUtils.addQuotes(connection.getPassphrase()) : TalendQuoteUtils.addQuotes(pwd);
}
}
}
if (value.equals("AUTH_METHOD")) {
@@ -2431,7 +2478,13 @@ public class RepositoryToComponentProperty {
if (isContextMode(connection, connection.getProxypassword())) {
return connection.getProxypassword();
} else {
return TalendQuoteUtils.addQuotes(connection.getProxypassword());
try {
return TalendQuoteUtils.addQuotes(PasswordEncryptUtil.decryptPassword(connection.getProxypassword()));
} catch (Exception e) {
String pwd = ConnectionHelper.getDecryptPassword(connection.getProxypassword());
return pwd == null ? TalendQuoteUtils.addQuotes(connection.getProxypassword()) : TalendQuoteUtils
.addQuotes(pwd);
}
}
}
return null;

View File

@@ -392,6 +392,19 @@ public final class JavaTypesManager {
return Number.class.isAssignableFrom(javaType.getNullableClass());
}
/**
* They are all the INTEGER number type.
* <p>
* int(Integer), long(Long), short(Short), byte(Byte)
* </p>
*
* @param type
* @return true if given type represents a primitive java type
*/
public static boolean isNumberIntType(JavaType javaType) {
return javaType == BYTE || javaType == INTEGER || javaType == SHORT || javaType == LONG;
}
/**
*
* Return the default value for a given type.

View File

@@ -66,4 +66,6 @@ public interface IMigrationToolService extends IService {
*/
public void updateMigrationSystem(org.talend.core.model.properties.Project project, boolean persistence);
public String getTaskId();
}

View File

@@ -92,7 +92,13 @@ public abstract class AbstractNode implements INode {
private List<ModuleNeeded> modulesNeeded = new ArrayList<ModuleNeeded>();
// as the talend job contains multiple mapreduce jobs, use this to indicate which mapreduce job contains this
// for DI job, and indicate if the component after the iterator
// connection which enable parallel, even this component after
// onComponentOk
private String parallelIterator = null;
// as the talend job contains multiple mapreduce jobs, use this to indicate
// which mapreduce job contains this
// graphic node
private Integer mrGroupId;
@@ -725,6 +731,9 @@ public abstract class AbstractNode implements INode {
@Override
public List<? extends IElementParameter> getElementParametersWithChildrens() {
if (this.elementParameters == null) {
return new ArrayList<IElementParameter>();
}
List<IElementParameter> fullListParam = new ArrayList<IElementParameter>(this.elementParameters);
for (IElementParameter curParam : elementParameters) {
@@ -1193,4 +1202,22 @@ public abstract class AbstractNode implements INode {
public void setRefNode(boolean isRefNode) {
this.isRefNode = isRefNode;
}
/**
* Getter for parallelIterator.
*
* @return the parallelIterator
*/
public String getParallelIterator() {
return parallelIterator;
}
/**
* Sets the parallelIterator.
*
* @param parallelIterator the parallelIterator to set
*/
public void setParallelIterator(String parallelIterator) {
this.parallelIterator = parallelIterator;
}
}

View File

@@ -36,69 +36,41 @@ public abstract class AbstractJobParameterInRepositoryRelationshipHandler extend
protected Set<Relation> collect(Map<String, ElementParameterType> parametersMap, Map<?, ?> options) {
Set<Relation> relationSet = new HashSet<Relation>();
ElementParameterType repositoryTypeParam = getParameterTypeByNames(parametersMap, getRepositoryTypeName(),
getRepositoryTypeNameN());
if (repositoryTypeParam != null && IN_REPOSITORY.equals(repositoryTypeParam.getValue())) {
ElementParameterType repositoryTypeValueParam = getParameterTypeByNames(parametersMap, getRepositoryTypeValueName(),
getRepositoryTypeValueNameN());
if (repositoryTypeValueParam != null) {
String repositoryIdOrValue = repositoryTypeValueParam.getValue();
if (StringUtils.isNotEmpty(repositoryIdOrValue)) {
Relation addedRelation = new Relation();
addedRelation.setId(repositoryIdOrValue);
addedRelation.setType(getRepositoryRelationType());
addedRelation.setVersion(RelationshipItemBuilder.LATEST_VERSION);
relationSet.add(addedRelation);
for (ElementParameterType paramType : parametersMap.values()) {
if (paramType.getName().endsWith(":" + getRepositoryTypeName())) { //$NON-NLS-1$
String name = paramType.getName().split(":")[0]; //$NON-NLS-1$
ElementParameterType repositoryTypeParam = parametersMap.get(name + ":" //$NON-NLS-1$
+ getRepositoryTypeName());
if (repositoryTypeParam != null && IN_REPOSITORY.equals(repositoryTypeParam.getValue())) {
ElementParameterType repositoryTypeValueParam = parametersMap.get(name + ":" //$NON-NLS-1$
+ getRepositoryTypeValueName());
if (repositoryTypeValueParam != null) {
String repositoryIdOrValue = repositoryTypeValueParam.getValue();
if (StringUtils.isNotEmpty(repositoryIdOrValue)) {
Relation addedRelation = new Relation();
addedRelation.setId(repositoryIdOrValue);
addedRelation.setType(getRepositoryRelationType());
addedRelation.setVersion(RelationshipItemBuilder.LATEST_VERSION);
relationSet.add(addedRelation);
}
}
}
}
}
return relationSet;
}
/**
* Try to find the name1 of parameter type, if not found, will try the list of nameN.
*/
protected ElementParameterType getParameterTypeByNames(Map<String, ElementParameterType> parametersMap, String name1,
String... nameN) {
if (parametersMap == null || parametersMap.isEmpty() || name1 == null) {
return null;
}
ElementParameterType paramType = parametersMap.get(name1);
if (paramType == null && nameN != null && nameN.length > 0) {
for (String name : nameN) {
paramType = parametersMap.get(name);
if (paramType != null) { // found
break;
}
}
}
return paramType;
}
/**
* Something like PROPERTY:PROPERTY_TYPE
* Something like PROPERTY_TYPE
*/
protected abstract String getRepositoryTypeName();
/**
* Something like PROPERTY:REPOSITORY_PROPERTY_TYPE
*/
protected abstract String getRepositoryTypeValueName();
/**
* Something like PROPERTY_TYPE
*/
protected String[] getRepositoryTypeNameN() {
return new String[0]; // default, no Name N
}
/**
* Something like REPOSITORY_PROPERTY_TYPE
*/
protected String[] getRepositoryTypeValueNameN() {
return new String[0];// default, no Name N
}
protected abstract String getRepositoryTypeValueName();
/**
* get the type of relation type

View File

@@ -107,4 +107,10 @@ public class Relation implements Cloneable {
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
@Override
public String toString() {
return "Relation [type=" + type + ", id=" + id + ", version=" + version
+ "]";
}
}

View File

@@ -145,6 +145,31 @@ public class RelationshipItemBuilder {
return instance;
}
/**
* Look for every linked items who use the selected id, no matter the version.
* Usefull when want to delete an item since it will delete every versions.
*
* @param itemId
* @param version
* @param relationType
* @return
*/
public List<Relation> getItemsHaveRelationWith(String itemId) {
if (!loaded) {
loadRelations();
}
Set<Relation> relations = new HashSet<Relation>();
Set<Relation> itemsRelations = getItemsHaveRelationWith(currentProjectItemsRelations, itemId);
if (itemsRelations != null) {
relations.addAll(itemsRelations);
}
itemsRelations = getItemsHaveRelationWith(referencesItemsRelations, itemId);
if (itemsRelations != null) {
relations.addAll(itemsRelations);
}
return new ArrayList<Relation>(relations);
}
public List<Relation> getItemsRelatedTo(String itemId, String version, String relationType) {
if (!loaded) {
loadRelations();
@@ -160,6 +185,36 @@ public class RelationshipItemBuilder {
}
return new ArrayList<Relation>(relations);
}
private Set<Relation> getItemsHaveRelationWith(Map<Relation, Set<Relation>> itemsRelations, String itemId) {
Set<Relation> relations = new HashSet<Relation>();
for (Relation baseItem : itemsRelations.keySet()) {
for (Relation relatedItem : itemsRelations.get(baseItem)) {
String id = relatedItem.getId();
if (id != null) {
Relation tmpRelatedItem = null;
if (id.indexOf(" - ") != -1) { //$NON-NLS-1$
try {
tmpRelatedItem = (Relation) relatedItem.clone();
tmpRelatedItem.setId(id.split(" - ")[0]); //$NON-NLS-1$
} catch (CloneNotSupportedException e) {
log.error(e);
}
} else {
tmpRelatedItem = relatedItem;
}
if (tmpRelatedItem != null && itemId.equals(id)) {
relations.add(baseItem);
break;
}
}
}
}
return relations;
}
private Set<Relation> getItemsRelatedTo(Map<Relation, Set<Relation>> itemsRelations, String itemId, String version,
String relationType) {

View File

@@ -1,11 +1,11 @@
package org.talend.core.model.repository;
import java.util.List;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ViewerFilter;
import org.talend.core.model.process.IElement;
import org.talend.repository.model.IRepositoryNode;
import org.talend.repository.model.RepositoryNode;
import org.talend.repository.model.nodes.IProjectRepositoryNode;
/**
* created by ycbai on 2013-3-4 Detailled comment
@@ -17,12 +17,12 @@ public interface IRepositoryTypeProcessor {
public boolean isSelectionValid(RepositoryNode node);
public IRepositoryNode getInputRoot(IProjectRepositoryNode projectRepoNode);
public ViewerFilter makeFilter();
public String getDialogTitle();
public ILabelProvider getLabelProvider(IElement elem);
}
public List<ERepositoryObjectType> getShowRootTypes();
}

View File

@@ -10,7 +10,7 @@
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.repository.model;
package org.talend.core.model.repository;
import org.talend.core.model.metadata.builder.connection.AbstractMetadataObject;
import org.talend.core.model.properties.Property;

View File

@@ -96,6 +96,8 @@ public class RepositoryViewObject implements IRepositoryViewObject {
private String path;
private String displayName;
private ERepositoryStatus repositoryStatus;
private ERepositoryStatus informationStatus;
@@ -118,7 +120,8 @@ public class RepositoryViewObject implements IRepositoryViewObject {
this.creationDate = property.getCreationDate();
this.description = property.getDescription();
this.modificationDate = property.getModificationDate();
this.label = property.getDisplayName();
this.label = property.getLabel();
this.displayName = property.getDisplayName();
this.purpose = property.getPurpose();
this.statusCode = property.getStatusCode();
this.version = property.getVersion();
@@ -251,6 +254,10 @@ public class RepositoryViewObject implements IRepositoryViewObject {
@Override
public String getLabel() {
return this.displayName;
}
public String getTechnicalLabel() {
return this.label;
}
@@ -297,7 +304,8 @@ public class RepositoryViewObject implements IRepositoryViewObject {
this.creationDate = property.getCreationDate();
this.description = property.getDescription();
this.modificationDate = property.getModificationDate();
this.label = property.getDisplayName();
this.label = property.getLabel();
this.displayName = property.getDisplayName();
this.purpose = property.getPurpose();
this.statusCode = property.getStatusCode();
this.version = property.getVersion();

View File

@@ -325,7 +325,9 @@ public abstract class RepositoryUpdateManager {
}
return false;
}
openNoModificationDialog();
if (show) {
openNoModificationDialog();
}
}
return false;
}
@@ -1166,7 +1168,7 @@ public abstract class RepositoryUpdateManager {
}
};
return repositoryUpdateManager.doWork(true, false);
return repositoryUpdateManager.doWork(show, false);
}
/**

View File

@@ -90,11 +90,14 @@ public abstract class AbstractRepositoryNodeUpdateManagerProvider extends Abstra
}
@Override
protected List<UpdateResult> retrieveUpdateResults(IProgressMonitor monitor, Object node) {
if (node != null && node instanceof IRepositoryNode) {
IRepositoryNode repNode = (IRepositoryNode) node;
IRepositoryViewObject object = repNode.getObject();
return retrieveUpdateResults(monitor, object);
protected List<UpdateResult> retrieveUpdateResults(IProgressMonitor monitor, IStructuredSelection selection) {
if (selection != null) {
Object node = selection.getFirstElement();
if (node != null && node instanceof IRepositoryNode) {
IRepositoryNode repNode = (IRepositoryNode) node;
IRepositoryViewObject object = repNode.getObject();
return retrieveUpdateResults(monitor, object);
}
}
return null;
}

View File

@@ -25,10 +25,8 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.core.model.update.IUpdateItemType;
import org.talend.core.model.update.RepositoryUpdateManager;
import org.talend.core.model.update.UpdateResult;
import org.talend.core.model.update.UpdatesConstants;
import org.talend.core.prefs.ITalendCorePrefConstants;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.designer.core.IDesignerCoreService;
import org.talend.repository.model.IProxyRepositoryFactory;
@@ -69,12 +67,11 @@ public abstract class AbstractRepositoryUpdateManagerProvider implements IReposi
* (non-Javadoc)
*
* @see
* org.talend.core.model.update.extension.IRepositoryUpdateManagerProvider#updateForRepository(java.lang.Object,
* boolean)
* org.talend.core.model.update.extension.IRepositoryUpdateManagerProvider#updateForRepository(IStructuredSelection)
*/
@Override
public boolean updateForRepository(Object node, boolean needConfirm) {
if (!needPropagate(needConfirm)) {
public boolean updateForRepository(IStructuredSelection selection) {
if (!needPropagate(selection)) {
return false;
}
/*
@@ -83,7 +80,7 @@ public abstract class AbstractRepositoryUpdateManagerProvider implements IReposi
*/
// retrieve Results
List<UpdateResult> updateResults = retrieveUpdateResults(node);
List<UpdateResult> updateResults = retrieveUpdateResults(selection);
// valid results
List<UpdateResult> validResults = validResults(updateResults);
@@ -92,8 +89,6 @@ public abstract class AbstractRepositoryUpdateManagerProvider implements IReposi
if (doUpdate(validResults)) {
return true;
}
// nothing to update
RepositoryUpdateManager.openNoModificationDialog();
return false;
}
@@ -101,31 +96,20 @@ public abstract class AbstractRepositoryUpdateManagerProvider implements IReposi
*
* DOC ggu Comment method "needPropagate".
*
* @param continued
* @return
*/
protected boolean needPropagate(boolean needConfirm) {
if (needForcePropagation()) {
@Override
public boolean needPropagate(IStructuredSelection selection) {
if (needForcePropagation(selection)) {
return true;
}
if (needConfirm) {
IDesignerCoreService designerCoreService = CoreRuntimePlugin.getInstance().getDesignerCoreService();
boolean deactive = designerCoreService != null ? Boolean.parseBoolean(designerCoreService
.getPreferenceStore(ITalendCorePrefConstants.DEACTIVE_REPOSITORY_UPDATE)) : true;
if (deactive) {// disable to do update
return false;
}
boolean propagated = RepositoryUpdateManager.openPropagationDialog();
if (propagated) { // update
return true;
}
}
// by default, will propagate always.
return true;
}
protected boolean needForcePropagation() {
@Override
public boolean needForcePropagation(IStructuredSelection selection) {
return false; // diable to force propagating by default
}
@@ -136,15 +120,15 @@ public abstract class AbstractRepositoryUpdateManagerProvider implements IReposi
* @param node
* @return
*/
protected List<UpdateResult> retrieveUpdateResults(final Object node) {
protected List<UpdateResult> retrieveUpdateResults(final IStructuredSelection selection) {
final List<UpdateResult> results = new ArrayList<UpdateResult>();
boolean cancelable = !needForcePropagation();
boolean cancelable = !needForcePropagation(selection);
IRunnableWithProgress runnable = new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
List<UpdateResult> returnResult = retrieveUpdateResults(monitor, node);
List<UpdateResult> returnResult = retrieveUpdateResults(monitor, selection);
if (returnResult != null) {
results.addAll(returnResult);
}
@@ -175,10 +159,10 @@ public abstract class AbstractRepositoryUpdateManagerProvider implements IReposi
*
* retrieve the result for current node.
*
* @param node
* @param selection
* @return
*/
protected abstract List<UpdateResult> retrieveUpdateResults(IProgressMonitor monitor, Object node);
protected abstract List<UpdateResult> retrieveUpdateResults(IProgressMonitor monitor, IStructuredSelection selection);
/**
*

View File

@@ -32,15 +32,33 @@ public interface IRepositoryUpdateManagerProvider extends IUpdateManagerProvider
*/
boolean validateAction(TreeViewer viewer, IStructuredSelection selection);
/**
*
* DOC ggu Comment method "needPropagate".
*
* @param selection
* @return
*/
boolean needPropagate(IStructuredSelection selection);
/**
*
* DOC ggu Comment method "needForcePropagation".
*
* @param selection
* @return if true, will force propagate to update manager.
*/
boolean needForcePropagation(IStructuredSelection selection);
/**
*
* DOC ggu Comment method "updateForRepository".
*
* Work for DetecteViewImpactAction.
*
* @param node
* @param needConfirm true, will display the confirm dialog to continue to propagate or not.
* @param selection
* @return true, update successfully
*/
boolean updateForRepository(Object node, boolean needConfirm);
boolean updateForRepository(IStructuredSelection selection);
}

View File

@@ -20,9 +20,25 @@ import java.util.Set;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.talend.core.model.metadata.builder.connection.AbstractMetadataObject;
import org.talend.core.model.metadata.builder.connection.Connection;
import org.talend.core.model.metadata.builder.connection.DatabaseConnection;
import org.talend.core.model.metadata.builder.connection.MetadataTable;
import org.talend.core.model.metadata.builder.connection.Query;
import org.talend.core.model.metadata.builder.connection.SAPFunctionUnit;
import org.talend.core.model.process.IProcess;
import org.talend.core.model.properties.ConnectionItem;
import org.talend.core.model.properties.ContextItem;
import org.talend.core.model.properties.Item;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.core.model.update.IUpdateItemType;
import org.talend.core.model.update.RepositoryUpdateManager;
import org.talend.core.model.update.UpdateResult;
import org.talend.core.prefs.ITalendCorePrefConstants;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.designer.core.IDesignerCoreService;
import org.talend.repository.model.RepositoryNode;
/**
* DOC ggu class global comment. Detailled comment
@@ -156,7 +172,9 @@ public enum UpdateManagerProviderDetector {
if (result != null) {
IProcessUpdateManagerProvider[] processProviders = reader.getProcessProviders();
for (IProcessUpdateManagerProvider provider : processProviders) {
updated = updated || provider.doUpdate(monitor, result);
if (provider.doUpdate(monitor, result)) {
updated = true;
}
}
}
return updated;
@@ -225,13 +243,92 @@ public enum UpdateManagerProviderDetector {
* @param node
* @return
*/
public boolean updateForRepository(Object node, boolean needConfirm) {
boolean updated = false;
public boolean updateForRepository(IStructuredSelection selection, boolean needConfirm) {
boolean forcePropagation = false;
IRepositoryUpdateManagerProvider[] repositoryProviders = reader.getRepositoryProviders();
for (IRepositoryUpdateManagerProvider provider : repositoryProviders) {
if (provider.needForcePropagation(selection)) {
forcePropagation = true;
}
}
if (!forcePropagation && needConfirm) {
IDesignerCoreService designerCoreService = CoreRuntimePlugin.getInstance().getDesignerCoreService();
boolean deactive = designerCoreService != null ? Boolean.parseBoolean(designerCoreService
.getPreferenceStore(ITalendCorePrefConstants.DEACTIVE_REPOSITORY_UPDATE)) : true;
if (deactive) {// disable to do update
return false;
}
boolean propagated = RepositoryUpdateManager.openPropagationDialog();
if (!propagated) {
return false;
}
}
boolean updated = false;
for (IRepositoryUpdateManagerProvider provider : repositoryProviders) {
// if one upate successfully, will return true.
updated = updated || provider.updateForRepository(node, needConfirm);
if (provider.updateForRepository(selection)) {
updated = true;
}
}
// Old Updates
if (doOldUpdates(selection)) {
updated = true;
}
if (!updated) {
// nothing to update
RepositoryUpdateManager.openNoModificationDialog();
}
return updated;
}
private boolean doOldUpdates(IStructuredSelection selection) {
Object firstElement = selection.getFirstElement();
if (firstElement == null || !(firstElement instanceof RepositoryNode)) {
return false;
}
RepositoryNode node = (RepositoryNode) firstElement;
if (node.getObject() instanceof ISubRepositoryObject) {
ISubRepositoryObject subObject = (ISubRepositoryObject) node.getObject();
if (subObject != null) {
// schema
AbstractMetadataObject metadataObject = subObject.getAbstractMetadataObject();
if (metadataObject instanceof MetadataTable) {
return RepositoryUpdateManager.updateSchema((MetadataTable) metadataObject, node, false, false);
} else
// query
if (metadataObject instanceof Query) {
return RepositoryUpdateManager.updateQuery((Query) metadataObject, node, false, false);
} else
// sap function
if (metadataObject instanceof SAPFunctionUnit) {
return RepositoryUpdateManager.updateSAPFunction((SAPFunctionUnit) metadataObject, false, false);
}
}
} else {
IRepositoryViewObject object = node.getObject();
if (object != null) {
Item item = object.getProperty().getItem();
if (item != null) {
// context
if (item instanceof ContextItem) {
return RepositoryUpdateManager.updateContext((ContextItem) item, false, false);
} else
// connection
if (item instanceof ConnectionItem) {
Connection connection = ((ConnectionItem) item).getConnection();
if (connection instanceof DatabaseConnection) {
return RepositoryUpdateManager.updateDBConnection((ConnectionItem) item, false, false);
} else {
return RepositoryUpdateManager.updateFileConnection((ConnectionItem) item, false, false);
}
}
}
}
}
return false;
}
}

View File

@@ -24,6 +24,7 @@ import java.util.Set;
import org.talend.core.model.components.IComponent;
import org.talend.core.model.metadata.IMetadataTable;
import org.talend.core.model.process.AbstractNode;
import org.talend.core.model.process.EConnectionType;
import org.talend.core.model.process.EParameterFieldType;
import org.talend.core.model.process.ElementParameterParser;
@@ -688,14 +689,34 @@ public class NodeUtil {
*/
public static INode getNodeByUniqueName(final IProcess process, String uniqueName) {
return getNodeByUniqueName(process,uniqueName,false);
}
/**
* DOC jzhao
* <p>
* function:get the node(maybe include virtual node) from generating nodes by unique name. aim:to get the property value from any node.
* </p>
* Notice: It is used to get property values from the pointed node we can also get the virtual node.
*
* @param process: a job process
* @param uniqueName:the unique name of the pointed node.
* @param isReturnVirtualNode: specify whether return the virtual node.
*
* @return
*/
public static INode getNodeByUniqueName(final IProcess process, String uniqueName ,boolean isReturnVirtualNode) {
List<INode> nodes = (List<INode>) process.getGeneratingNodes();
INode return_node = null;
for (INode current_node : nodes) {
if(isReturnVirtualNode && current_node.isVirtualGenerateNode()){
current_node = getVirtualNode(current_node);
}
if (uniqueName.equals(current_node.getUniqueName())) {
return_node = current_node;
return current_node;
}
}
return return_node;
return null;
}
/**
@@ -718,7 +739,7 @@ public class NodeUtil {
for (INode tnode : listDepartitioner) {
if (tnode.getUniqueName().equals(departitionerName)) { // find the tDepartitioner corresponding to
// tRecollector
INode startNode = tnode.getDesignSubjobStartNode(); // find the tCollector
INode startNode = getSubProcessStartNode(tnode); // find the tCollector
List<? extends IConnection> inConns = startNode.getIncomingConnections(EConnectionType.STARTS);
if (inConns != null && inConns.size() > 0) {
if (inConns.get(0).getSource() == node) {
@@ -875,7 +896,7 @@ public class NodeUtil {
}
// System.out.println("leftQuote="+leftQuotes + ", rightQuote="+rightQuotes);
if (leftQuotes < rightQuotes) {
result += original.substring(leftQuotes, rightQuotes + 1).replace("\r", "\\r").replace("\n", "\\n");
result += original.substring(leftQuotes, rightQuotes + 1).replace("\r", "").replace("\n", "\\n");
}
leftQuotes = original.indexOf("\"", rightQuotes + 1);
@@ -890,4 +911,66 @@ public class NodeUtil {
result += original.substring(leftPrev);
return result;
}
public static boolean containsMultiThreadComponent(IProcess process) {
List<? extends INode> multiThreadComponentList = process.getNodesOfType("tWriteXMLFieldOut");
if(multiThreadComponentList != null && multiThreadComponentList.size() > 0){
return true;
}
return false;
}
public static boolean subBranchContainsParallelIterate(INode node) {
for (IConnection connection : node.getIncomingConnections()) {
if(connection==null || !connection.isActivate()) {
continue;
}
if(!(connection.getLineStyle().hasConnectionCategory(IConnectionCategory.MAIN | IConnectionCategory.USE_ITERATE))) {
continue;
}
if(connection.getLineStyle().hasConnectionCategory(IConnectionCategory.USE_ITERATE)) {
if (Boolean.TRUE.toString().equals(ElementParameterParser.getValue(connection, "__ENABLE_PARALLEL__"))) {
return true;
}
}
return subBranchContainsParallelIterate(connection.getSource());
}
return false;
}
/**
*
* add it for TDI-28503
*
* @param departitioner node in collector subprocess
* @return collector node as the start node
*/
public static INode getSubProcessStartNode(INode currentNode) {
int nb = 0;
for (IConnection connection : currentNode.getIncomingConnections()) {
if (connection.isActivate()) {
nb++;
}
}
if (nb == 0) {
return currentNode;
}
IConnection connec;
for (int j = 0; j < currentNode.getIncomingConnections().size(); j++) {
connec = currentNode.getIncomingConnections().get(j);
if (((AbstractNode) connec.getSource()).isOnMainMergeBranch()) {
if (connec.getLineStyle() == EConnectionType.STARTS) {
return currentNode;
} else if (connec.getLineStyle() != EConnectionType.FLOW_REF) {
return getSubProcessStartNode(connec.getSource());
}
}
}
return null;
}
}

View File

@@ -12,19 +12,25 @@
// ============================================================================
package org.talend.core.model.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
import org.apache.oro.text.regex.Perl5Substitution;
import org.apache.oro.text.regex.Substitution;
import org.apache.oro.text.regex.Util;
import org.eclipse.emf.common.util.EList;
import org.eclipse.swt.graphics.Point;
import org.talend.core.model.context.UpdateContextVariablesHelper;
import org.talend.core.model.process.EParameterFieldType;
import org.talend.core.model.process.IElementParameter;
@@ -45,15 +51,16 @@ public final class ParameterValueUtil {
if (param == null || oldName == null || newName == null) {
return;
}
boolean flag = true;
if (param.getFieldType() == EParameterFieldType.MEMO_SQL) {
flag = false;
}
// boolean flag = true;
// if (param.getFieldType() == EParameterFieldType.MEMO_SQL) {
// flag = false;
// }
if (param.getValue() instanceof String) { // for TEXT / MEMO etc..
String value = (String) param.getValue();
if (value.contains(oldName)) {
// param.setValue(value.replaceAll(oldName, newName));
String newValue = renameValues(value, oldName, newName, flag);
// String newValue = renameValues(value, oldName, newName, flag);
String newValue = splitQueryData(oldName, newName, value);
if (!value.equals(newValue)) {
param.setValue(newValue);
}
@@ -70,7 +77,8 @@ public final class ParameterValueUtil {
if (value.contains(oldName)) {
// line.put(key, value.replaceAll(oldName,
// newName));
String newValue = renameValues(value, oldName, newName, flag);
// String newValue = renameValues(value, oldName, newName, flag);
String newValue = splitQueryData(oldName, newName, value);
if (!value.equals(newValue)) {
line.put(key, newValue);
}
@@ -101,6 +109,7 @@ public final class ParameterValueUtil {
// replace
String returnValue = "";
if (value.contains(TalendQuoteUtils.getQuoteChar()) && !flag) {
// returnValue = splitQueryData(matcher, pattern, substitution, value, Util.SUBSTITUTE_ALL);
returnValue = splitQueryData(oldName, newName, value);
} else {
returnValue = Util.substitute(matcher, pattern, substitution, value, Util.SUBSTITUTE_ALL);
@@ -112,21 +121,386 @@ public final class ParameterValueUtil {
}
// function before TDI-29092 modify,this function seems only rename variables in context,I put this funciton back
// incase any problem with the new function and we can refer the old one to check the problem.
public static String splitQueryData(PatternMatcher matcher, Pattern pattern, Substitution sub, String value, int numSubs) {
String[] split = value.split("\"");
int i = 0;
String replace = "";
for (String s : split) {
if (i % 2 == 0) {
replace = s;
if (i != 0) {
if (matcher.contains(value, pattern)) {
replace = split[i].toString();
split[i] = Util.substitute(matcher, pattern, sub, replace, numSubs);
}
}
}
i++;
}
String returnValue = "";
for (int t = 1; t < split.length; t++) {
if (t % 2 == 0) {
returnValue += split[t];
} else {
returnValue += "\"" + split[t] + "\"";
}
}
return returnValue;
}
// for bug 12594 split "; for bug 29092(it has JUnits)
public static String splitQueryData(String oldName, String newName, String value) {
// example:"drop table "+context.oracle_schema+".\"TDI_26803\""
// >>>>>>>>__(const)__ ______(varible)_______ ___(const)___
String regex = "\"\"|\".*?([^\\\\]\")";
// >>>>>>>>_*_(const)__ _____*_(varible)_______ __*_(const)___
/**
* <b>NOTE</b>: This [inputString] variable only used to debug, should not use it in product
*/
inputString = value;
final int length = value.length();
// quotaStrings which stores the start and end point for all const strings in the value
LinkedHashMap<Integer, Integer> quotaStrings = new LinkedHashMap<Integer, Integer>();
// List<Point> functionNameAreas = new ArrayList<Point>();
List<FunctionInfo> functions = new ArrayList<FunctionInfo>();
// get and store all start and end point of const strings
int start = -1;
int end = -2;
char ch;
for (int i = 0; i < length; i++) {
ch = value.charAt(i);
if (ch == '\"') {
// in case of cases :
// case 1 : [ "select * from " + context.table + " where value = \"context.table\"" ]
// case 2 : [ "select * from " + context.table + " where value = \"\\" + context.table +
// "\\context.table\"" ]
if (isEscapeSequence(value, i)) {
continue;
}
// [0 <= start] >> in case the first const String position compute error
if (0 <= start && end < start) {
end = i;
quotaStrings.put(start, end);
} else {
start = i;
}
}
}
{
// in case the value has not complete quota
// exapmle > "select a,context.b from " + context.b + "where value = context.b
// **but** maybe more impossible truth is that
// they write this(context.b) just want to use it as a varible...
// so maybe should not set the string behind the quota as a const by default..
// ---*--- the following code is set the string behind the quota as a const
// if (0 <= start && end < start) {
// end = length - 1;
// quotaStrings.put(start, end);
// }
}
// find the varible string, do replace, then concat them
StringBuffer strBuffer = new StringBuffer();
String subString = null;
int vStart = 0;
int vEnd = 0;
int methodMaxIndex = -1;
vStart = 0;
vEnd = 0;
start = 0;
end = 0;
for (Entry<Integer, Integer> entry : quotaStrings.entrySet()) {
start = entry.getKey();
end = entry.getValue() + 1;
vEnd = start;
if (vStart != start) {
subString = value.substring(vStart, vEnd);
calcMethodArea(subString, value, vStart, functions);
}
vStart = end;
}
vStart = 0;
vEnd = 0;
start = 0;
end = 0;
for (Entry<Integer, Integer> entry : quotaStrings.entrySet()) {
start = entry.getKey();
end = entry.getValue() + 1;
vEnd = start;
if (vStart == start) {
// const string follow with const string, maybe won't happen...
// get the const string
subString = value.substring(start, end);
if (start < methodMaxIndex) {
subString = subString.replaceAll(oldName, newName);
}
} else {
// get the varible string, do replace, then append it
subString = value.substring(vStart, vEnd);
// calcMaxIndex = calcMethodArea(subString, value, vStart, functions, methodMaxIndex);
if (methodMaxIndex < start) {
methodMaxIndex = FunctionInfo.getMaxIndexForCurrentParentFunction(start, functions);
}
String replacedString = doVaribleReplace(oldName, newName, value, functions, vStart, vEnd);
strBuffer.append(replacedString);
// get the const string
// deal with: context.getProperty("test") + "test"
subString = value.substring(start, end);
if (start < methodMaxIndex) {
FunctionInfo function = FunctionInfo.getParentFunctionFromList(start, end, functions);
Point funcNameArea = function.getNameArea();
String functionName = value.substring(funcNameArea.x, funcNameArea.y);
if (functionName.matches("^globalMap\\..+")) { //$NON-NLS-1$
subString = subString.replaceAll(oldName, newName);
} else {
if (subString.equals("\"" + oldName + "\"")) { //$NON-NLS-1$ //$NON-NLS-2$
subString = "\"" + newName + "\""; //$NON-NLS-1$ //$NON-NLS-2$
}
}
}
}
// append the const string
strBuffer.append(subString);
// update the varible string start point
vStart = end;
}
// in case the last string of the value is a varible string
// then get it, and do replace, finally append it.
if (vStart < length) {
vEnd = length;
String replacedString = doVaribleReplace(oldName, newName, value, functions, vStart, vEnd);
strBuffer.append(replacedString);
}
return strBuffer.toString();
}
/**
* <b>NOTE</b>: This variable only used to debug, should not use it in product
*/
private static String inputString = ""; //$NON-NLS-1$
private static class FunctionInfo {
private Point nameArea;
private Point paramArea;
private List<FunctionInfo> subFunctions = new ArrayList<FunctionInfo>();
public FunctionInfo(Point _nameArea) {
nameArea = _nameArea;
}
public Point getNameArea() {
return this.nameArea;
}
public void setParamArea(Point paramArea) {
this.paramArea = paramArea;
}
public Point getParamArea() {
return this.paramArea;
}
public int getFuncAreaMinIndex() {
return nameArea.x;
}
public int getFuncAreaMaxIndex() {
return paramArea.y;
}
public FunctionInfo getParentFunction(int x, int y) {
FunctionInfo parentFunction = null;
for (FunctionInfo funcInfo : subFunctions) {
int paramX = funcInfo.paramArea.x;
int paramY = funcInfo.paramArea.y;
if (paramX <= x && y <= paramY) {
if (!funcInfo.subFunctions.isEmpty()) {
FunctionInfo retFuncInfo = funcInfo.getParentFunction(x, y);
if (retFuncInfo != null) {
return retFuncInfo;
}
}
return funcInfo;
}
}
int paramX = this.paramArea.x;
int paramY = this.paramArea.y;
if (paramX <= x && y <= paramY) {
parentFunction = this;
}
return parentFunction;
}
public void addSubFunction(FunctionInfo subFunc) {
this.subFunctions.add(subFunc);
}
public List<FunctionInfo> getSubFunctions() {
return this.subFunctions;
}
public static void addFunctionToList(FunctionInfo funcInfo, List<FunctionInfo> functionList) {
if (functionList != null) {
for (FunctionInfo iFuncInfo : functionList) {
FunctionInfo parentFuncInfo = iFuncInfo.getParentFunction(funcInfo.getFuncAreaMinIndex(),
funcInfo.getFuncAreaMaxIndex());
if (parentFuncInfo != null) {
parentFuncInfo.addSubFunction(funcInfo);
return;
}
}
// if can not found, add it to the functionList dirrectly
functionList.add(funcInfo);
}
}
public static FunctionInfo getParentFunctionFromList(int x, int y, List<FunctionInfo> functionList) {
if (functionList != null) {
for (FunctionInfo funcInfo : functionList) {
FunctionInfo parentFunction = funcInfo.getParentFunction(x, y);
if (parentFunction != null) {
return parentFunction;
}
}
}
return null;
}
public static int getMaxIndexForCurrentParentFunction(int index, List<FunctionInfo> functionList) {
int maxIndex = -1;
if (functionList != null) {
for (FunctionInfo funcInfo : functionList) {
Point paramArea = funcInfo.getParamArea();
if (paramArea.x <= index && index <= paramArea.y) {
return paramArea.y;
}
}
}
return maxIndex;
}
public static List<FunctionInfo> getFunctionsInSpecifiedAreaFromList(int x, int y, List<FunctionInfo> functionList) {
List<FunctionInfo> findedList = new ArrayList<FunctionInfo>();
for (FunctionInfo funcInfo : functionList) {
Point nameArea = funcInfo.getNameArea();
if (y < nameArea.y) {
break;
}
if (x <= nameArea.x && nameArea.y <= y) {
findedList.add(funcInfo);
List<FunctionInfo> subFuncs = funcInfo.getSubFunctions();
if (subFuncs != null && !subFuncs.isEmpty()) {
List<FunctionInfo> findedListInSubFuncs = getFunctionsInSpecifiedAreaFromList(x, y, subFuncs);
if (findedListInSubFuncs != null && !findedListInSubFuncs.isEmpty()) {
findedList.addAll(findedListInSubFuncs);
}
}
}
}
return findedList;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
if (getFuncAreaMaxIndex() < getFuncAreaMinIndex()) {
return "not available"; //$NON-NLS-1$
}
return inputString.substring(getFuncAreaMinIndex(), getFuncAreaMaxIndex() + 1);
}
}
/**
* DOC cmeng Comment method "doVaribleReplace".
*
* @param oldName
* @param newName
* @param value
* @param functionNameAreas
* @param vStart
* @param vEnd
*/
private static String doVaribleReplace(String oldName, String newName, String value, List<FunctionInfo> functions,
int vStart, int vEnd) {
if (value.trim().isEmpty()) {
return value;
}
StringBuffer replacedString = new StringBuffer();
int replaceableStart = vStart;
int replaceableEnd = vEnd;
List<FunctionInfo> replaceableFunctions = FunctionInfo.getFunctionsInSpecifiedAreaFromList(vStart, vEnd, functions);
for (FunctionInfo funcInfo : replaceableFunctions) {
Point functionNameArea = funcInfo.getNameArea();
if (vEnd <= functionNameArea.x) {
break;
}
if (functionNameArea.y <= vStart) {
continue;
}
if (replaceableStart < functionNameArea.x) {
replaceableEnd = functionNameArea.x;
String replaceableString = value.substring(replaceableStart, replaceableEnd);
replacedString.append(doReplace(oldName, newName, replaceableString));
replacedString.append(doReplace(oldName, newName, value.substring(functionNameArea.x, functionNameArea.y)));
} else {
replacedString.append(doReplace(oldName, newName, value.substring(functionNameArea.x, functionNameArea.y)));
}
replaceableStart = functionNameArea.y;
}
if (replaceableStart < vEnd) {
String replaceableString = value.substring(replaceableStart, vEnd);
replacedString.append(doReplace(oldName, newName, replaceableString));
}
return replacedString.toString();
}
private static String doReplace(String oldName, String newName, String value) {
if (value.trim().isEmpty()) {
return value;
}
String vOldName = oldName.replaceAll("\\.", "\\\\."); //$NON-NLS-1$ //$NON-NLS-2$
// ((\b\w+\s*\.\s*)+schema(\s*\.\s*\w+)*)|((\b\w+\s*\.\s*)*schema(\s*\.\s*\w+)+)
String regex = "((\\b\\w+\\s*\\.\\s*)+" + vOldName + "\\b)|(\\b" + vOldName + "\\s*\\()"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// obtain all varibles
String[] split = value.split(regex);
Map<String, String> replacedStrings = new HashMap<String, String>();
String returnValue = "";
StringBuffer returnValue = new StringBuffer();
// replace the variables & store both value of old and new
for (String s : split) {
if (s.contains(oldName)) {
replacedStrings.put(s, s.replaceAll("\\b" + oldName + "\\b", newName));
replacedStrings.put(s, s.replaceAll("\\b" + oldName + "\\b", newName)); //$NON-NLS-1$ //$NON-NLS-2$
} else {
replacedStrings.put(s, s);
}
}
if (split.length == 1) {
returnValue.append(replacedStrings.get(split[0]));
}
// obtain consts & concat the consts with the variables
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(regex);
Matcher matcher = pattern.matcher(value);
@@ -137,6 +511,10 @@ public final class ParameterValueUtil {
int valueLength = value.length();
String oldFill = null;
String newFill = null;
String subRegEx = "^" + vOldName + "(\\s*\\.\\s*\\w+)+"; //$NON-NLS-1$ //$NON-NLS-2$
java.util.regex.Pattern subPattern = java.util.regex.Pattern.compile(subRegEx);
while (true) {
if (curPos == valueLength) {
break;
@@ -144,14 +522,20 @@ public final class ParameterValueUtil {
if (curPos < x) {
oldFill = value.substring(curPos, x);
if ((newFill = replacedStrings.get(oldFill)) != null) {
returnValue += newFill;
returnValue.append(newFill);
} else {
returnValue += oldFill;
returnValue.append(oldFill);
}
curPos = x;
continue;
}
returnValue += matcher.group();
String matchedString = matcher.group();
Matcher subMatcher = subPattern.matcher(matchedString);
if (subMatcher.find()) {
returnValue.append(matchedString.replaceFirst(vOldName, newName));
} else {
returnValue.append(matchedString);
}
curPos = y;
if (!matcher.find()) {
x = valueLength;
@@ -161,7 +545,76 @@ public final class ParameterValueUtil {
}
}
}
return returnValue;
return returnValue.toString();
}
/**
* DOC cmeng Comment method "isEscapeSequence".
*
* @param value
* @param i
* @return
*/
private static boolean isEscapeSequence(String value, int i) {
boolean isEscapeSequence = false;
for (int index = i; 0 < index; index--) {
if (value.charAt(index - 1) == '\\') {
isEscapeSequence = !isEscapeSequence;
} else {
break;
}
}
return isEscapeSequence;
}
private static int calcMethodArea(String varibleString, String wholeString, int beginIndex, List<FunctionInfo> functions) {
// globalMap.get(...)
// String regex = "\\b\\S*\\s*\\.\\s*\\S*\\s*\\(\\z"; //$NON-NLS-1$
// maybe get(...) also is target
String regex = "\\b[\\w\\.]*?\\s*\\("; //$NON-NLS-1$
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(regex);
Matcher matcher = pattern.matcher(varibleString);
int i = 0;
int currentMaxIndex = i;
while (matcher.find()) {
boolean isInQuota = false;
int parenthesisNum = 0;
int matchedStart = matcher.start();
int matchedEnd = matcher.end();
Point functionNameArea = new Point(beginIndex + matchedStart, beginIndex + matchedEnd);
FunctionInfo funcInfo = new FunctionInfo(functionNameArea);
Point functionParamArea = new Point(-1, -1);
funcInfo.setParamArea(functionParamArea);
i = beginIndex + matchedEnd;
functionParamArea.x = i;
for (; i < wholeString.length(); i++) {
char ch = wholeString.charAt(i);
if (ch == '\"' && !isEscapeSequence(wholeString, i)) {
isInQuota = !isInQuota;
}
if (isInQuota) {
continue;
}
if (ch == '(') {
parenthesisNum++;
} else if (ch == ')') {
parenthesisNum--;
}
if (parenthesisNum < 0) {
break;
}
}
functionParamArea.y = i;
FunctionInfo.addFunctionToList(funcInfo, functions);
if (currentMaxIndex < i) {
currentMaxIndex = i;
}
}
return currentMaxIndex;
}
public static boolean isUseData(final IElementParameter param, final String name) {

View File

@@ -385,6 +385,8 @@ repository.concept=Concept
repository.metadataSAPConnections=SAP Connections
repository.metadataSAPConnections.alias=SAP
repository.SAPFunction=SAP Function
repository.SAPIDoc=SAP IDoc
repository.SAPTable=SAP Table
repository.metadataSQLPatterns=SQL Templates
repository.metadataSQLPatterns.alias=SQLTemplates
repository.metadataFileDelimited=File delimited
@@ -449,6 +451,7 @@ repository.systemIndicators.textStatistics=Text Statistics
repository.tdqExchange=Exchange
repository.systemIndicators.phoneNumberStatistics=Phone Number Statistics
repository.systemIndicators.fraudDetection=Fraud Detection
repository.metadataSalesforceModule=SalesforceModule
EUpdateItemType.Property=Property
EUpdateItemType.MapReduce=Map Reduce
EUpdateItemType.Schema=Schema
@@ -592,4 +595,9 @@ Parameter.Comment=comment \:
Parameter.Name=Parameter name
Parameter.Type=type \:
Parameter.Value=value \:
GenerateSelectSQLAction.NewQuery=new Query {0}
GenerateSelectSQLAction.NewQuery=new Query {0}
ProgressMonitorDialogWithCancel.executeMessage.default=Executing...
ProgressMonitorDialogWithCancel.waitingFinishMessage.default=Can not interrupt the Check Connection action normally,\n
ProgressMonitorDialogWithCancel.executeTimeout=Execute time out, Studio has tried to interrupt this checking action at background.
ProgressMonitorDialogWithCancel.CheckingConnectionJob.waitingFinish=waiting {0} finish...
ProgressMonitorDialogWithCancel.CheckingConnectionJob.emptyWaitingfinish=waiting to finish...

View File

@@ -0,0 +1,33 @@
// ============================================================================
//
// Copyright (C) 2006-2014 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.service;
import org.talend.core.IService;
import org.talend.core.model.metadata.IMetadataTable;
import org.talend.core.model.process.IConnection;
/**
* created by talend on Dec 17, 2014 Detailled comment
*
*/
public interface IDQComponentService extends IService {
/**
*
* Handle component chaged
*
* @param oldConnection
* @param newMetadataTable
*/
void externalComponentChange(IConnection oldConnection, IMetadataTable newMetadataTable);
}

View File

@@ -0,0 +1,25 @@
// ============================================================================
//
// Copyright (C) 2006-2014 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.service;
import org.talend.core.IProviderService;
import org.talend.core.model.process.INode;
/**
* created by ldong on Jan 13, 2015 Detailled comment
*
*/
public interface IDbProviderService extends IProviderService {
public boolean isRedShiftNode(INode node);
}

View File

@@ -59,7 +59,7 @@ public class RepositoryImageProvider {
return ECoreImage.METADATA_SAPCONNECTION_ICON;
} else if (type == ERepositoryObjectType.SQLPATTERNS) {
return ECoreImage.METADATA_SQLPATTERN_ICON;
} else if (type == ERepositoryObjectType.METADATA_CON_TABLE) {
} else if (type == ERepositoryObjectType.METADATA_CON_TABLE || type == ERepositoryObjectType.METADATA_SAP_IDOC) {
return ECoreImage.METADATA_TABLE_ICON;
} else if (type == ERepositoryObjectType.METADATA_CON_COLUMN) {
return ECoreImage.METADATA_COLUMN_ICON;

View File

@@ -190,9 +190,12 @@ public class ExpressionPersistance {
}
}
}
this.contents.clear();
this.contents.add(emfExpression);
resource.getContents().clear();
resource.getContents().addAll(this.contents);
} else {
resource.getContents().clear();
resource.getContents().add(emfExpression);
}

View File

@@ -14,10 +14,10 @@ package org.talend.repository.documentation;
import java.io.File;
import java.net.URL;
import java.net.URLDecoder;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -75,12 +75,8 @@ public class ExportFileResource {
* @param resources
*/
public void addResources(String relativePath, List<URL> resources) {
Set<URL> storeList = map.get(relativePath);
if (storeList == null) {
storeList = new HashSet<URL>(resources);
map.put(relativePath, storeList);
} else {
storeList.addAll(resources);
for (URL resource : resources) {
addResource(relativePath, resource);
}
}
@@ -96,7 +92,19 @@ public class ExportFileResource {
storeList = new HashSet<URL>();
map.put(relativePath, storeList);
}
storeList.add(resource);
storeList.add(getFormalResourceURL(resource));
}
private URL getFormalResourceURL(URL originalURL) {
URL url = originalURL;
try {
String decodeStr = URLDecoder.decode(url.toString(), "UTF-8"); //$NON-NLS-1$
url = new URL(decodeStr);
} catch (Exception e) {
e.printStackTrace(); // only for debug.
}
return url;
}
public void removeResources(String relativePath, URL resource) {
@@ -144,8 +152,8 @@ public class ExportFileResource {
if (file.isDirectory()) {
File[] children = file.listFiles();
for (int i = 0; i < children.length; i++) {
count += countChildrenOf(children[i].getPath());
for (File child : children) {
count += countChildrenOf(child.getPath());
}
}
return count;
@@ -175,11 +183,11 @@ public class ExportFileResource {
public int getFilesCount() throws CoreException {
Set<String> paths = getRelativePathList();
int result = 0;
for (Iterator iter = paths.iterator(); iter.hasNext();) {
String path = (String) iter.next();
Set<URL> resource = getResourcesByRelativePath(path);
for (Iterator iterator = resource.iterator(); iterator.hasNext();) {
URL url = (URL) iterator.next();
for (Object relPath : paths) {
String path = (String) relPath;
Set<URL> resources = getResourcesByRelativePath(path);
for (Object resource : resources) {
URL url = (URL) resource;
result += countChildrenOf(url.getPath());
}
}

View File

@@ -26,6 +26,8 @@ public class RepositoryConstants {
public static final String TEMP_DIRECTORY = "temp"; //$NON-NLS-1$
public static final String SETTING_DIRECTORY = ".settings"; //$NON-NLS-1$
public static final String IMG_DIRECTORY = "images"; //$NON-NLS-1$
public static final String IMG_DIRECTORY_OF_JOB_OUTLINE = "images/job_outlines"; //$NON-NLS-1$

View File

@@ -27,7 +27,9 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.ui.gmf.util.DisplayUtils;
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.PluginChecker;
import org.talend.core.hadoop.IHadoopClusterService;
import org.talend.core.model.general.Project;
import org.talend.core.model.properties.ConnectionItem;
import org.talend.core.model.properties.FolderItem;
@@ -58,6 +60,14 @@ public class RepositoryNodeUtilities {
private final static String[] METADATA_LABELS = new String[] {};
private static IHadoopClusterService hadoopClusterService = null;
static {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IHadoopClusterService.class)) {
hadoopClusterService = (IHadoopClusterService) GlobalServiceRegister.getDefault().getService(
IHadoopClusterService.class);
}
}
public static IPath getPath(RepositoryNode node) {
if (node == null) {
return null;
@@ -320,6 +330,12 @@ public class RepositoryNodeUtilities {
RepositoryNode node = (RepositoryNode) childNode;
if (isRepositoryFolder(node) || node.getType() == ENodeType.REFERENCED_PROJECT) {
folderChild.add(node);
} else if (isHadoopClusterNode(node)) {
if (node.getId().equals(curNode.getId()) && node.getObjectType() == curNode.getRepositoryObjectType()) {
return node;
} else {
folderChild.add(node);
}
} else if (node.getId().equals(curNode.getId()) && node.getObjectType() == curNode.getRepositoryObjectType()) {
return node;
}
@@ -336,6 +352,10 @@ public class RepositoryNodeUtilities {
return null;
}
private static boolean isHadoopClusterNode(IRepositoryNode node) {
return hadoopClusterService != null && hadoopClusterService.isHadoopClusterNode(node);
}
public static void expandNode(IRepositoryView view, RepositoryNode curNode, Set<RepositoryNode> nodes) {
getRepositoryCheckedNode((IRepositoryNode) view.getRoot(), curNode.getObject(), view, true, nodes);
}

View File

@@ -0,0 +1,286 @@
// ============================================================================
//
// Copyright (C) 2006-2014 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.repository.ui.dialog;
import java.lang.reflect.InvocationTargetException;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.swt.widgets.Shell;
import org.talend.core.runtime.i18n.Messages;
/**
* created by cmeng on Nov 21, 2014 Detailled comment
*
*/
public abstract class AProgressMonitorDialogWithCancel<T> extends ProgressMonitorDialog {
public static final int ENDLESS_WAIT_TIME = -1;
public static final int DEFAULT_WAIT_TIME = 60;
private ARunnableWithProgressCancel<T> runnableWithCancel;
private boolean isUserCancelled = false;
/**
* DOC cmeng ProgressMonitorDialogWithCancel constructor comment.
*
* @param parent
*/
public AProgressMonitorDialogWithCancel(Shell parent) {
super(parent);
}
abstract protected T runWithCancel(IProgressMonitor monitor) throws Throwable;
@Override
@Deprecated
public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InvocationTargetException,
InterruptedException {
throw new InvocationTargetException(new Throwable("Can not use this method, you should use another run method")); //$NON-NLS-1$
}
public void run() throws InvocationTargetException, InterruptedException {
run(null, null, true, DEFAULT_WAIT_TIME);
}
public void run(String executeMessage, String waitingFinishMessage, boolean needWaitingProgressJob)
throws InvocationTargetException, InterruptedException {
run(executeMessage, waitingFinishMessage, needWaitingProgressJob, DEFAULT_WAIT_TIME);
}
public void run(String executeMessage, String waitingFinishMessage, boolean needWaitingProgressJob, int timeout)
throws InvocationTargetException, InterruptedException {
runnableWithCancel = new ARunnableWithProgressCancel<T>() {
@Override
protected T runnableWithCancel(IProgressMonitor monitor) throws Throwable {
return runWithCancel(monitor);
}
};
if (executeMessage != null) {
runnableWithCancel.setExecuteMessage(executeMessage);
}
if (waitingFinishMessage != null) {
runnableWithCancel.setWaitingFinishMessage(waitingFinishMessage);
}
runnableWithCancel.setNeedWaitingProgressJob(needWaitingProgressJob);
runnableWithCancel.setTimeout(timeout);
super.run(true, true, runnableWithCancel);
}
@Override
protected void cancelPressed() {
isUserCancelled = true;
if (runnableWithCancel != null) {
runnableWithCancel.kill();
}
super.cancelPressed();
}
public boolean isUserCanncelled() {
return isUserCancelled;
}
public T getExecuteResult() {
if (runnableWithCancel != null) {
return runnableWithCancel.getExecuteResult();
} else {
return null;
}
}
public Throwable getExecuteException() {
if (runnableWithCancel != null) {
return runnableWithCancel.getExecuteException();
} else {
return null;
}
}
private static abstract class ARunnableWithProgressCancel<T> implements IRunnableWithProgress {
protected FutureTask<T> futureTask;
protected Thread executeThread;
protected ThreadGroup threadGroup;
protected T executeResult;
protected Throwable executeException;
protected String executeMessage = Messages.getString("ProgressMonitorDialogWithCancel.executeMessage.default"); //$NON-NLS-1$
protected String waitingFinishMessage = Messages
.getString("ProgressMonitorDialogWithCancel.waitingFinishMessage.default"); //$NON-NLS-1$
protected int timeout = 30;
volatile boolean kill = false;
boolean needWaitingProgressJob = true;
public ARunnableWithProgressCancel() {
}
abstract protected T runnableWithCancel(IProgressMonitor monitor) throws Throwable;
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
*/
@Override
public final void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
futureTask = new FutureTask<T>(new Callable<T>() {
@Override
public T call() throws Exception {
T result = null;
try {
result = runnableWithCancel(monitor);
} catch (Throwable e) {
executeException = e;
}
return result;
}
});
int iTimeout;
boolean canGain = true;
if (ENDLESS_WAIT_TIME == timeout || timeout <= 0) {
iTimeout = 1;
canGain = false;
monitor.beginTask(executeMessage, IProgressMonitor.UNKNOWN);
} else {
iTimeout = timeout * 2;
monitor.beginTask(executeMessage, iTimeout);
}
threadGroup = new ThreadGroup("ARunnableWithProgressCancel"); //$NON-NLS-1$
executeThread = new Thread(threadGroup, futureTask);
executeThread.start();
for (int i = 0; i < iTimeout; i = canGain ? i + 1 : i) {
try {
if (kill) {
break;
}
monitor.worked(1);
executeResult = futureTask.get(500, TimeUnit.MILLISECONDS);
break;
} catch (TimeoutException timeoutException) {
continue;
} catch (Throwable e) {
executeException = e;
break;
}
}
if (!kill && executeException == null && executeResult == null) {
executeException = new TimeoutException(Messages.getString("ProgressMonitorDialogWithCancel.executeTimeout")); //$NON-NLS-1$
kill();
}
monitor.done();
}
/**
* DOC cmeng Comment method "addJob".
*
* @throws InterruptedException
*/
private void addJob() {
if (!needWaitingProgressJob) {
return;
}
StackTraceElement stElement = null;
StackTraceElement stackTraceElements[] = executeThread.getStackTrace();
if (stackTraceElements != null && 0 < stackTraceElements.length) {
stElement = stackTraceElements[0];
}
String currentMethod;
String title = ""; //$NON-NLS-1$
if (stElement != null) {
currentMethod = stElement.getClassName() + "." + stElement.getMethodName(); //$NON-NLS-1$
title = waitingFinishMessage
+ Messages
.getString(
"ProgressMonitorDialogWithCancel.CheckingConnectionJob.waitingFinish", new Object[] { currentMethod }); //$NON-NLS-1$
} else {
title = waitingFinishMessage
+ Messages.getString("ProgressMonitorDialogWithCancel.CheckingConnectionJob.emptyWaitingfinish"); //$NON-NLS-1$
}
CheckingConnectionJob<T> checkingConnectionJob = new CheckingConnectionJob<T>(title, futureTask);
checkingConnectionJob.setUser(false);
checkingConnectionJob.setPriority(Job.DECORATE);
checkingConnectionJob.schedule();
}
public void setNeedWaitingProgressJob(boolean need) {
needWaitingProgressJob = need;
}
public void setExecuteMessage(String exeMsg) {
executeMessage = exeMsg;
}
public void setWaitingFinishMessage(String waitingMsg) {
waitingFinishMessage = waitingMsg;
}
public T getExecuteResult() {
return executeResult;
}
public Throwable getExecuteException() {
return executeException;
}
public void setTimeout(int _timeout) {
timeout = _timeout;
}
public void kill() {
threadGroup.interrupt();
kill = true;
addJob();
}
}
private static class CheckingConnectionJob<T> extends Job {
protected FutureTask<T> futureTask;
public CheckingConnectionJob(String name, FutureTask<T> _futureTask) {
super(name);
this.futureTask = _futureTask;
}
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
futureTask.get();
} catch (Throwable e) {
// nothing need to do since all will be done in ARunnableWithProgressCancel
}
return Status.OK_STATUS;
}
}
}

View File

@@ -165,6 +165,7 @@ MetadataTableEditorView.DefaultTitle=Default
MetadataTableEditorView.KeyTitle=Key
MetadataTableEditorView.LengthTitle=Length
MetadataTableEditorView.NullableTitle=Nullable
MetadataTableEditorView.OriginalLengthTitle=OriginalLength
MetadataTableEditorView.PatternTitle=Date Pattern (Ctrl+Space available)
MetadataTableEditorView.PrecisionTitle=Precision
MetadataTableEditorView.TypleTitle=Type
@@ -564,8 +565,8 @@ NodeReturnProposal.Type=Type: {3}\n
NodeReturnProposal.Availability=Availability: {4}\n
NodeReturnProposal.VariableName=Variable Name: {5}\n
ContextParameterProposal.NoCommentAvaiable=No Comment Available
ContextParameterProposal.Description=Description: {0}\n\n
ContextParameterProposal.ContextVariable=Context Variable: {1}\n
ContextParameterProposal.Type=Type: {2}\n
ContextParameterProposal.VariableName=Variable Name: {3}\n
ContextParameterProposal.Description=Description: {0}
ContextParameterProposal.ContextVariable=Context Variable: {1}
ContextParameterProposal.Type=Type: {2}
ContextParameterProposal.VariableName=Variable Name: {3}
ArchiveFileExportOperationFullPath.cannotCreateDir=unable to create directory '{0}'

View File

@@ -27,6 +27,7 @@ import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.viewers.CheckboxTreeViewer;
import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.accessibility.AccessibleAdapter;
import org.eclipse.swt.accessibility.AccessibleEvent;
@@ -69,6 +70,8 @@ public class FilteredCheckboxTree extends Composite {
*/
protected Text filterText;
protected ModifyListener filterTextModifyListener;
/**
* The control representing the clear button for the filter text entry. This value may be <code>null</code> if no
* such button exists, or if the controls have not yet been created.
@@ -199,7 +202,7 @@ public class FilteredCheckboxTree extends Composite {
showFilterControls = PlatformUI.getPreferenceStore().getBoolean(IWorkbenchPreferenceConstants.SHOW_FILTERED_TEXTS);
createControl(parent, treeStyle);
createRefreshJob();
setInitialText(WorkbenchMessages.FilteredTree_FilterMessage);
setFont(parent.getFont());
}
@@ -284,7 +287,6 @@ public class FilteredCheckboxTree extends Composite {
if (treeViewer instanceof NotifyingTreeViewer) {
patternFilter.setUseCache(true);
}
treeViewer.addFilter(patternFilter);
return treeViewer.getControl();
}
@@ -363,7 +365,6 @@ public class FilteredCheckboxTree extends Composite {
// }
// }
treeViewer.refresh(true);
if (text.length() > 0 && !initial) {
/*
* Expand elements one at a time. After each is expanded, check to see if the filter text has
@@ -453,6 +454,7 @@ public class FilteredCheckboxTree extends Composite {
*/
protected void createFilterText(Composite parent) {
filterText = doCreateFilterText(parent);
setInitialText(WorkbenchMessages.FilteredTree_FilterMessage);
filterText.getAccessible().addAccessibleListener(new AccessibleAdapter() {
/*
@@ -545,7 +547,7 @@ public class FilteredCheckboxTree extends Composite {
}
});
filterText.addModifyListener(new ModifyListener() {
filterTextModifyListener = new ModifyListener() {
/*
* (non-Javadoc)
@@ -556,7 +558,8 @@ public class FilteredCheckboxTree extends Composite {
public void modifyText(ModifyEvent e) {
textChanged();
}
});
};
filterText.addModifyListener(filterTextModifyListener);
GridData gridData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
// if the text widget supported cancel then it will have it's own
@@ -594,6 +597,19 @@ public class FilteredCheckboxTree extends Composite {
calculateCheckedLeafNodes();
// narrowingDown = previousFilterText==null || getFilterString().startsWith(previousFilterText);
previousFilterText = getFilterString();
boolean hasPatternFilter = false;
for (ViewerFilter filter : treeViewer.getFilters()) {
if (filter == patternFilter) {
hasPatternFilter = true;
}
}
// add pattern filter to be the last filter
if (!hasPatternFilter) {
patternFilter.setOtherFilters(treeViewer.getFilters());
treeViewer.addFilter(patternFilter);
}
// cancel currently running job first, to prevent unnecessary redraw
refreshJob.cancel();
refreshJob.schedule(200);
@@ -700,6 +716,7 @@ public class FilteredCheckboxTree extends Composite {
}
};
// clearTextAction.setToolTipText(WorkbenchMessages.FilteredTree_ClearToolTip);
clearTextAction.setToolTipText(WorkbenchMessages.FilteredTree_ClearToolTip);
clearTextAction.setImageDescriptor(JFaceResources.getImageRegistry().getDescriptor(CLEAR_ICON));
clearTextAction.setDisabledImageDescriptor(JFaceResources.getImageRegistry().getDescriptor(DCLEAR_ICON));
@@ -774,8 +791,13 @@ public class FilteredCheckboxTree extends Composite {
*/
public void setInitialText(String text) {
initialText = text;
if (filterTextModifyListener != null) {
filterText.removeModifyListener(filterTextModifyListener);
}
setFilterText(initialText);
textChanged();
if (filterTextModifyListener != null) {
filterText.addModifyListener(filterTextModifyListener);
}
}
/**

View File

@@ -28,6 +28,13 @@ import org.eclipse.ui.internal.misc.StringMatcher;
*/
public class PatternFilter extends ViewerFilter {
private ViewerFilter[] otherFilters;
/**
* Cache of element filtered by other filters
*/
private Map<Object, Object[]> filteredByOthersCache = new HashMap<Object, Object[]>();
/*
* Cache of filtered elements in the tree
*/
@@ -69,6 +76,10 @@ public class PatternFilter extends ViewerFilter {
return elements;
}
if (elements.length == 0) {
return elements;
}
if (!useCache) {
return super.filter(viewer, parent, elements);
}
@@ -240,7 +251,17 @@ public class PatternFilter extends ViewerFilter {
* @return true if the given element has children that matches the filter text
*/
protected boolean isParentMatch(Viewer viewer, Object element) {
Object[] children = ((ITreeContentProvider) ((AbstractTreeViewer) viewer).getContentProvider()).getChildren(element);
Object[] children = filteredByOthersCache.get(element);
if (children == null) {
// fix for TDI-31520 , no need to check child elements already filtered by others
children = ((ITreeContentProvider) ((AbstractTreeViewer) viewer).getContentProvider()).getChildren(element);
if (otherFilters != null) {
for (ViewerFilter filter : otherFilters) {
children = filter.filter(viewer, element, children);
}
}
filteredByOthersCache.put(element, children);
}
if ((children != null) && (children.length > 0)) {
return isAnyVisible(viewer, element, children);
@@ -302,4 +323,13 @@ public class PatternFilter extends ViewerFilter {
void setUseCache(boolean useCache) {
this.useCache = useCache;
}
/**
* Sets the otherFilters.
*
* @param otherFilters the otherFilters to set
*/
public void setOtherFilters(ViewerFilter[] otherFilters) {
this.otherFilters = otherFilters;
}
}

View File

@@ -65,6 +65,7 @@ import org.talend.core.runtime.i18n.Messages;
import org.talend.core.ui.CoreUIPlugin;
import org.talend.core.ui.metadata.editor.AbstractMetadataTableEditorView;
import org.talend.core.ui.metadata.editor.MetadataTableEditorView;
import org.talend.core.utils.MetaDataDialogUtil;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.designer.core.IDesignerCoreService;
@@ -195,7 +196,7 @@ public class MetadataDialog extends Dialog {
isEBCDIC = node.getComponent().getName().contains("EBCDIC");
if (node.getComponent().isSupportDbType() || node.getComponent().getOriginalFamilyName().startsWith(DATABASE_LABEL)
|| eltComponent || isEBCDIC) {
dbComponent = true && !isEBCDIC;
dbComponent = !isEBCDIC;
for (IElementParameter currentParam : node.getElementParameters()) {
if (currentParam.getFieldType().equals(EParameterFieldType.MAPPING_TYPE)) {
metaView.setCurrentDbms((String) currentParam.getValue());
@@ -286,6 +287,14 @@ public class MetadataDialog extends Dialog {
fieldList.add("Signed"); //$NON-NLS-1$
metaView.setAdditionalFields(fieldList);
}
showColumnsOfCustomComponents(node, metaView);
}
private static void showColumnsOfCustomComponents(INode node, MetadataTableEditorView metaView) {
if (isRedShiftNode(node)) {
metaView.setShowPrecisionColumn(false);
}
}
private boolean isRepository(INode node, IMetadataTable currentTable) {
@@ -756,4 +765,7 @@ public class MetadataDialog extends Dialog {
}
}
private static boolean isRedShiftNode(INode node) {
return MetaDataDialogUtil.isRedShiftNode(node);
}
}

View File

@@ -121,6 +121,8 @@ public abstract class AbstractMetadataTableEditorView<B> extends AbstractDataTab
private boolean showPatternColumn = true;
private boolean showPrecisionColumn = true;
protected String dbmsId;
private List<String> additionalFields;
@@ -284,7 +286,9 @@ public abstract class AbstractMetadataTableEditorView<B> extends AbstractDataTab
configureAdditionalFieldColumns(tableViewerCreator);
// //////////////////////////////////////////////////////////////////////////////////////
configurePrecisionColumn(tableViewerCreator);
if (showPrecisionColumn) {
configurePrecisionColumn(tableViewerCreator);
}
// //////////////////////////////////////////////////////////////////////////////////////
@@ -1074,4 +1078,8 @@ public abstract class AbstractMetadataTableEditorView<B> extends AbstractDataTab
public boolean isRepository() {
return this.isRepository;
}
public void setShowPrecisionColumn(boolean showPrecisionColumn) {
this.showPrecisionColumn = showPrecisionColumn;
}
}

View File

@@ -76,17 +76,23 @@ public class ContextParameterProposal implements IContentProposal {
} else {
desc = Messages.getString("ContextParameterProposal.NoCommentAvaiable"); //$NON-NLS-1$
}
// TDI-30683:fix the NPE pb and another description match pb(need move "\n" from message.propreties to code).
MessageFormat format = new MessageFormat(getDescriptionMessagePattern());
if (contextParameter.getContext() != null) {
Object[] replaceArgs = new Object[] { desc, contextParameter.getContext().getName(), contextParameter.getType(),
contextParameter.getName() };
return format.format(replaceArgs);
}
return desc;
String message = Messages.getString("ContextParameterProposal.Description"); //$NON-NLS-1$
message += Messages.getString("ContextParameterProposal.ContextVariable"); //$NON-NLS-1$
message += Messages.getString("ContextParameterProposal.Type"); //$NON-NLS-1$
message += Messages.getString("ContextParameterProposal.VariableName"); //$NON-NLS-1$
}
MessageFormat format = new MessageFormat(message);
// Object[] args = new Object[] { desc, contextParameter.getType(), getContent() };
Object[] args = new Object[] { desc, contextParameter.getContext().getName(), contextParameter.getType(),
contextParameter.getName() };
return format.format(args);
private String getDescriptionMessagePattern() {
String message = Messages.getString("ContextParameterProposal.Description") + "\n\n"; //$NON-NLS-1$ //$NON-NLS-2$
message += Messages.getString("ContextParameterProposal.ContextVariable") + "\n\n"; //$NON-NLS-1$ //$NON-NLS-2$
message += Messages.getString("ContextParameterProposal.Type") + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
message += Messages.getString("ContextParameterProposal.VariableName") + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
return message;
}
/*

View File

@@ -0,0 +1,38 @@
// ============================================================================
//
// Copyright (C) 2006-2014 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.utils;
import org.talend.core.model.metadata.IDatabaseConstant;
import org.talend.core.model.process.EParameterFieldType;
import org.talend.core.model.process.IElementParameter;
import org.talend.core.model.process.INode;
/**
* created by ldong on Jan 16, 2015 Detailled comment
*
*/
public class MetaDataDialogUtil {
public static final String PROPERTY = "PROPERTY"; //$NON-NLS-1$
public static boolean isRedShiftNode(INode node) {
if (node != null) {
IElementParameter param = node.getElementParameter(PROPERTY);
if (param != null && param.getFieldType() == EParameterFieldType.PROPERTY_TYPE
&& IDatabaseConstant.REDSHIFT.equals(param.getRepositoryValue())) {
return true;
}
}
return false;
}
}

View File

@@ -224,8 +224,9 @@ public class ExternalNodeComponentHandler extends AbstractComponentHandler {
// value = checkString(type.getListItemsDisplayName()[index]);
// }
else if (elemparameter.getRepositoryValue() != null
&& elemparameter.getRepositoryValue().contains("PASSWORD") //$NON-NLS-1$
else if ((elemparameter.getRepositoryValue() != null
&& elemparameter.getRepositoryValue().toUpperCase().contains("PASSWORD") //$NON-NLS-1$
|| elemparameter.getFieldType() == EParameterFieldType.PASSWORD)
&& ProjectManager.getInstance().getCurrentProject().getEmfProject().isHidePassword()
&& !ContextParameterUtils.containContextVariables((String) elemparameter.getValue())) {
value = "******"; //$NON-NLS-1$

View File

@@ -175,8 +175,9 @@ public class InternalNodeComponentHandler extends AbstractComponentHandler {
// int index = type.getIndexOfItemFromList(type.getDisplayName());
// value = checkString(type.getListItemsDisplayName()[index]);
// }
else if (elemparameter.getRepositoryValue() != null
&& elemparameter.getRepositoryValue().contains("PASSWORD") //$NON-NLS-1$
else if ((elemparameter.getRepositoryValue() != null
&& elemparameter.getRepositoryValue().toUpperCase().contains("PASSWORD") //$NON-NLS-1$
|| elemparameter.getFieldType() == EParameterFieldType.PASSWORD)
&& ProjectManager.getInstance().getCurrentProject().getEmfProject().isHidePassword()
&& !ContextParameterUtils.containContextVariables((String) elemparameter.getValue())) {
value = "******"; //$NON-NLS-1$

View File

@@ -289,11 +289,14 @@ public class TalendTextUtils {
// added by hyWang(bug 6637),to see if the column name need to be add queotes
// check the field name.
String temp = removeQuotes(fieldName);
Pattern pattern = Pattern.compile("\\w+"); //$NON-NLS-1$
Matcher matcher = pattern.matcher(temp);
// for bug 11938
// to see if the table name or column name was start with number
String temp = removeQuotes(fieldName);
Pattern pattern = Pattern.compile("^[a-zA-Z_]*$"); //$NON-NLS-1$
Matcher matcher = pattern.matcher(temp);
Pattern pattern2 = Pattern.compile("^[0-9]+[_0-9a-zA-Z]*$"); //$NON-NLS-1$
Matcher matcher2 = pattern2.matcher(temp);
// for bug 12092
boolean isSqlKeyword = KeywordsValidator.isSqlKeyword(temp, name.getProduct());
@@ -301,7 +304,7 @@ public class TalendTextUtils {
boolean isH2 = EDatabaseTypeName.H2 == name;
// if the database type is IBMDB2 and the field name contain lowercase character, should add quotes
if (((!matcher.matches() || isSqlKeyword) && !isH2 && EDatabaseTypeName.SAS != name)
if (((!matcher.matches() || matcher2.matches() || isSqlKeyword) && !isH2 && EDatabaseTypeName.SAS != name)
|| isIBMDB2ContainLowerCase(dbType, fieldName)) {
isCheck = true; // contain other char
}

View File

@@ -105,6 +105,8 @@ public class ProcessorUtilities {
private static Map<String, Integer> lastGeneratedWithStatsOrTrace = new HashMap<String, Integer>();
private static Date exportTimeStamp;// time stamp create when exporting a job and reset when export ends.
private static final int GENERATED_WITH_STATS = 1;
private static final int GENERATED_WITH_TRACES = 2;
@@ -144,6 +146,11 @@ public class ProcessorUtilities {
codeLocation = exportCodeLocation;
libraryPath = exportLibraryPath;
exportConfig = true;
exportTimeStamp = new Date();
}
public static Date getExportTimestamp() {
return exportTimeStamp;
}
public static boolean isExportConfig() {
@@ -155,6 +162,7 @@ public class ProcessorUtilities {
codeLocation = null;
libraryPath = null;
exportConfig = false;
exportTimeStamp = null;
}
public static String getInterpreter() {

View File

@@ -157,8 +157,7 @@ public class ATreeNode {
*/
public void addChild(Object[] children) {
for (Object element : children) {
this.children.add(element);
((ATreeNode) element).setNodeParent(this);
addChild(element);
}
}

View File

@@ -271,6 +271,7 @@ public class XSDPopulationUtil2 {
} else {
boolean namespaceFoundInParent = false;
ATreeNode node = parentNode;
Set<ATreeNode> checkedNodes = new HashSet<ATreeNode>();
do {
for (Object child : node.getChildren()) {
if (child instanceof ATreeNode) {
@@ -281,8 +282,9 @@ public class XSDPopulationUtil2 {
}
}
}
checkedNodes.add(node);
node = node.getParent();
} while (node != null && !namespaceFoundInParent);
} while (node != null && !namespaceFoundInParent && !checkedNodes.contains(node));
if (!namespaceFoundInParent) {
ATreeNode namespaceNode = new ATreeNode();
namespaceNode.setDataType(""); //$NON-NLS-1$
@@ -303,22 +305,12 @@ public class XSDPopulationUtil2 {
parentNode.addChild(partNode);
boolean resolvedAsComplex = false;
if (typeDef instanceof XSDComplexTypeDefinition) {
if (!currentPath.contains("/" + elementName + "/")) {
XSDTypeDefinition xsdTypeDefinition = typeDef;
String path = currentPath + elementName + "/";
// XSDTypeDefinition xsdTypeDefinition = xsdElementDeclarationParticle.getTypeDefinition();
// if (xsdTypeDefinition == null) {
// XSDComplexTypeDefinition generalType = xsdSchema
// .resolveComplexTypeDefinitionURI(xsdElementDeclarationParticle.getURI());
// if (generalType.getContainer() != null) {
// xsdTypeDefinition = generalType;
// }
// }
XSDTypeDefinition xsdTypeDefinition = typeDef;
if (xsdTypeDefinition != null && xsdTypeDefinition.getName() != null) {
partNode.setDataType(xsdTypeDefinition.getQName());
}
addComplexTypeDetails(xsdSchema, partNode, xsdTypeDefinition, prefix, namespace, path);
}
resolvedAsComplex = true;
} else if (typeDef.getTargetNamespace() != null) {
resolvedAsComplex = true;

View File

@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/cxf-api-2.7.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-bindings-xml-2.7.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-core-2.7.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-frontend-jaxrs-2.7.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-transports-http-2.7.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/neethi-3.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/javax.ws.rs-api-2.0-m10.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/javax.ws.rs-api-2.0-m10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/neethi-3.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-api-2.7.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-bindings-xml-2.7.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-core-2.7.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-frontend-jaxrs-2.7.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-transports-http-2.7.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/stax2-api-3.1.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/woodstox-core-asl-4.2.0.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@@ -4,866 +4,132 @@ Bundle-Name: Cxf
Bundle-SymbolicName: org.talend.libraries.apache.cxf;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .,
lib/javax.ws.rs-api-2.0-m10.jar,
Bundle-ClassPath: lib/javax.ws.rs-api-2.0-m10.jar,
lib/neethi-3.0.1.jar,
lib/cxf-api-2.7.7.jar,
lib/cxf-rt-bindings-xml-2.7.7.jar,
lib/cxf-rt-core-2.7.7.jar,
lib/cxf-rt-frontend-jaxrs-2.7.7.jar,
lib/cxf-rt-transports-http-2.7.7.jar,
lib/stax-api-1.0.1.jar,
lib/stax2-api-3.1.1.jar,
lib/woodstox-core-asl-4.2.0.jar
Export-Package: javax.ws.rs;version="2.0.0.m10",
javax.ws.rs.client;version="2.0.0.m10",
javax.ws.rs.container;version="2.0.0.m10",
javax.ws.rs.core;version="2.0.0.m10",
javax.ws.rs.ext;version="2.0.0.m10",
org.apache.cxf;uses:="org.apache.cxf.common.i18n,org.apache.cxf.interceptor",
lib/woodstox-core-asl-4.2.0.jar,
.
Export-Package: javax.ws.rs,
javax.ws.rs.client,
javax.ws.rs.container,
javax.ws.rs.core,
javax.ws.rs.ext,
org.apache.cxf,
org.apache.cxf.annotations,
org.apache.cxf.attachment;
uses:="javax.activation,
new new org.apache.cxf.attachment,
javax.mail.internet,
org.apache.cxf.io,
org.apache.cxf.message,
new org.apache.cxf.attachment",
org.apache.cxf.binding;
uses:="javax.wsdl.extensions,
org.apache.cxf,
org.apache.cxf.service,
org.apache.cxf.service.model,
org.apache.cxf.transport,
org.apache.cxf.message,
org.apache.cxf.endpoint,
org.apache.cxf.interceptor,
javax.wsdl",
org.apache.cxf.binding.xml;
uses:="org.apache.cxf,
org.apache.cxf.service.model,
org.apache.cxf.common.i18n,
org.apache.cxf.tools.validator,
org.apache.cxf.binding,
org.apache.cxf.message,
org.apache.cxf.interceptor",
org.apache.cxf.binding.xml.interceptor;uses:="org.apache.cxf.message,org.apache.cxf.interceptor",
org.apache.cxf.binding.xml.wsdl11;uses:="org.apache.cxf.wsdl,javax.wsdl.extensions,org.apache.cxf",
org.apache.cxf.bindings.xformat;uses:="org.apache.cxf.wsdl,javax.xml.bind,javax.xml.namespace",
org.apache.cxf.bus;
uses:="org.apache.cxf.configuration,
org.apache.cxf,
javax.management,
org.apache.cxf.management,
org.apache.cxf.interceptor",
org.apache.cxf.bus.blueprint;
uses:="org.apache.aries.blueprint,
org.apache.cxf.configuration,
org.osgi.service.blueprint.reflect,
org.apache.cxf.bus.extension,
org.apache.cxf.configuration.blueprint,
org.osgi.framework,
org.osgi.service.blueprint.container,
org.apache.aries.blueprint.mutable,
org.w3c.dom",
org.apache.cxf.bus.extension;
uses:="org.apache.cxf.configuration,
org.apache.cxf.bus,
org.apache.cxf,
org.apache.cxf.resource,
org.apache.cxf.common.i18n",
org.apache.cxf.bus.managers;
uses:="org.apache.cxf,
org.apache.cxf.ws.addressing,
javax.management,
org.apache.cxf.configuration.spring,
org.apache.cxf.binding,
org.apache.cxf.management,
javax.xml.namespace,
org.apache.cxf.phase,
org.apache.cxf.headers,
org.apache.cxf.workqueue,
org.apache.cxf.configuration,
org.apache.cxf.transport,
org.apache.cxf.endpoint,
org.apache.cxf.buslifecycle,
org.apache.cxf.extension",
org.apache.cxf.bus.osgi;
uses:="org.apache.cxf.workqueue,
org.apache.cxf.configuration,
org.apache.cxf,
org.osgi.util.tracker,
org.apache.cxf.bus.extension,
org.osgi.framework,
org.osgi.service.cm,
org.apache.cxf.buslifecycle",
org.apache.cxf.bus.resource;uses:="org.apache.cxf,org.apache.cxf.resource,org.apache.cxf.extension",
org.apache.cxf.bus.spring;
uses:="org.springframework.context.support,
org.springframework.beans.factory.config,
org.apache.cxf.resource,
org.apache.cxf.configuration.spring,
org.xml.sax,
org.springframework.beans.factory.support,
org.springframework.core,
org.apache.cxf.configuration,
org.springframework.beans.factory,
org.apache.cxf.interceptor,
org.apache.cxf.bus.extension,
org.apache.cxf,
org.springframework.core.io,
org.springframework.context,
org.springframework.beans.factory.xml,
javax.xml.parsers,
org.springframework.core.io.support,
org.w3c.dom,
org.apache.cxf.bus,
org.apache.cxf.buslifecycle",
org.apache.cxf.buslifecycle;uses:="org.apache.cxf",
org.apache.cxf.catalog;
uses:="org.apache.ws.commons.schema.resolver,
javax.wsdl.xml,
org.apache.cxf,
org.apache.xml.resolver.tools,
org.apache.xml.resolver,
org.xml.sax",
org.apache.cxf.common;uses:="javax.xml.namespace",
org.apache.cxf.attachment,
org.apache.cxf.binding,
org.apache.cxf.binding.xml,
org.apache.cxf.binding.xml.interceptor,
org.apache.cxf.binding.xml.wsdl11,
org.apache.cxf.bindings.xformat,
org.apache.cxf.bus,
org.apache.cxf.bus.blueprint,
org.apache.cxf.bus.extension,
org.apache.cxf.bus.managers,
org.apache.cxf.bus.osgi,
org.apache.cxf.bus.resource,
org.apache.cxf.bus.spring,
org.apache.cxf.buslifecycle,
org.apache.cxf.catalog,
org.apache.cxf.common,
org.apache.cxf.common.annotation,
org.apache.cxf.common.classloader;uses:="javax.xml.namespace",
org.apache.cxf.common.commands;uses:="org.apache.cxf.common.i18n",
org.apache.cxf.common.classloader,
org.apache.cxf.common.commands,
org.apache.cxf.common.i18n,
org.apache.cxf.common.injection;uses:="javax.annotation,org.apache.cxf.resource,org.apache.cxf.common.annotation",
org.apache.cxf.common.jaxb;
uses:="new org.apache.cxf.common.jaxb,
org.w3c.dom,
javax.xml.namespace,
org.xml.sax,
javax.xml.bind.attachment,
javax.xml.stream,
javax.xml.transform,
com.sun.xml.bind.marshaller,
javax.xml.transform.stream,
javax.xml.bind",
org.apache.cxf.common.logging;uses:="org.apache.log4j",
org.apache.cxf.common.security;uses:="org.apache.cxf.security",
org.apache.cxf.common.util;
uses:="net.sf.cglib.proxy,
javax.tools,
javax.xml.namespace,
org.apache.cxf.common.i18n",
org.apache.cxf.common.xmlschema;
uses:="org.apache.ws.commons.schema,
org.apache.ws.commons.schema.resolver,
org.apache.ws.commons.schema.extensions,
org.w3c.dom,
javax.xml.namespace,
org.w3c.dom.ls,
org.apache.ws.commons.schema.utils,
org.apache.cxf.common.i18n",
org.apache.cxf.configuration;uses:="org.apache.cxf.common.i18n",
org.apache.cxf.configuration.blueprint;
uses:="org.apache.aries.blueprint,
org.osgi.service.blueprint.reflect,
org.osgi.service.blueprint.container,
org.apache.aries.blueprint.mutable,
org.w3c.dom,
javax.xml.namespace",
org.apache.cxf.configuration.jsse;uses:="org.apache.cxf.configuration.security,javax.net.ssl",
org.apache.cxf.configuration.security;uses:="javax.xml.bind",
org.apache.cxf.configuration.spring;
uses:="org.springframework.context,
org.springframework.beans.factory.xml,
org.w3c.dom,
javax.xml.namespace,
org.springframework.beans.factory.wiring,
org.springframework.beans.factory.support,
org.apache.cxf.configuration,
javax.xml.bind,
org.springframework.beans.factory,
org.apache.cxf.extension",
org.apache.cxf.continuations;uses:="org.apache.cxf.message",
org.apache.cxf.databinding;
uses:="org.apache.ws.commons.schema,
org.apache.cxf.common.xmlschema,
org.apache.cxf,
org.apache.cxf.service,
javax.xml.validation,
org.apache.cxf.service.model,
org.w3c.dom,
javax.xml.namespace",
org.apache.cxf.databinding.source;
uses:="org.apache.cxf.staxutils,
org.apache.cxf.service,
org.apache.cxf.service.model,
org.apache.cxf.databinding,
javax.xml.transform.dom,
org.w3c.dom,
javax.xml.namespace,
javax.activation,
javax.xml.stream,
javax.xml.validation",
org.apache.cxf.databinding.source.mime;
uses:="org.apache.ws.commons.schema,
org.apache.ws.commons.schema.extensions,
org.w3c.dom,
javax.xml.namespace",
org.apache.cxf.databinding.stax;
uses:="org.apache.cxf.feature,
org.apache.cxf,
org.apache.cxf.service,
org.apache.cxf.service.model,
org.apache.cxf.databinding,
org.apache.cxf.message,
javax.xml.namespace,
javax.xml.stream,
javax.xml.validation,
org.apache.cxf.endpoint,
org.apache.cxf.interceptor",
org.apache.cxf.endpoint;
uses:="org.apache.cxf,
org.apache.cxf.service,
org.apache.cxf.ws.addressing,
org.apache.cxf.databinding,
org.apache.cxf.service.model,
javax.management,
org.apache.cxf.management,
org.apache.cxf.message,
org.apache.cxf.binding,
org.apache.cxf.phase,
javax.xml.namespace,
new org.apache.cxf.endpoint,
org.apache.cxf.configuration,
org.apache.cxf.common.i18n,
org.apache.cxf.transport,
org.apache.cxf.interceptor",
org.apache.cxf.common.injection,
org.apache.cxf.common.jaxb,
org.apache.cxf.common.logging,
org.apache.cxf.common.security,
org.apache.cxf.common.util,
org.apache.cxf.common.xmlschema,
org.apache.cxf.configuration,
org.apache.cxf.configuration.blueprint,
org.apache.cxf.configuration.jsse,
org.apache.cxf.configuration.security,
org.apache.cxf.configuration.spring,
org.apache.cxf.continuations,
org.apache.cxf.databinding,
org.apache.cxf.databinding.source,
org.apache.cxf.databinding.source.mime,
org.apache.cxf.databinding.stax,
org.apache.cxf.endpoint,
org.apache.cxf.extension,
org.apache.cxf.feature;
uses:="org.apache.cxf.annotations,
org.apache.cxf,
org.apache.cxf.endpoint,
org.apache.cxf.interceptor",
org.apache.cxf.feature.transform;
uses:="org.apache.cxf.staxutils,
org.apache.cxf.feature,
org.apache.cxf,
org.apache.cxf.io,
org.w3c.dom,
org.apache.cxf.message,
org.apache.cxf.phase,
javax.xml.stream,
javax.xml.transform,
org.apache.cxf.interceptor",
org.apache.cxf.feature.validation;
uses:="org.apache.cxf.annotations,
org.apache.cxf.feature,
org.apache.cxf,
org.apache.cxf.service.model,
org.apache.cxf.endpoint",
org.apache.cxf.headers;uses:="org.apache.cxf.databinding,org.apache.cxf.interceptor,javax.xml.namespace",
org.apache.cxf.helpers;
uses:="org.apache.cxf.annotations,
javax.xml.parsers,
org.w3c.dom,
org.apache.cxf.message,
javax.wsdl,
org.xml.sax,
javax.xml.namespace,
javax.xml.transform,
javax.xml.transform.stream",
org.apache.cxf.interceptor;
uses:="org.apache.cxf.staxutils,
org.apache.cxf,
org.apache.cxf.service,
org.apache.cxf.io,
org.apache.cxf.databinding,
org.apache.cxf.service.model,
org.w3c.dom,
org.apache.cxf.message,
javax.xml.namespace,
org.apache.cxf.phase,
org.apache.cxf.service.invoker,
javax.xml.stream,
org.apache.cxf.transport,
org.apache.cxf.common.i18n,
org.apache.cxf.endpoint",
org.apache.cxf.interceptor.security;
uses:="javax.security.auth.callback,
javax.security.auth.login,
org.apache.cxf.security,
org.apache.cxf.service.model,
javax.security.auth,
org.w3c.dom,
org.apache.cxf.message,
org.apache.cxf.phase,
org.apache.cxf.common.security",
org.apache.cxf.interceptor.transform;uses:="javax.xml.stream,org.apache.cxf.message,org.apache.cxf.phase",
org.apache.cxf.internal;uses:="org.apache.aries.blueprint,org.osgi.service.blueprint.reflect,org.w3c.dom",
org.apache.cxf.io;
uses:="javax.xml.stream,
org.apache.cxf.helpers,
org.apache.cxf.service.model,
javax.crypto",
org.apache.cxf.jaxrs;
uses:="org.apache.cxf.service.factory,
org.apache.cxf.jaxrs.ext,
org.apache.cxf.jaxrs.provider,
org.apache.cxf,
org.apache.cxf.service,
org.apache.cxf.service.model,
org.apache.cxf.databinding,
org.apache.cxf.binding,
org.apache.cxf.message,
javax.xml.namespace,
org.apache.cxf.service.invoker,
org.apache.cxf.jaxrs.lifecycle,
org.apache.cxf.configuration,
org.apache.cxf.jaxrs.model,
org.apache.cxf.endpoint,
org.apache.cxf.interceptor,
javax.ws.rs.core",
org.apache.cxf.jaxrs.blueprint;
uses:="org.apache.aries.blueprint,
org.apache.cxf.jaxrs.lifecycle,
org.osgi.service.blueprint.reflect,
org.apache.cxf.configuration.blueprint,
org.osgi.service.blueprint.container,
org.apache.aries.blueprint.mutable,
org.w3c.dom,
org.apache.cxf.message",
org.apache.cxf.jaxrs.client;
uses:="org.apache.cxf.transport.http,
javax.ws.rs,
org.apache.cxf,
org.apache.cxf.service.model,
org.apache.cxf.jaxrs.ext.form,
org.apache.cxf.jaxrs,
org.apache.cxf.message,
javax.xml.namespace,
org.apache.cxf.phase,
org.apache.cxf.jaxrs.model,
javax.ws.rs.client,
org.apache.cxf.transport,
org.apache.cxf.endpoint,
org.apache.cxf.interceptor,
javax.ws.rs.core",
org.apache.cxf.jaxrs.client.spec;
uses:="org.apache.cxf.jaxrs.impl,
javax.ws.rs.client,
org.apache.cxf.message,
org.apache.cxf.interceptor,
javax.ws.rs.core",
org.apache.cxf.jaxrs.ext;
uses:="javax.servlet,
org.apache.cxf.jaxrs.model,
javax.ws.rs.ext,
org.apache.cxf.message,
javax.servlet.http,
javax.ws.rs.core",
org.apache.cxf.jaxrs.ext.form;uses:="javax.ws.rs.core",
org.apache.cxf.jaxrs.ext.multipart;
uses:="javax.activation,
javax.ws.rs.ext,
org.apache.cxf.message,
javax.ws.rs.core",
org.apache.cxf.feature,
org.apache.cxf.feature.transform,
org.apache.cxf.feature.validation,
org.apache.cxf.headers,
org.apache.cxf.helpers,
org.apache.cxf.interceptor,
org.apache.cxf.interceptor.security,
org.apache.cxf.interceptor.transform,
org.apache.cxf.internal,
org.apache.cxf.io,
org.apache.cxf.jaxrs,
org.apache.cxf.jaxrs.blueprint,
org.apache.cxf.jaxrs.client,
org.apache.cxf.jaxrs.client.spec,
org.apache.cxf.jaxrs.ext,
org.apache.cxf.jaxrs.ext.form,
org.apache.cxf.jaxrs.ext.multipart,
org.apache.cxf.jaxrs.ext.xml,
org.apache.cxf.jaxrs.impl;
uses:="javax.ws.rs,
javax.ws.rs.container,
javax.ws.rs.ext,
org.apache.cxf.message,
javax.servlet,
org.apache.cxf.jaxrs.model,
org.apache.cxf.continuations,
javax.servlet.http,
javax.ws.rs.core",
org.apache.cxf.jaxrs.impl.tl;
uses:="org.apache.cxf.jaxrs.ext,
javax.ws.rs.ext,
javax.servlet,
javax.servlet.descriptor,
javax.ws.rs.core,
javax.servlet.http",
org.apache.cxf.jaxrs.interceptor;uses:="org.apache.cxf.message,org.apache.cxf.phase,org.apache.cxf.interceptor",
org.apache.cxf.jaxrs.lifecycle;uses:="org.apache.cxf.message",
org.apache.cxf.jaxrs.model;
uses:="org.apache.cxf.jaxrs.impl.tl,
javax.ws.rs,
org.apache.cxf.jaxrs.lifecycle,
org.apache.cxf,
org.apache.cxf.message,
javax.ws.rs.core",
org.apache.cxf.jaxrs.model.wadl;
uses:="org.apache.cxf.jaxrs.ext,
org.apache.cxf.message,
org.w3c.dom,
javax.xml.namespace,
org.apache.cxf.common.jaxb,
org.apache.cxf.common.xmlschema,
org.apache.cxf.jaxrs.model,
javax.xml.bind,
javax.ws.rs.core",
org.apache.cxf.jaxrs.provider;
uses:="org.apache.cxf.staxutils,
org.apache.cxf.jaxrs.ext,
org.apache.cxf.message,
javax.xml.namespace,
javax.servlet,
javax.xml.stream,
org.apache.cxf.jaxrs.model,
javax.ws.rs.core,
org.apache.cxf.jaxrs.client,
org.apache.cxf,
org.apache.cxf.service,
javax.xml.bind.annotation.adapters,
org.apache.cxf.databinding,
org.apache.cxf.jaxrs.impl,
javax.ws.rs.ext,
javax.activation,
javax.xml.bind.attachment,
javax.xml.transform,
org.apache.cxf.jaxrs.utils.schemas,
javax.xml.validation,
javax.xml.bind,
javax.servlet.http",
org.apache.cxf.jaxrs.security;
uses:="javax.security.auth.callback,
org.apache.cxf.jaxrs.ext,
org.apache.cxf.interceptor.security,
javax.security.auth.login,
javax.security.auth,
org.ietf.jgss,
org.apache.cxf.message,
org.apache.cxf.phase,
org.apache.cxf.configuration.security,
org.apache.cxf.jaxrs.model,
org.apache.cxf.transport.http.auth,
org.apache.cxf.common.security,
javax.ws.rs.core",
org.apache.cxf.jaxrs.servlet;uses:="javax.servlet,org.apache.cxf.transport.servlet,org.apache.cxf.jaxrs",
org.apache.cxf.jaxrs.spring;
uses:="org.apache.cxf.jaxrs.client,
org.springframework.beans.factory.support,
org.apache.cxf.jaxrs.lifecycle,
org.springframework.context,
org.springframework.beans.factory.xml,
org.apache.cxf.configuration.spring,
org.apache.cxf.message,
org.apache.cxf.jaxrs,
org.w3c.dom",
org.apache.cxf.jaxrs.utils;
uses:="org.apache.cxf.jaxrs.impl.tl,
javax.ws.rs,
org.apache.cxf.jaxrs.provider,
org.apache.cxf.jaxrs.ext.multipart,
org.apache.cxf,
javax.xml.bind.annotation.adapters,
javax.ws.rs.ext,
org.apache.cxf.jaxrs,
org.w3c.dom,
org.apache.cxf.jaxrs.ext.form,
org.apache.cxf.message,
javax.xml.namespace,
org.apache.cxf.jaxrs.model,
javax.xml.bind,
javax.servlet.http,
javax.ws.rs.core",
org.apache.cxf.jaxrs.utils.multipart;uses:="org.apache.cxf.jaxrs.ext,org.apache.cxf.jaxrs.ext.multipart,javax.ws.rs.core",
org.apache.cxf.jaxrs.utils.schemas;
uses:="org.w3c.dom.ls,
org.apache.cxf.catalog,
org.apache.cxf,
javax.xml.validation",
org.apache.cxf.logging;uses:="org.apache.cxf.message",
org.apache.cxf.management;uses:="javax.management",
org.apache.cxf.jaxrs.impl,
org.apache.cxf.jaxrs.impl.tl,
org.apache.cxf.jaxrs.interceptor,
org.apache.cxf.jaxrs.lifecycle,
org.apache.cxf.jaxrs.model,
org.apache.cxf.jaxrs.model.wadl,
org.apache.cxf.jaxrs.provider,
org.apache.cxf.jaxrs.security,
org.apache.cxf.jaxrs.servlet,
org.apache.cxf.jaxrs.spring,
org.apache.cxf.jaxrs.utils,
org.apache.cxf.jaxrs.utils.multipart,
org.apache.cxf.jaxrs.utils.schemas,
org.apache.cxf.logging,
org.apache.cxf.management,
org.apache.cxf.management.annotation,
org.apache.cxf.message;
uses:="javax.activation,
org.apache.cxf.service,
org.apache.cxf,
org.apache.cxf.service.model,
org.apache.cxf.transport,
org.apache.cxf.binding,
org.apache.cxf.endpoint,
org.apache.cxf.interceptor",
org.apache.cxf.phase;uses:="org.apache.cxf.transport,org.apache.cxf.message,org.apache.cxf.interceptor",
org.apache.cxf.policy;
uses:="org.apache.cxf.service.model,
org.apache.cxf.transport,
org.apache.cxf.message,
javax.xml.namespace",
org.apache.cxf.resource;uses:="org.xml.sax",
org.apache.cxf.security;uses:="javax.security.auth",
org.apache.cxf.message,
org.apache.cxf.phase,
org.apache.cxf.policy,
org.apache.cxf.resource,
org.apache.cxf.security,
org.apache.cxf.security.claims.authorization,
org.apache.cxf.security.transport;uses:="javax.net.ssl",
org.apache.cxf.service;
uses:="org.apache.cxf.service.invoker,
org.apache.cxf.configuration,
org.apache.cxf,
org.apache.cxf.databinding,
org.apache.cxf.service.model,
org.apache.cxf.interceptor,
javax.xml.namespace",
org.apache.cxf.service.factory;
uses:="org.apache.cxf,
org.apache.cxf.service,
org.apache.cxf.databinding,
org.apache.cxf.service.model,
org.w3c.dom,
javax.xml.namespace,
org.apache.cxf.service.invoker,
org.apache.cxf.common.i18n,
org.apache.cxf.endpoint",
org.apache.cxf.service.invoker;
uses:="org.springframework.context,
org.apache.cxf.service.model,
org.apache.cxf.endpoint,
org.apache.cxf.message,
org.apache.cxf.interceptor",
org.apache.cxf.service.model;
uses:="org.apache.ws.commons.schema,
org.apache.cxf.common.xmlschema,
org.apache.cxf.service,
org.apache.cxf.ws.addressing,
org.w3c.dom,
org.apache.cxf.message,
javax.xml.namespace",
org.apache.cxf.staxutils;
uses:="javax.xml.stream,
org.xml.sax.ext,
javax.xml.transform,
javax.xml.parsers,
javax.xml.transform.sax,
javax.xml.stream.events,
org.w3c.dom,
org.xml.sax,
javax.xml.namespace",
org.apache.cxf.staxutils.transform;uses:="javax.xml.stream,org.apache.cxf.staxutils,javax.xml.namespace",
org.apache.cxf.test;
uses:="org.springframework.context.support,
org.apache.cxf,
org.springframework.context,
org.springframework.beans.factory.xml,
org.junit,
org.apache.cxf.message,
org.w3c.dom,
javax.wsdl,
javax.xml.namespace,
javax.xml.xpath,
javax.xml.stream,
org.apache.cxf.transport,
org.apache.cxf.endpoint",
org.apache.cxf.transport;
uses:="org.apache.cxf,
org.apache.cxf.ws.addressing,
org.apache.cxf.resource,
org.apache.cxf.service.model,
org.apache.cxf.message,
org.apache.cxf.binding,
org.apache.cxf.phase,
org.xml.sax,
javax.xml.namespace,
org.apache.cxf.configuration,
org.apache.cxf.endpoint",
org.apache.cxf.transport.common.gzip;
uses:="org.apache.cxf.feature,
org.apache.cxf,
org.apache.cxf.io,
org.apache.cxf.message,
org.apache.cxf.interceptor,
org.apache.cxf.phase",
org.apache.cxf.transport.http;
uses:="org.apache.cxf.wsdl,
org.apache.cxf.ws.addressing,
org.apache.cxf.message,
javax.xml.namespace,
org.apache.cxf.transport.https,
javax.servlet,
org.apache.cxf.configuration,
org.apache.cxf.transports.http.configuration,
org.apache.cxf.transport,
org.apache.cxf.service,
org.apache.cxf,
org.apache.cxf.configuration.jsse,
org.apache.cxf.io,
org.apache.cxf.security,
org.apache.cxf.service.model,
org.apache.cxf.configuration.security,
org.apache.cxf.wsdl11,
org.apache.cxf.transport.http.auth,
org.apache.cxf.continuations,
javax.servlet.http",
org.apache.cxf.transport.http.auth;
uses:="javax.security.auth.callback,
org.apache.cxf.configuration.security,
javax.security.auth.login,
org.apache.cxf.message",
org.apache.cxf.transport.http.blueprint;
uses:="org.apache.aries.blueprint,
org.osgi.service.blueprint.reflect,
org.apache.cxf.configuration.blueprint,
org.apache.aries.blueprint.mutable,
org.w3c.dom",
org.apache.cxf.transport.http.osgi;
uses:="org.apache.cxf.transport.http,
org.osgi.util.tracker,
org.osgi.framework,
org.osgi.service.cm",
org.apache.cxf.transport.http.policy;uses:="org.apache.cxf.ws.policy,org.apache.neethi,org.apache.cxf.ws.policy.builder.jaxb",
org.apache.cxf.transport.http.policy.impl;
uses:="org.apache.cxf.policy,
org.apache.cxf.transports.http.configuration,
org.apache.cxf.message,
javax.xml.namespace",
org.apache.cxf.transport.http.spring;
uses:="org.springframework.beans.factory.support,
org.springframework.beans.factory.xml,
org.apache.cxf.configuration.spring,
org.w3c.dom",
org.apache.cxf.transport.https;
uses:="org.apache.cxf.transport.http,
org.apache.cxf.feature,
org.apache.cxf,
org.apache.cxf.configuration.jsse,
org.apache.cxf.message,
org.apache.cxf.phase,
org.apache.cxf.configuration.security,
org.apache.cxf.common.util,
javax.net.ssl,
org.apache.cxf.endpoint,
org.apache.cxf.interceptor",
org.apache.cxf.transport.servlet;
uses:="org.apache.cxf.transport.http,
org.springframework.context.support,
org.apache.cxf,
org.springframework.context,
org.apache.cxf.transports.http,
org.apache.cxf.resource,
org.apache.cxf.service.model,
org.springframework.context.event,
javax.servlet,
org.apache.cxf.transport,
javax.servlet.http",
org.apache.cxf.transport.servlet.servicelist;
uses:="javax.servlet,
org.apache.cxf.transport.http,
org.apache.cxf,
org.apache.cxf.transport,
javax.servlet.http",
org.apache.cxf.transports.http;uses:="org.apache.cxf.service.model",
org.apache.cxf.transports.http.configuration;uses:="org.apache.cxf.wsdl,javax.xml.bind",
org.apache.cxf.transports.http.internal;uses:="org.apache.cxf,org.apache.cxf.transports.http",
org.apache.cxf.security.transport,
org.apache.cxf.service,
org.apache.cxf.service.factory,
org.apache.cxf.service.invoker,
org.apache.cxf.service.model,
org.apache.cxf.staxutils,
org.apache.cxf.staxutils.transform,
org.apache.cxf.test,
org.apache.cxf.transport,
org.apache.cxf.transport.common.gzip,
org.apache.cxf.transport.http,
org.apache.cxf.transport.http.auth,
org.apache.cxf.transport.http.blueprint,
org.apache.cxf.transport.http.osgi,
org.apache.cxf.transport.http.policy,
org.apache.cxf.transport.http.policy.impl,
org.apache.cxf.transport.http.spring,
org.apache.cxf.transport.https,
org.apache.cxf.transport.servlet,
org.apache.cxf.transport.servlet.servicelist,
org.apache.cxf.transports.http,
org.apache.cxf.transports.http.configuration,
org.apache.cxf.transports.http.internal,
org.apache.cxf.version,
org.apache.cxf.workqueue,
org.apache.cxf.ws.addressing;
uses:="org.apache.cxf.ws.addressing.v200403,
org.apache.cxf.ws.addressing.v200408,
org.apache.cxf.feature,
org.apache.cxf,
org.apache.cxf.service.model,
org.w3c.dom,
org.apache.cxf.message,
org.apache.cxf.phase,
javax.xml.namespace,
org.apache.cxf.transport,
javax.xml.bind,
new org.apache.cxf.ws.addressing,
org.apache.cxf.interceptor",
org.apache.cxf.ws.addressing.v200403;uses:="javax.xml.bind,javax.xml.namespace",
org.apache.cxf.ws.addressing.v200408;uses:="javax.xml.bind,javax.xml.namespace",
org.apache.cxf.ws.addressing.wsdl;uses:="org.apache.cxf.wsdl,javax.xml.bind,javax.xml.namespace",
org.apache.cxf.wsdl;
uses:="javax.wsdl.factory,
org.apache.cxf,
org.apache.cxf.service,
org.apache.cxf.ws.addressing,
org.apache.cxf.service.model,
org.w3c.dom,
javax.xml.namespace,
javax.wsdl,
javax.xml.stream,
javax.xml.stream.util,
javax.xml.transform,
javax.wsdl.extensions,
javax.xml.validation,
org.apache.cxf.common.i18n,
javax.xml.bind",
org.apache.cxf.wsdl.http;uses:="org.apache.cxf.wsdl,javax.xml.bind",
org.apache.cxf.wsdl11;
uses:="org.apache.cxf.wsdl,
javax.wsdl.factory,
org.apache.cxf.service.factory,
javax.wsdl.extensions.soap,
org.apache.cxf,
org.apache.cxf.service,
org.apache.cxf.service.model,
org.w3c.dom,
org.apache.cxf.binding,
org.xml.sax,
javax.xml.namespace,
javax.wsdl,
org.apache.cxf.common.xmlschema,
javax.wsdl.xml,
javax.wsdl.extensions,
org.apache.cxf.common.i18n"
Import-Package: bsh;resolution:=optional,com.ibm.wsdl.util.xml;resolut
ion:=optional,com.jamonapi;resolution:=optional,com.sun.msv.grammar;r
esolution:=optional,com.sun.msv.grammar.trex;resolution:=optional,com
.sun.msv.grammar.xmlschema;resolution:=optional,com.sun.msv.reader;re
solution:=optional,com.sun.msv.reader.trex.ng;resolution:=optional,co
m.sun.msv.reader.util;resolution:=optional,com.sun.msv.reader.xmlsche
ma;resolution:=optional,com.sun.msv.util;resolution:=optional,com.sun
.msv.verifier;resolution:=optional,com.sun.msv.verifier.regexp;resolu
tion:=optional,com.sun.msv.verifier.regexp.xmlschema;resolution:=opti
onal,com.sun.net.httpserver;resolution:=optional,com.sun.tools.xjc.re
ader.internalizer;resolution:=optional,com.sun.xml.fastinfoset.sax;re
solution:=optional,com.sun.xml.fastinfoset.stax;resolution:=optional,
edu.emory.mathcs.backport.java.util.concurrent;resolution:=optional,g
roovy.lang;resolution:=optional,javax.activation;resolution:=optional
,javax.annotation;resolution:=optional,javax.crypto;resolution:=optio
nal,javax.crypto.spec;resolution:=optional,javax.ejb;resolution:=opti
onal,javax.el;resolution:=optional,javax.imageio;resolution:=optional
,javax.imageio.stream;resolution:=optional,javax.inject;resolution:=o
ptional,javax.interceptor;resolution:=optional,javax.jms;resolution:=
optional,javax.jws;resolution:=optional,javax.jws.soap;resolution:=op
tional,javax.management;resolution:=optional,javax.management.modelmb
ean;resolution:=optional,javax.management.openmbean;resolution:=optio
nal,javax.management.remote;resolution:=optional,javax.naming;resolut
ion:=optional,javax.net;resolution:=optional,javax.net.ssl;resolution
:=optional,javax.persistence.spi;resolution:=optional,javax.rmi;resol
ution:=optional,javax.security.auth;resolution:=optional,javax.securi
ty.auth.callback;resolution:=optional,javax.security.auth.kerberos;re
solution:=optional,javax.security.auth.login;resolution:=optional,jav
ax.security.auth.x500;resolution:=optional,javax.security.cert;resolu
tion:=optional,javax.sql;resolution:=optional,javax.tools;resolution:
=optional,javax.transaction;resolution:=optional,javax.transaction.xa
;resolution:=optional,javax.validation;resolution:=optional,javax.val
idation.bootstrap;resolution:=optional,javax.validation.metadata;reso
lution:=optional,javax.validation.spi;resolution:=optional,javax.wsdl
;resolution:=optional,javax.wsdl.extensions;resolution:=optional,java
x.wsdl.extensions.http;resolution:=optional,javax.wsdl.extensions.mim
e;resolution:=optional,javax.wsdl.extensions.schema;resolution:=optio
nal,javax.wsdl.extensions.soap;resolution:=optional,javax.wsdl.extens
ions.soap12;resolution:=optional,javax.wsdl.factory;resolution:=optio
nal,javax.wsdl.xml;resolution:=optional,javax.xml.bind;resolution:=op
tional,javax.xml.bind.annotation;resolution:=optional,javax.xml.bind.
annotation.adapters;resolution:=optional,javax.xml.bind.attachment;re
solution:=optional,javax.xml.bind.helpers;resolution:=optional,javax.
xml.bind.util;resolution:=optional,javax.xml.datatype;resolution:=opt
ional,javax.xml.namespace;resolution:=optional,javax.xml.parsers;reso
lution:=optional,javax.xml.soap;resolution:=optional,javax.xml.stream
;resolution:=optional,javax.xml.stream.events;resolution:=optional,ja
vax.xml.stream.util;resolution:=optional,javax.xml.transform;resoluti
on:=optional,javax.xml.transform.dom;resolution:=optional,javax.xml.t
ransform.sax;resolution:=optional,javax.xml.transform.stax;resolution
:=optional,javax.xml.transform.stream;resolution:=optional,javax.xml.
validation;resolution:=optional,javax.xml.ws;resolution:=optional,jav
ax.xml.ws.handler;resolution:=optional,javax.xml.ws.handler.soap;reso
lution:=optional,javax.xml.ws.http;resolution:=optional,javax.xml.ws.
soap;resolution:=optional,javax.xml.ws.spi;resolution:=optional,javax
.xml.ws.spi.http;resolution:=optional,javax.xml.ws.wsaddressing;resol
ution:=optional,javax.xml.xpath;resolution:=optional,jline;resolution
:=optional,junit.framework;resolution:=optional,net.jcip.annotations;
resolution:=optional,net.sf.cglib.asm;resolution:=optional,net.sf.cgl
ib.core;resolution:=optional,net.sf.cglib.proxy;resolution:=optional,
net.sf.cglib.transform.impl;resolution:=optional,org.apache.abdera;re
solution:=optional,org.apache.abdera.factory;resolution:=optional,org
.apache.abdera.model;resolution:=optional,org.apache.abdera.parser;re
solution:=optional,org.apache.abdera.writer;resolution:=optional,org.
apache.aries.blueprint;resolution:=optional,org.apache.aries.blueprin
t.mutable;resolution:=optional,org.apache.axiom.om;resolution:=option
al,org.apache.commons.httpclient;resolution:=optional,org.apache.comm
ons.httpclient.auth;resolution:=optional,org.apache.commons.httpclien
t.methods;resolution:=optional,org.apache.commons.httpclient.params;r
esolution:=optional,org.apache.commons.httpclient.protocol;resolution
:=optional,org.apache.commons.httpclient.util;resolution:=optional,or
g.apache.commons.jxpath;resolution:=optional,org.apache.commons.lang;
resolution:=optional;version="[2.6,3)",org.apache.commons.lang.builde
r;resolution:=optional;version="[2.6,3)",org.apache.commons.logging;r
esolution:=optional,org.apache.commons.pool;resolution:=optional,org.
apache.commons.pool.impl;resolution:=optional,org.apache.commons.ssl;
resolution:=optional,org.apache.cxf;resolution:=optional;version="[2.
7,3)",org.apache.cxf.aegis;resolution:=optional,org.apache.cxf.aegis.
type;resolution:=optional,org.apache.cxf.binding;resolution:=optional
;version="[2.7,3)",org.apache.cxf.binding.soap.model;resolution:=opti
onal;version="[2.7,3)",org.apache.cxf.buslifecycle;resolution:=option
al;version="[2.7,3)",org.apache.cxf.clustering;resolution:=optional;v
ersion="[2.7,3)",org.apache.cxf.configuration.security;resolution:=op
tional;version="[2.7,3)",org.apache.cxf.endpoint;resolution:=optional
;version="[2.7,3)",org.apache.cxf.extension;resolution:=optional;vers
ion="[2.7,3)",org.apache.cxf.feature;resolution:=optional;version="[2
.7,3)",org.apache.cxf.headers;resolution:=optional;version="[2.7,3)",
org.apache.cxf.helpers;resolution:=optional;version="[2.7,3)",org.apa
che.cxf.io;resolution:=optional;version="[2.7,3)",org.apache.cxf.jaxr
s.client;resolution:=optional;version="[2.7,3)",org.apache.cxf.messag
e;resolution:=optional;version="[2.7,3)",org.apache.cxf.phase;resolut
ion:=optional;version="[2.7,3)",org.apache.cxf.security;resolution:=o
ptional;version="[2.7,3)",org.apache.cxf.service;resolution:=optional
;version="[2.7,3)",org.apache.cxf.tools.common;resolution:=optional,o
rg.apache.cxf.tools.validator;resolution:=optional,org.apache.cxf.tra
nsport;resolution:=optional;version="[2.7,3)",org.apache.cxf.ws.addre
ssing;resolution:=optional;version="[2.7,3)",org.apache.cxf.ws.addres
sing.impl;resolution:=optional;version="[2.7,3)",org.apache.cxf.ws.ad
dressing.soap;resolution:=optional;version="[2.7,3)",org.apache.cxf.w
s.mex;resolution:=optional,org.apache.cxf.ws.mex.model._2004_09;resol
ution:=optional,org.apache.geronimo.osgi.registry.api;resolution:=opt
ional,org.apache.log4j;resolution:=optional;version="[1.2,2)",org.apa
che.log4j.jmx;resolution:=optional;version="[1.2,2)",org.apache.log4j
.spi;resolution:=optional;version="[1.2,2)",org.apache.log4j.xml;reso
lution:=optional;version="[1.2,2)",org.apache.mina.core.buffer;resolu
tion:=optional,org.apache.mina.core.filterchain;resolution:=optional,
org.apache.mina.core.future;resolution:=optional,org.apache.mina.core
.service;resolution:=optional,org.apache.mina.core.session;resolution
:=optional,org.apache.mina.filter.codec;resolution:=optional,org.apac
he.mina.filter.logging;resolution:=optional,org.apache.mina.transport
.socket.nio;resolution:=optional,org.apache.velocity;resolution:=opti
onal,org.apache.velocity.app;resolution:=optional,org.apache.velocity
.context;resolution:=optional,org.apache.xml.dtm;resolution:=optional
,org.apache.xml.resolver;resolution:=optional,org.apache.xml.resolver
.helpers;resolution:=optional,org.apache.xml.resolver.tools;resolutio
n:=optional,org.apache.xml.utils;resolution:=optional,org.apache.xmlb
eans;resolution:=optional,org.apache.xpath;resolution:=optional,org.a
pache.xpath.compiler;resolution:=optional,org.apache.xpath.functions;
resolution:=optional,org.apache.xpath.objects;resolution:=optional,or
g.aspectj.bridge;resolution:=optional,org.aspectj.lang;resolution:=op
tional,org.aspectj.lang.annotation;resolution:=optional,org.aspectj.l
ang.reflect;resolution:=optional,org.aspectj.runtime.internal;resolut
ion:=optional,org.aspectj.util;resolution:=optional,org.aspectj.weave
r;resolution:=optional,org.aspectj.weaver.ast;resolution:=optional,or
g.aspectj.weaver.bcel;resolution:=optional,org.aspectj.weaver.interna
l.tools;resolution:=optional,org.aspectj.weaver.loadtime;resolution:=
optional,org.aspectj.weaver.patterns;resolution:=optional,org.aspectj
.weaver.reflect;resolution:=optional,org.aspectj.weaver.tools;resolut
ion:=optional,org.bouncycastle.asn1;resolution:=optional,org.bouncyca
stle.asn1.x509;resolution:=optional,org.bouncycastle.util.encoders;re
solution:=optional,org.bouncycastle.x509.extension;resolution:=option
al,org.codehaus.groovy.control;resolution:=optional,org.dom4j;resolut
ion:=optional,org.dom4j.io;resolution:=optional,org.eclipse.jetty.jmx
;resolution:=optional,org.hibernate;resolution:=optional,org.hibernat
e.cache;resolution:=optional,org.hibernate.cache.access;resolution:=o
ptional,org.hibernate.cfg;resolution:=optional,org.hibernate.impl;res
olution:=optional,org.hibernate.stat;resolution:=optional,org.hiberna
te.transaction;resolution:=optional,org.hibernate.validator.messagein
terpolation;resolution:=optional,org.hibernate.validator.resourceload
ing;resolution:=optional,org.ietf.jgss;resolution:=optional,org.jruby
;resolution:=optional,org.jruby.ast;resolution:=optional,org.jruby.ex
ceptions;resolution:=optional,org.jruby.javasupport;resolution:=optio
nal,org.jruby.runtime;resolution:=optional,org.jruby.runtime.builtin;
resolution:=optional,org.junit;resolution:=optional,org.jvnet.fastinf
oset;resolution:=optional,org.jvnet.staxex;resolution:=optional,org.m
ortbay.log;resolution:=optional,org.mortbay.util.ajax;resolution:=opt
ional,org.omg.CORBA;resolution:=optional,org.osgi.framework;resolutio
n:=optional,org.osgi.service.blueprint.container;resolution:=optional
,org.osgi.service.blueprint.reflect;resolution:=optional,org.osgi.ser
vice.cm;resolution:=optional,org.osgi.service.log;resolution:=optiona
l,org.osgi.util.tracker;resolution:=optional,org.owasp.esapi;resoluti
on:=optional,org.relaxng.datatype;resolution:=optional,org.springfram
ework.instrument;resolution:=optional,org.springframework.web.context
;resolution:=optional,org.springframework.web.context.support;resolut
ion:=optional,org.springframework.web.servlet;resolution:=optional,or
g.springframework.web.servlet.handler;resolution:=optional,org.spring
framework.web.servlet.mvc;resolution:=optional,org.w3c.dom;resolution
:=optional,org.w3c.dom.bootstrap;resolution:=optional,org.w3c.dom.ls;
resolution:=optional,org.xml.sax;resolution:=optional,org.xml.sax.ext
;resolution:=optional,org.xml.sax.helpers;resolution:=optional,sun.mi
sc;resolution:=optional
Require-Bundle: javax.wsdl;bundle-version="1.6.2"
org.apache.cxf.ws.addressing,
org.apache.cxf.ws.addressing.v200403,
org.apache.cxf.ws.addressing.v200408,
org.apache.cxf.ws.addressing.wsdl,
org.apache.cxf.wsdl,
org.apache.cxf.wsdl.http,
org.apache.cxf.wsdl11
Require-Bundle: javax.wsdl;bundle-version="1.6.2",
org.apache.log4j

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