Compare commits
140 Commits
release/5.
...
patch/5.5.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d41682b4a | ||
|
|
106c695060 | ||
|
|
afd9a6c56b | ||
|
|
c513c98236 | ||
|
|
1d5252c550 | ||
|
|
f35625e85a | ||
|
|
f802f0b758 | ||
|
|
f28b11b1a3 | ||
|
|
465aab2360 | ||
|
|
fed4759fe1 | ||
|
|
5976e72b49 | ||
|
|
2b75569380 | ||
|
|
5834c07bea | ||
|
|
208f7fc83e | ||
|
|
baab68eb1e | ||
|
|
4b2c568319 | ||
|
|
e190a5f9c8 | ||
|
|
9202b29530 | ||
|
|
95d4686f5f | ||
|
|
e43504c1e7 | ||
|
|
7bf2a71a76 | ||
|
|
45302a3aba | ||
|
|
809bce4541 | ||
|
|
e9f4cbc03a | ||
|
|
62df192236 | ||
|
|
505a839810 | ||
|
|
e85495c525 | ||
|
|
35440834fb | ||
|
|
f12727922d | ||
|
|
c204e8e185 | ||
|
|
99db02c243 | ||
|
|
509fba3335 | ||
|
|
fe8acbae92 | ||
|
|
1686ee5be2 | ||
|
|
9f3bf52a68 | ||
|
|
b0aea33520 | ||
|
|
0561cad3bc | ||
|
|
fb226156ff | ||
|
|
53444e429c | ||
|
|
9eb9d15a6c | ||
|
|
a645e59e3d | ||
|
|
3d592205ab | ||
|
|
cfb6993fcd | ||
|
|
df16c70e69 | ||
|
|
da0d7bd1cc | ||
|
|
794caf8c6c | ||
|
|
7a6ccb2366 | ||
|
|
c9f09384bf | ||
|
|
469ee32111 | ||
|
|
b0e5e9a0fa | ||
|
|
02bc637529 | ||
|
|
2eaecae49f | ||
|
|
80430a3dd6 | ||
|
|
11bf320e70 | ||
|
|
e9f88d3313 | ||
|
|
1c6f8542d7 | ||
|
|
8d3b0867b0 | ||
|
|
062c91297d | ||
|
|
7b373cd9df | ||
|
|
159ab9f981 | ||
|
|
e6d1dfb530 | ||
|
|
a64db65fdb | ||
|
|
9a95b3aae6 | ||
|
|
88df154117 | ||
|
|
585a198b7f | ||
|
|
7f862712bc | ||
|
|
717f74dd8a | ||
|
|
8a370f3641 | ||
|
|
86790ff621 | ||
|
|
b6830a6ba2 | ||
|
|
033f6a84bb | ||
|
|
be22f14104 | ||
|
|
86c6f96350 | ||
|
|
c38b8e752a | ||
|
|
9342b968e3 | ||
|
|
f7be7b8bbd | ||
|
|
0d666ae58c | ||
|
|
67dbf5e7c5 | ||
|
|
348d956c33 | ||
|
|
eb7d8a0f1b | ||
|
|
f4d46d2045 | ||
|
|
f381a7f26a | ||
|
|
7a09eff554 | ||
|
|
c9fa3c3afc | ||
|
|
4aa89418cb | ||
|
|
cd3e9f59ed | ||
|
|
8da1e60dda | ||
|
|
402d094dd7 | ||
|
|
f36c02c8d3 | ||
|
|
7bfb9b1732 | ||
|
|
2b3cbc27f1 | ||
|
|
eed17c2430 | ||
|
|
bab72882fd | ||
|
|
37839b4ba5 | ||
|
|
950fa10187 | ||
|
|
5c2e36af1a | ||
|
|
257a355221 | ||
|
|
c52cd60499 | ||
|
|
d59c326fa2 | ||
|
|
f2e64716d0 | ||
|
|
814652e8b6 | ||
|
|
a38a115342 | ||
|
|
2afe4e814c | ||
|
|
076f4af3b2 | ||
|
|
3d627f8c7d | ||
|
|
fe020516e1 | ||
|
|
15eb6a75b1 | ||
|
|
a274a01b51 | ||
|
|
e9b125137c | ||
|
|
715a41790e | ||
|
|
e00dec641c | ||
|
|
2fee734607 | ||
|
|
4a88151f0b | ||
|
|
49d4953d63 | ||
|
|
619557cdf0 | ||
|
|
f7a2496b37 | ||
|
|
d4050cf8eb | ||
|
|
ee4b44f33f | ||
|
|
3d833aa131 | ||
|
|
36e479f2ed | ||
|
|
923800b725 | ||
|
|
631ecba267 | ||
|
|
6f25e08963 | ||
|
|
b124c9dd5c | ||
|
|
fe6d1e6dd9 | ||
|
|
6ad5227165 | ||
|
|
f735b9b1a7 | ||
|
|
3352bcf8db | ||
|
|
726dde67df | ||
|
|
da6cf54781 | ||
|
|
74955b201b | ||
|
|
e620c9fa6d | ||
|
|
c9a02c2b70 | ||
|
|
9fc8e76d9e | ||
|
|
13a6bc5642 | ||
|
|
184a0173ae | ||
|
|
0b5d233989 | ||
|
|
53e0ee8517 | ||
|
|
f10265b81b | ||
|
|
8c3e263d19 |
BIN
main/plugins/org.talend.common.ui.runtime/icons1/map.gif
Normal file
BIN
main/plugins/org.talend.common.ui.runtime/icons1/map.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
BIN
main/plugins/org.talend.common.ui.runtime/icons1/reduce.gif
Normal file
BIN
main/plugins/org.talend.common.ui.runtime/icons1/reduce.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
@@ -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$
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
talend.version=5.5.1
|
||||
talend.version=5.5.2
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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$
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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$
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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())));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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$
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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 }),
|
||||
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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$
|
||||
|
||||
@@ -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$
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -66,4 +66,6 @@ public interface IMigrationToolService extends IService {
|
||||
*/
|
||||
public void updateMigrationSystem(org.talend.core.model.properties.Project project, boolean persistence);
|
||||
|
||||
public String getTaskId();
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
+ "]";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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...
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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$
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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}'
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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$
|
||||
|
||||
@@ -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$
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user