Compare commits

..

1 Commits

Author SHA1 Message Date
jiezhang-tlnd
f5953e48af force update time stamp (#5935) 2023-01-17 16:11:13 +08:00
57 changed files with 393 additions and 2229 deletions

View File

@@ -9,7 +9,4 @@
</parent>
<artifactId>org.talend.utils.feature</artifactId>
<packaging>eclipse-feature</packaging>
<properties>
<tycho.buildtimestamp.format>${timestamp}</tycho.buildtimestamp.format>
</properties>
</project>

View File

@@ -283,7 +283,6 @@
<KEYWORD1>smallint</KEYWORD1>
<KEYWORD1>smallmoney</KEYWORD1>
<KEYWORD1>text</KEYWORD1>
<KEYWORD1>TIME</KEYWORD1>
<KEYWORD1>timestamp</KEYWORD1>
<KEYWORD1>tinyint</KEYWORD1>
<KEYWORD1>uniqueidentifier</KEYWORD1>

View File

@@ -285,30 +285,6 @@
type="INFORMIX">
</DBType>
</RepositoryComponent>
<RepositoryComponent
name="INGRES"
withSchema="true"
input="tIngresInput"
output="tIngresOutput">
<Item
clazz="org.talend.core.model.properties.DatabaseConnectionItem">
</Item>
<DBType
type="INGRES">
</DBType>
</RepositoryComponent>
<RepositoryComponent
name="VECTORWISE"
withSchema="true"
input="tVectorWiseInput"
output="tVectorWiseOutput">
<Item
clazz="org.talend.core.model.properties.DatabaseConnectionItem">
</Item>
<DBType
type="VECTORWISE">
</DBType>
</RepositoryComponent>
<RepositoryComponent
name="JAVADB"
withSchema="true"

View File

@@ -153,7 +153,6 @@ import org.talend.core.runtime.services.IMavenUIService;
import org.talend.core.runtime.util.ItemDateParser;
import org.talend.core.runtime.util.JavaHomeUtil;
import org.talend.core.runtime.util.SharedStudioUtils;
import org.talend.core.service.IComponentJsonformGeneratorService;
import org.talend.core.service.ICoreUIService;
import org.talend.core.service.IDetectCVEService;
import org.talend.core.utils.CodesJarResourceCache;
@@ -2380,15 +2379,6 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
}
String str[] = new String[] { getRepositoryContext().getUser() + "", projectManager.getCurrentProject() + "" }; //$NON-NLS-1$ //$NON-NLS-2$
log.info(Messages.getString("ProxyRepositoryFactory.log.loggedOn", str)); //$NON-NLS-1$
// no performance impact for studio or commandline
if (GlobalServiceRegister.getDefault().isServiceRegistered(IComponentJsonformGeneratorService.class)) {
IComponentJsonformGeneratorService jsonformSvc = GlobalServiceRegister.getDefault().getService(IComponentJsonformGeneratorService.class);
if (jsonformSvc != null && IComponentJsonformGeneratorService.isEnabled()) {
jsonformSvc.generate(null);
}
}
} catch (LoginException e) {
if (!LoginException.RESTART.equals(e.getKey())) {
try {

View File

@@ -1,216 +0,0 @@
<?xml version="1.0"?>
<mapping>
<dbms product="INGRES" id="ingres_id" label="Mapping Ingres"
default="true">
<dbTypes>
<dbType type="ANSIDATE" ignoreLen="true" ignorePre="true" />
<dbType type="BOOLEAN" ignoreLen="true" ignorePre="true" />
<dbType type="BIGINT" ignoreLen="true" ignorePre="true" />
<dbType type="BYTE" ignoreLen="true" ignorePre="true" />
<dbType type="BYTE VARYING" ignoreLen="true" ignorePre="true" />
<dbType type="C" ignoreLen="true" ignorePre="true" />
<dbType type="CHAR" ignorePre="true" />
<dbType type="DECIMAL" defaultLength="20" defaultPrecision="10" />
<dbType type="DATE" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT4" ignoreLen="true" ignorePre="true" />
<dbType type="INTEGER" ignoreLen="true" ignorePre="true" />
<dbType type="INGRESDATE" ignoreLen="true" ignorePre="true" />
<dbType type="INTERVAL" ignoreLen="true" ignorePre="true" />
<dbType type="LONG NVARCHAR" ignorePre="true" />
<dbType type="LONG VARCHAR" ignoreLen="true" ignorePre="true" />
<dbType type="MONEY" ignoreLen="true" ignorePre="true" />
<dbType type="NCHAR" ignorePre="true" defaultLength="10"/>
<dbType type="NVARCHAR" ignorePre="true" defaultLength="10"/>
<dbType type="OBJECT_KEY" ignoreLen="true" ignorePre="true"/>
<dbType type="SMALLINT" ignoreLen="true" ignorePre="true"/>
<dbType type="TEXT" ignoreLen="true" ignorePre="true" />
<dbType type="TINYINT" ignoreLen="true" ignorePre="true" />
<dbType type="TIME" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMP" ignoreLen="true" ignorePre="true"/>
<dbType type="TABLE_KEY" ignoreLen="true" ignorePre="true" />
<dbType type="VARCHAR" default="true" defaultLength="1200" ignorePre="true"/>
</dbTypes>
<language name="java">
<talendToDbTypes><!-- Adviced mappings -->
<talendType type="id_List"/>
<talendType type="id_Boolean">
<dbType type="BOOLEAN" default="true" />
</talendType>
<talendType type="id_Byte">
<dbType type="BYTE" default="true" />
<dbType type="BYTE VARYING" />
</talendType>
<talendType type="id_byte[]">
</talendType>
<talendType type="id_Character">
<dbType type="CHAR" default="true" />
<dbType type="VARCHAR"/>
<dbType type="C"/>
<dbType type="TEXT"/>
<dbType type="LONG VARCHAR"/>
<dbType type="NCHAR"/>
<dbType type="NVARCHAR"/>
<dbType type="LONG NVARCHAR"/>
</talendType>
<talendType type="id_Date">
<dbType type="DATE" default="true" />
<dbType type="ANSIDATE" />
<dbType type="INGRESDATE" />
<dbType type="TIME" />
<dbType type="TIMESTAMP" />
<dbType type="INTERVAL"/>
</talendType>
<talendType type="id_BigDecimal">
<dbType type="DECIMAL" default="true" />
<dbType type="FLOAT4" />
<dbType type="FLOAT"/>
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Double">
<dbType type="FLOAT" default="true" />
<dbType type="FLOAT4" />
<dbType type="DECIMAL"/>
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Float">
<dbType type="FLOAT4" default="true" />
<dbType type="FLOAT"/>
<dbType type="DECIMAL" />
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Integer">
<dbType type="INTEGER" default="true" />
<dbType type="BIGINT" />
<dbType type="SMALLINT"/>
<dbType type="TINYINT"/>
</talendType>
<talendType type="id_Long">
<dbType type="BIGINT" default="true" />
<dbType type="INTEGER"/>
<dbType type="SMALLINT"/>
<dbType type="TINYINT"/>
</talendType>
<talendType type="id_Object">
<dbType type="MONEY" default="true"/>
<dbType type="OBJECT_KEY" />
<dbType type="TABLE_KEY" />
</talendType>
<talendType type="id_Short">
<dbType type="SMALLINT" default="true" />
<dbType type="INTEGER" />
<dbType type="BIGINT"/>
<dbType type="TINYINT" />
</talendType>
<talendType type="id_String">
<dbType type="VARCHAR" default="true" />
<dbType type="LONG VARCHAR" />
<dbType type="NCHAR"/>
<dbType type="NVARCHAR" />
<dbType type="LONG NVARCHAR" />
<dbType type="TEXT" />
<dbType type="C"/>
<dbType type="CHAR"/>
</talendType>
</talendToDbTypes>
<dbToTalendTypes>
<dbType type="ANSIDATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="BOOLEAN">
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BIGINT">
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="BYTE">
<talendType type="id_Byte" default="true" />
</dbType>
<dbType type="BYTE VARYING">
<talendType type="id_Byte" default="true" />
</dbType>
<dbType type="C">
<talendType type="id_String" default="true" />
<talendType type="id_Character"/>
</dbType>
<dbType type="CHAR">
<talendType type="id_String" default="true" />
<talendType type="id_Character"/>
</dbType>
<dbType type="DECIMAL">
<talendType type="id_Float"/>
<talendType type="id_BigDecimal" default="true"/>
</dbType>
<dbType type="DATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="FLOAT">
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="FLOAT4">
<talendType type="id_Float" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="INTEGER">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
<talendType type="id_Short"/>
</dbType>
<dbType type="INGRESDATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="INTERVAL">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="LONG NVARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="LONG VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="MONEY">
<talendType type="id_Float" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="NCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="NVARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="OBJECT_KEY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="SMALLINT">
<talendType type="id_Short" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Long"/>
</dbType>
<dbType type="TEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="TINYINT">
<talendType type="id_Byte" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Short"/>
<talendType type="id_Long" />
</dbType>
<dbType type="TIME">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIMESTAMP">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TABLE_KEY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
</dbToTalendTypes>
</language>
</dbms>
</mapping>

View File

@@ -1,211 +0,0 @@
<?xml version="1.0"?>
<mapping>
<dbms product="VECTORWISE" id="vectorwise_id" label="Mapping VectorWise"
default="true">
<dbTypes>
<dbType type="ANSIDATE" ignoreLen="true" ignorePre="true" />
<dbType type="BIGINT" ignoreLen="true" ignorePre="true" />
<dbType type="BYTE" ignoreLen="true" ignorePre="true" />
<dbType type="BYTE VARYING" ignoreLen="true" ignorePre="true" />
<dbType type="C" ignoreLen="true" ignorePre="true" />
<dbType type="CHAR" ignorePre="true" />
<dbType type="DECIMAL" defaultLength="20" defaultPrecision="10" />
<dbType type="DATE" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT4" ignoreLen="true" ignorePre="true" />
<dbType type="INTEGER" ignoreLen="true" ignorePre="true" />
<dbType type="INGRESDATE" ignoreLen="true" ignorePre="true" />
<dbType type="INTERVAL" ignoreLen="true" ignorePre="true" />
<dbType type="LONG NVARCHAR" ignorePre="true" />
<dbType type="LONG VARCHAR" ignoreLen="true" ignorePre="true" />
<dbType type="MONEY" ignoreLen="true" ignorePre="true" />
<dbType type="NCHAR" ignorePre="true" defaultLength="10"/>
<dbType type="NVARCHAR" ignorePre="true" defaultLength="10"/>
<dbType type="OBJECT_KEY" ignoreLen="true" ignorePre="true"/>
<dbType type="SMALLINT" ignoreLen="true" ignorePre="true"/>
<dbType type="TEXT" ignoreLen="true" ignorePre="true" />
<dbType type="TINYINT" ignoreLen="true" ignorePre="true" />
<dbType type="TIME" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMP" ignoreLen="true" ignorePre="true"/>
<dbType type="TABLE_KEY" ignoreLen="true" ignorePre="true" />
<dbType type="VARCHAR" default="true" defaultLength="1200" ignorePre="true"/>
</dbTypes>
<language name="java">
<talendToDbTypes><!-- Adviced mappings -->
<talendType type="id_List"/>
<talendType type="id_Boolean">
</talendType>
<talendType type="id_Byte">
<dbType type="BYTE" default="true" />
<dbType type="BYTE VARYING" />
</talendType>
<talendType type="id_byte[]">
</talendType>
<talendType type="id_Character">
<dbType type="CHAR" default="true" />
<dbType type="VARCHAR"/>
<dbType type="C"/>
<dbType type="TEXT"/>
<dbType type="LONG VARCHAR"/>
<dbType type="NCHAR"/>
<dbType type="NVARCHAR"/>
<dbType type="LONG NVARCHAR"/>
</talendType>
<talendType type="id_Date">
<dbType type="ANSIDATE" default="true"/>
<dbType type="DATE"/>
<dbType type="INGRESDATE" />
<dbType type="TIME" />
<dbType type="TIMESTAMP" />
<dbType type="INTERVAL"/>
</talendType>
<talendType type="id_BigDecimal">
<dbType type="DECIMAL" default="true" />
<dbType type="FLOAT4" />
<dbType type="FLOAT"/>
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Double">
<dbType type="FLOAT" default="true" />
<dbType type="FLOAT4" />
<dbType type="DECIMAL"/>
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Float">
<dbType type="FLOAT4" default="true" />
<dbType type="FLOAT"/>
<dbType type="DECIMAL" />
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Integer">
<dbType type="INTEGER" default="true" />
<dbType type="BIGINT" />
<dbType type="SMALLINT"/>
<dbType type="TINYINT"/>
</talendType>
<talendType type="id_Long">
<dbType type="BIGINT" default="true" />
<dbType type="INTEGER"/>
<dbType type="SMALLINT"/>
<dbType type="TINYINT"/>
</talendType>
<talendType type="id_Object">
<dbType type="MONEY" default="true"/>
<dbType type="OBJECT_KEY" />
<dbType type="TABLE_KEY" />
</talendType>
<talendType type="id_Short">
<dbType type="SMALLINT" default="true" />
<dbType type="INTEGER" />
<dbType type="BIGINT"/>
<dbType type="TINYINT" />
</talendType>
<talendType type="id_String">
<dbType type="VARCHAR" default="true" />
<dbType type="LONG VARCHAR" />
<dbType type="NCHAR"/>
<dbType type="NVARCHAR" />
<dbType type="LONG NVARCHAR" />
<dbType type="TEXT" />
<dbType type="C"/>
<dbType type="CHAR"/>
</talendType>
</talendToDbTypes>
<dbToTalendTypes>
<dbType type="ANSIDATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="BIGINT">
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="BYTE">
<talendType type="id_Byte" default="true" />
</dbType>
<dbType type="BYTE VARYING">
<talendType type="id_Byte" default="true" />
</dbType>
<dbType type="C">
<talendType type="id_String" default="true" />
<talendType type="id_Character"/>
</dbType>
<dbType type="CHAR">
<talendType type="id_String" default="true" />
<talendType type="id_Character"/>
</dbType>
<dbType type="DECIMAL">
<talendType type="id_Float"/>
<talendType type="id_BigDecimal" default="true"/>
</dbType>
<dbType type="DATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="FLOAT">
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="FLOAT4">
<talendType type="id_Float" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="INTEGER">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
<talendType type="id_Short"/>
</dbType>
<dbType type="INGRESDATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="INTERVAL">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="LONG NVARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="LONG VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="MONEY">
<talendType type="id_Float" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="NCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="NVARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="OBJECT_KEY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="SMALLINT">
<talendType type="id_Short" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Long"/>
</dbType>
<dbType type="TEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="TINYINT">
<talendType type="id_Byte" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Short"/>
<talendType type="id_Long" />
</dbType>
<dbType type="TIME">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIMESTAMP">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TABLE_KEY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
</dbToTalendTypes>
</language>
</dbms>
</mapping>

View File

@@ -34,9 +34,6 @@ public enum EDatabase4DriverClassName {
INFORMIX(EDatabaseTypeName.INFORMIX, "com.informix.jdbc.IfxDriver"), //$NON-NLS-1$
INGRES(EDatabaseTypeName.INGRES, "com.ingres.jdbc.IngresDriver"),
VECTORWISE(EDatabaseTypeName.VECTORWISE, "com.ingres.jdbc.IngresDriver"),
JAVADB_DERBYCLIENT(EDatabaseTypeName.JAVADB_DERBYCLIENT, "org.apache.derby.jdbc.ClientDriver"), //$NON-NLS-1$
JAVADB_EMBEDED(EDatabaseTypeName.JAVADB_EMBEDED, "org.apache.derby.jdbc.EmbeddedDriver"), //$NON-NLS-1$
JAVADB_JCCJDBC(EDatabaseTypeName.JAVADB_JCCJDBC, "com.ibm.db2.jcc.DB2Driver"), //$NON-NLS-1$

View File

@@ -347,7 +347,8 @@ public enum EDatabaseTypeName {
isSupport = isSupportODBC;
} else if (EDatabaseTypeName.SAS == this) {
isSupport = false;
} else if (EDatabaseTypeName.INTERBASE == this || EDatabaseTypeName.PARACCEL == this) {
} else if (EDatabaseTypeName.INGRES == this || EDatabaseTypeName.INTERBASE == this || EDatabaseTypeName.VECTORWISE == this
|| EDatabaseTypeName.PARACCEL == this) {
return false;
}

View File

@@ -112,13 +112,6 @@ public enum EDatabaseConnTemplate {
SQLITE(new DbConnStr(EDatabaseTypeName.SQLITE, //
"jdbc:sqlite:/<filename>")), //$NON-NLS-1$
INGRES(new DbConnStr(EDatabaseTypeName.INGRES, //
"jdbc:ingres://<host>:<port>/<sid>;<property>", //$NON-NLS-1$
"II7")), //$NON-NLS-1$
VECTORWISE(new DbConnStr(EDatabaseTypeName.VECTORWISE, //
"jdbc:ingres://<host>:<port>/<sid>;<property>", //$NON-NLS-1$
"II7")),
FIREBIRD(new DbConnStr(EDatabaseTypeName.FIREBIRD, //
"jdbc:firebirdsql:<host>/<port>:<filename>?<property>", //$NON-NLS-1$
"3050")), //$NON-NLS-1$
@@ -428,8 +421,6 @@ public enum EDatabaseConnTemplate {
case PSQL:
case PLUSPSQL:
case GREENPLUM:
case INGRES:
case VECTORWISE:
case FIREBIRD:
case JAVADB_EMBEDED:
case JAVADB_JCCJDBC:
@@ -456,8 +447,6 @@ public enum EDatabaseConnTemplate {
case SYBASEASE_16_SA:
case IBMDB2:
case IBMDB2_ZOS:
case INGRES:
case VECTORWISE:
case MSSQL:
case INFORMIX:
case TERADATA:

View File

@@ -55,7 +55,7 @@ public enum EDatabaseVersion4Drivers {
//
JAVADB_EMBEDED(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_EMBEDED, "derby.jar")), //$NON-NLS-1$
SQLITE(new DbVersion4Drivers(EDatabaseTypeName.SQLITE, "sqlite-jdbc-3.40.0.0.jar")), //$NON-NLS-1$
SQLITE(new DbVersion4Drivers(EDatabaseTypeName.SQLITE, "sqlitejdbc-v056.jar")), //$NON-NLS-1$
FIREBIRD(new DbVersion4Drivers(EDatabaseTypeName.FIREBIRD, "jaybird-full-2.1.1.jar")), //$NON-NLS-1$
TERADATA(new DbVersion4Drivers(EDatabaseTypeName.TERADATA,
new String[] { "terajdbc4-17.10.00.27.jar" })), //$NON-NLS-1$
@@ -108,8 +108,6 @@ public enum EDatabaseVersion4Drivers {
EXASOL(new DbVersion4Drivers(EDatabaseTypeName.EXASOL, "exajdbc-6.0.9302.jar")), //$NON-NLS-1$
MAXDB(new DbVersion4Drivers(EDatabaseTypeName.MAXDB, "sapdbc.jar")), //$NON-NLS-1$
INGRES(new DbVersion4Drivers(EDatabaseTypeName.INGRES, "iijdbc-10.2-4.1.10.jar")),
VECTORWISE(new DbVersion4Drivers(EDatabaseTypeName.VECTORWISE, "iijdbc-10.2-4.1.10.jar")),
// HIVE(new DbVersion4Drivers(EDatabaseTypeName.HIVE, "STANDALONE", "STANDALONE", new String[] {
// "hive-jdbc-0.8.1.jar",
// "hive-metastore-0.8.1.jar", "hive-exec-0.8.1.jar", "hive-service-0.8.1.jar", "libfb303_new.jar",

View File

@@ -293,8 +293,7 @@ public final class MetadataToolHelper {
boolean isKeyword = KeywordsValidator.isKeyword(originalColumnName);
StringBuilder sb = new StringBuilder();
// keep charBit length align with the length of originalColumnName (StringBuilder)
int[] charBit = new int[originalColumnName.length()];
int[] charBit = new int[columnName.length()];
if (!isKeyword) {
boolean isAllowSpecific = isAllowSpecificCharacters();

View File

@@ -433,16 +433,6 @@ public class ComponentToRepositoryProperty {
connection.setDatabaseType(EDatabaseTypeName.IBMDB2.getDisplayName());
connection.setProductId(EDatabaseTypeName.IBMDB2.getProduct());
}
// Ingres
else if (EDatabaseTypeName.INGRES.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.INGRES.getDisplayName());
connection.setProductId(EDatabaseTypeName.INGRES.getProduct());
}
// VECTORWISE
else if (EDatabaseTypeName.VECTORWISE.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.VECTORWISE.getDisplayName());
connection.setProductId(EDatabaseTypeName.VECTORWISE.getProduct());
}
// Sqlite
else if (EDatabaseTypeName.SQLITE.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.SQLITE.getDisplayName());

View File

@@ -18,7 +18,6 @@ import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import org.apache.commons.codec.binary.StringUtils;
import org.talend.components.api.properties.ComponentProperties;
import org.talend.core.model.components.IComponent;
import org.talend.core.model.components.IMultipleComponentManager;
@@ -510,7 +509,7 @@ public abstract class AbstractNode implements INode {
}
for (String key : childParameters.keySet()) {
IElementParameter param = childParameters.get(key);
if (StringUtils.equals(name, param.getName())) {
if (param.getName().equals(name)) {
return param;
}
}
@@ -677,8 +676,7 @@ public abstract class AbstractNode implements INode {
return null;
}
for (IMetadataTable table : metadataList) {
String attachedConnector = table.getAttachedConnector();
if (attachedConnector != null && attachedConnector.equals(connector)) {
if (table.getAttachedConnector().equals(connector)) {
return table;
}
}

View File

@@ -38,7 +38,6 @@ public enum EParameterFieldType {
SCHEMA_XPATH_QUERYS,
QUERYSTORE_TYPE,
GUESS_SCHEMA,
DYNAMIC_GUESS_SCHEMA,
PROPERTY_TYPE,
EXTERNAL,
FILE,

View File

@@ -655,9 +655,4 @@ ItemAnalysisReportManager.Warning.message=Can't run a new analysis now. Wait for
AnalysisReportAccessDialog.shellTitle=Project analysis
AnalysisReportAccessDialog.generateSuccess=Project analysis completed successfully.
AnalysisReportAccessDialog.completeReportAvailable=Check the report
AnalysisReportAccessDialog.accessReport=here
AbstractPomTemplateProjectSettingPage.defaultTabLabel=Default
AbstractPomTemplateProjectSettingPage.customTabLabel=Custom
AbstractPomTemplateProjectSettingPage.previewButton=Preview
AbstractPomTemplateProjectSettingPage.previewButtonTip=Preview the complete customized project POM settings.
AbstractPomTemplateProjectSettingPage.learnMoreLink=Learn more
AnalysisReportAccessDialog.accessReport=here

View File

@@ -1,183 +0,0 @@
// ============================================================================
//
// Copyright (C) 2006-2021 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.runtime.projectsetting;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.Hyperlink;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.runtime.i18n.Messages;
import org.talend.repository.model.IProxyRepositoryFactory;
public abstract class AbstractPomTemplateProjectSettingPage extends AbstractProjectSettingPage {
private static final Color COLOR_LINK = new Color(null, 0, 0, 255);
protected StyledText defaultText;
protected StyledText customText;
private boolean isDefaultPresentedForScriptTxt = false;
private boolean readonly;
public AbstractPomTemplateProjectSettingPage() {
super();
IProxyRepositoryFactory factory = CoreRuntimePlugin.getInstance().getProxyRepositoryFactory();
readonly = factory.isUserReadOnlyOnCurrentProject();
}
protected boolean isReadonly() {
return readonly;
}
public void setReadonly(boolean readonly) {
this.readonly = readonly;
}
protected abstract String getPreferenceKey();
protected StyledText getScriptTxt() {
return customText;
}
@Override
protected Control createContents(Composite p) {
Composite parent = (Composite) super.createContents(p);
Composite noteComposite = new Composite(parent, SWT.NONE);
noteComposite.setLayout(new GridLayout(2, false));
Label scriptLabel = new Label(noteComposite, SWT.NONE);
String headerMessages = getHeaderMessage();
scriptLabel.setText(headerMessages);
Hyperlink link = new Hyperlink(noteComposite, SWT.NONE);
link.setText(Messages.getString("AbstractPomTemplateProjectSettingPage.learnMoreLink")); //$NON-NLS-1$
link.setUnderlined(true);
link.setForeground(COLOR_LINK);
link.addHyperlinkListener(new HyperlinkAdapter() {
@Override
public void linkActivated(HyperlinkEvent e) {
Program.launch(getMoreInfoUrl());
}
});
CTabFolder tabFolder = new CTabFolder(parent, SWT.BORDER);
// tabFolder.setTabPosition(SWT.BOTTOM);
tabFolder.setSimple(false);
GridData data = new GridData(GridData.FILL, GridData.FILL, true, true);
tabFolder.setLayoutData(data);
data.heightHint = 280;
data.minimumHeight = 280;
data.widthHint = 500;
data.minimumWidth = 500;
CTabItem defaultTabItem = new CTabItem(tabFolder, SWT.NULL);
defaultTabItem.setText(Messages.getString("AbstractPomTemplateProjectSettingPage.defaultTabLabel")); //$NON-NLS-1$
CTabItem customTabItem = new CTabItem(tabFolder, SWT.NULL);
customTabItem.setText(Messages.getString("AbstractPomTemplateProjectSettingPage.customTabLabel")); //$NON-NLS-1$
tabFolder.setSelection(defaultTabItem);
int style = SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL;
defaultText = new StyledText(tabFolder, style);
defaultText.setText(getDefaultText());
defaultText.setBackground(new Color(null, 233, 233, 233));
defaultText.setEditable(false);
defaultTabItem.setControl(defaultText);
customText = new StyledText(tabFolder, style);
customText.setText(getCustomText());
customText.setEditable(!isReadonly());
customTabItem.setControl(customText);
customText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
isDefaultPresentedForScriptTxt = false;
}
});
Button preview = new Button(parent, SWT.NONE);
preview.setText(Messages.getString("AbstractPomTemplateProjectSettingPage.previewButton")); //$NON-NLS-1$
preview.setToolTipText(Messages.getString("AbstractPomTemplateProjectSettingPage.previewButtonTip")); //$NON-NLS-1$
preview.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
checkModel(true);
}
});
return parent;
}
protected abstract String getHeaderMessage();
protected abstract String getDefaultText();
protected String getCustomText() {
return getPreferenceStore().getString(getPreferenceKey());
}
protected abstract boolean checkModel(boolean preview);
protected abstract String getMoreInfoUrl();
@Override
protected void performDefaults() {
super.performDefaults();
if (customText != null && !customText.isDisposed()) {
isDefaultPresentedForScriptTxt = true;
customText.setText(getPreferenceStore().getDefaultString(getPreferenceKey()));
}
}
@Override
public boolean performOk() {
boolean ok = super.performOk();
if (customText != null && !customText.isDisposed()) {
if (isDefaultPresentedForScriptTxt) {
getPreferenceStore().setToDefault(getPreferenceKey());
return ok;
}
if (!checkModel(false)) {
return false;
}
getPreferenceStore().setValue(getPreferenceKey(), customText.getText());
}
return ok;
}
}

View File

@@ -60,8 +60,6 @@ public interface IProjectSettingTemplateConstants {
final static String PROJECT_TEMPLATE_FILE_NAME = "pom_project_template.xml";
final static String PROJECT_CUSTOM_TEMPLATE_FILE_NAME = "pom_project_custom_template.xml";
final static String MAVEN_USER_SETTING_TEMPLATE_FILE_NAME = "maven_user_settings.xml";
/*

View File

@@ -1,66 +0,0 @@
// ============================================================================
//
// Copyright (C) 2006-2023 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.runtime.projectsetting;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
public class PomPreviewDialog extends Dialog {
private String title;
private String content;
public PomPreviewDialog(Shell parentShell, String title, String content) {
super(parentShell);
this.title = title;
this.content = content;
setShellStyle(getShellStyle() | SWT.RESIZE);
}
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText(title);
}
@Override
protected Control createDialogArea(Composite parent) {
Composite composite = (Composite) super.createDialogArea(parent);
GridData data = new GridData(GridData.FILL, GridData.FILL, true, true);
data.heightHint = 280;
data.minimumHeight = 1000;
data.widthHint = 500;
data.minimumWidth = 1100;
composite.setLayoutData(data);
StyledText text = new StyledText(composite, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
text.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
text.setText(content);
text.setEditable(false);
return composite;
}
@Override
protected void createButtonsForButtonBar(Composite parent) {
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
}
}

View File

@@ -1,64 +0,0 @@
// ============================================================================
//
// Copyright (C) 2006-2023 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 java.io.File;
import org.talend.commons.CommonsPlugin;
import org.talend.core.IService;
/**
* @author bhe created on Jan 19, 2023
*
*/
public interface IComponentJsonformGeneratorService extends IService {
/**
* System property to enable whether to generate jsonform or not, not enabled by default
*/
public static final String JSONFORM_GENERATE_PROP = "jsonform.generate";
public static final String JSONFORM_GENERATE_FOLDER_PROP = "jsonform.generate.dir";
public static final String JSONFORM_GENERATE_FOLDER_NAME_PROP = "jsonforms";
/**
* Generate jsonform json files for all of components
*
* <pre>
* Folder structure
*
* targetFolder
* --Category
* ----tRowgenerator.json
* ----tLogRow.json
*
* </pre>
*
* @param targetFolder all of jsonform jsons will be saved into the targetFolder
*/
void generate(File targetFolder);
/**
* If enabled by -Djsonform.generate or by running junit, then generate jsonform for components, otherwise will not generate.
*
* @return enabled or not
*/
public static boolean isEnabled() {
return Boolean.getBoolean(JSONFORM_GENERATE_PROP) || CommonsPlugin.isJUnitTest() || CommonsPlugin.isJunitWorking();
}
public static String getDirectoryFromProperty() {
return System.getProperty(JSONFORM_GENERATE_FOLDER_PROP);
}
}

View File

@@ -75,6 +75,4 @@ public interface IESBMicroService extends IService {
* @return
*/
IBuildJobHandler createBuildJobHandler(ProcessItem itemToExport, String version, String context, Map exportChoiceMap);
public List<String> getExternalizedDependencies();
}

View File

@@ -438,8 +438,6 @@ public final class TalendQuoteUtils {
return QUOTATION_MARK;
case IBMDB2:
return QUOTATION_MARK;
case INGRES:
return QUOTATION_MARK;
case MSODBC:
return QUOTATION_MARK;
case MSSQL:

View File

@@ -63,7 +63,6 @@ public final class GenerateQueryFactory {
case IBMDB2ZOS:
case MYSQL:
case AMAZON_AURORA:
case INGRES:
return new NonDatabaseDefaultQueryGenerator(dbType);
case ORACLE_OCI:
case ORACLEFORSID:

View File

@@ -26,7 +26,6 @@ import org.talend.commons.exception.PersistenceException;
import org.talend.commons.exception.SystemException;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.model.general.ConnectionBean;
import org.talend.core.model.general.Project;
import org.talend.core.model.process.INode;
import org.talend.core.model.properties.Property;
@@ -109,8 +108,6 @@ public interface ICoreTisService extends IService {
void syncProjectUpdateSettingsFromServer(IProgressMonitor monitor, Project proj) throws Exception;
void refreshPatchesFolderCache();
boolean hasValidToken(ConnectionBean conn) throws Exception;
static ICoreTisService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreTisService.class)) {

View File

@@ -23,7 +23,7 @@
<tomcat.version>9.0.68</tomcat.version>
<xbean.version>4.20</xbean.version>
<reload4j.version>1.2.22</reload4j.version>
<log4j2.version>2.18.0</log4j2.version>
<log4j2.version>2.17.2</log4j2.version>
<tycho.buildtimestamp.format>${timestamp}</tycho.buildtimestamp.format>
</properties>
<repositories>

View File

@@ -11,7 +11,7 @@
<packaging>pom</packaging>
<properties>
<tcomp.version>1.53.0</tcomp.version>
<tcomp.version>1.52.1</tcomp.version>
<slf4j.version>1.7.34</slf4j.version>
<reload4j.version>1.2.22</reload4j.version>
</properties>

View File

@@ -94,15 +94,6 @@
name="RemoveConfigMavenRepository"
version="6.0.2">
</projecttask>
<projecttask
beforeLogon="true"
breaks="8.0.0"
class="org.talend.designer.maven.ui.setting.migration.ProjectPomTemplateMigrationTask"
description="Migrate custom project pom template"
id="org.talend.designer.maven.ui.setting.migration.ProjectPomTemplateMigrationTask"
name="ProjectPomTemplateMigrationTask"
version="8.0.1">
</projecttask>
</extension>
</plugin>

View File

@@ -11,11 +11,6 @@ ProjectPomProjectSettingPage_FilterPomLabel=Filter to use to generate poms:
ProjectPomProjectSettingPage_FilterErrorMessage=Filter is invalid.
ProjectPomProjectSettingPage.syncAllPomsButtonText=Force full re-synchronize POMs
ProjectPomProjectSettingPage.syncBuildTypesButtonText=Force full re-synchronize build types
ProjectPomProjectSettingPage.validateTitle=Customization result
ProjectPomProjectSettingPage.warningTip=The following default settings will be overwritten.\n
ProjectPomProjectSettingPage.errorTip=The following default settings can't be overwritten.\n
ProjectPomProjectSettingPage.headerMessage=Customize the project POM settings by adding your custom settings on the Custom tab.
ProjectPomProjectSettingPage.preview=Preview
AbstractPersistentProjectSettingPage.syncAllPoms=Do you want to update all poms? \n This operation might take long time depends on your project size.
MavenProjectSettingPage.filterExampleMessage=Filter examples:\nlabel=myJob \t\t\t\t=> Generate only the job named "myJob"\n!(label=myJob) \t\t\t\t=> Generate any job except the one named "myJob"\n(path=folder1/folder2) \t\t\t=> Generate any job in the folder "folder1/folder2"\n(path=folder1/folder2)or(label=myJob)\t=> Generate any job in the folder "folder1/folder2" or named "myJob"\n(label=myJob)and(version=0.2)\t\t=> Generate only the job named "myJob" with version 0.2\n!((label=myJob)and(version=0.1))\t\t=> Generate every jobs except the "myJob" version 0.1
MavenProjectSettingPage.refModuleText=Set reference project modules in profile

View File

@@ -1,66 +0,0 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.designer.maven.ui.setting.migration;
import java.io.ByteArrayOutputStream;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
import org.apache.maven.model.Model;
import org.eclipse.m2e.core.MavenPlugin;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.core.model.general.Project;
import org.talend.core.model.migration.AbstractProjectMigrationTask;
import org.talend.core.runtime.projectsetting.IProjectSettingPreferenceConstants;
import org.talend.core.runtime.projectsetting.ProjectPreferenceManager;
import org.talend.designer.maven.model.TalendMavenConstants;
import org.talend.designer.maven.template.MavenTemplateManager;
import org.talend.designer.maven.tools.MergeModelTool;
import org.talend.designer.maven.ui.DesignerMavenUiPlugin;
import org.talend.repository.ProjectManager;
public class ProjectPomTemplateMigrationTask extends AbstractProjectMigrationTask {
@Override
public Date getOrder() {
GregorianCalendar gc = new GregorianCalendar(2023, 1, 9, 12, 0, 0);
return gc.getTime();
}
@Override
public ExecutionResult execute(Project project) {
try {
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put(MavenTemplateManager.KEY_PROJECT_NAME,
ProjectManager.getInstance().getCurrentProject().getTechnicalLabel());
Model defaultModel = MavenTemplateManager.getDefaultProjectModel(parameters);
Model customModel = MavenTemplateManager.getCustomProjectModel(parameters);
Model model = new MergeModelTool().migrateCustomModel(defaultModel, customModel);
ByteArrayOutputStream out = new ByteArrayOutputStream();
MavenPlugin.getMaven().writeModel(model, out);
String content = out.toString(TalendMavenConstants.DEFAULT_ENCODING);
if (content != null) {
ProjectPreferenceManager prefManager = DesignerMavenUiPlugin.getDefault().getProjectPreferenceManager();
prefManager.setValue(IProjectSettingPreferenceConstants.TEMPLATE_PROJECT_POM, content);
prefManager.save();
}
} catch (Exception e) {
ExceptionHandler.process(e);
return ExecutionResult.FAILURE;
}
return ExecutionResult.SUCCESS_NO_ALERT;
}
}

View File

@@ -12,19 +12,25 @@
// ============================================================================
package org.talend.designer.maven.ui.setting.project.initializer;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.Iterator;
import org.apache.commons.lang3.StringUtils;
import org.apache.maven.model.Model;
import org.apache.maven.model.Profile;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.m2e.core.MavenPlugin;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.core.PluginChecker;
import org.talend.core.runtime.projectsetting.IProjectSettingPreferenceConstants;
import org.talend.core.runtime.projectsetting.IProjectSettingTemplateConstants;
import org.talend.designer.maven.DesignerMavenPlugin;
import org.talend.designer.maven.model.TalendMavenConstants;
import org.talend.designer.maven.template.AbstractMavenTemplateManager;
import org.talend.designer.maven.template.MavenTemplateManager;
import org.talend.designer.maven.tools.extension.PomExtensionRegistry;
import org.talend.designer.maven.ui.DesignerMavenUiPlugin;
import org.talend.designer.maven.utils.PomUtil;
@@ -45,7 +51,7 @@ public class MavenScriptsProjectSettingInitializer extends AbstractProjectPrefer
try {
setDefault(preferenceStore, IProjectSettingPreferenceConstants.TEMPLATE_PROJECT_POM, DesignerMavenPlugin.PLUGIN_ID,
IProjectSettingTemplateConstants.PATH_GENERAL + '/'
+ IProjectSettingTemplateConstants.PROJECT_CUSTOM_TEMPLATE_FILE_NAME);
+ IProjectSettingTemplateConstants.PROJECT_TEMPLATE_FILE_NAME);
} catch (Exception e) {
ExceptionHandler.process(e);
@@ -61,6 +67,7 @@ public class MavenScriptsProjectSettingInitializer extends AbstractProjectPrefer
if (templateManager != null) {
InputStream stream = templateManager.readBundleStream(bundleTemplatePath);
Model model = MavenPlugin.getMavenModelManager().readMavenModel(stream);
PomExtensionRegistry.getInstance().updatePomTemplate(model);
ByteArrayOutputStream out = new ByteArrayOutputStream();
PomUtil.sortModules(model);
MavenPlugin.getMaven().writeModel(model, out);
@@ -69,6 +76,31 @@ public class MavenScriptsProjectSettingInitializer extends AbstractProjectPrefer
preferenceStore.setDefault(key, content);
}
}
// if license change to NON-TP, check to remove docker profile
if (!PluginChecker.isDockerPluginLoaded()) {
String content = preferenceStore.getString(key);
if (!StringUtils.isBlank(content)) {
InputStream stream = new ByteArrayInputStream(content.getBytes(TalendMavenConstants.DEFAULT_ENCODING));
Model model = MavenPlugin.getMavenModelManager().readMavenModel(stream);
Iterator<Profile> iterator = model.getProfiles().iterator();
boolean isModified = false;
while(iterator.hasNext()) {
Profile profile = iterator.next();
if ("docker".equals(profile.getId())) { //$NON-NLS-1$
iterator.remove();
isModified = true;
}
}
if (isModified) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
MavenPlugin.getMaven().writeModel(model, out);
content = out.toString(TalendMavenConstants.DEFAULT_ENCODING);
if (content != null) {
preferenceStore.setValue(key, content);
}
}
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
}

View File

@@ -12,39 +12,27 @@
// ============================================================================
package org.talend.designer.maven.ui.setting.project.page;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.maven.model.Model;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.m2e.core.MavenPlugin;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.core.runtime.projectsetting.AbstractPomTemplateProjectSettingPage;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.runtime.process.ITalendProcessJavaProject;
import org.talend.core.runtime.projectsetting.IProjectSettingPreferenceConstants;
import org.talend.core.runtime.projectsetting.PomPreviewDialog;
import org.talend.designer.maven.model.MergedModel;
import org.talend.designer.maven.model.TalendMavenConstants;
import org.talend.designer.maven.template.MavenTemplateManager;
import org.talend.designer.maven.tools.AggregatorPomsHelper;
import org.talend.designer.maven.tools.MergeModelTool;
import org.talend.designer.maven.tools.ProjectPomManager;
import org.talend.designer.maven.ui.DesignerMavenUiPlugin;
import org.talend.designer.maven.ui.i18n.Messages;
import org.talend.repository.ProjectManager;
import org.talend.designer.runprocess.IRunProcessService;
/**
* DOC ggu class global comment. Detailled comment
*/
public class ProjectPomProjectSettingPage extends AbstractPomTemplateProjectSettingPage {
public class ProjectPomProjectSettingPage extends AbstractPersistentProjectSettingPage {
private String oldScriptContent;
public ProjectPomProjectSettingPage() {
super();
this.oldScriptContent = getCustomText();
this.oldScriptContent = this.getScriptContent();
}
@Override
@@ -57,122 +45,42 @@ public class ProjectPomProjectSettingPage extends AbstractPomTemplateProjectSett
return IProjectSettingPreferenceConstants.TEMPLATE_PROJECT_POM;
}
/*
* (non-Javadoc)
*
* @see org.talend.repository.preference.AbstractScriptPreferencePage#getHeadTitle()
*/
@Override
protected String getHeaderMessage() {
return Messages.getString("ProjectPomProjectSettingPage.headerMessage"); //$NON-NLS-1$
}
@Override
protected String getDefaultText() {
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put(MavenTemplateManager.KEY_PROJECT_NAME,
ProjectManager.getInstance().getCurrentProject().getTechnicalLabel());
Model model = MavenTemplateManager.getDefaultProjectModel(parameters);
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
MavenPlugin.getMaven().writeModel(model, out);
return out.toString(TalendMavenConstants.DEFAULT_ENCODING);
} catch (Exception e) {
ExceptionHandler.process(e);
}
return "Error loading default project pom template!"; //$NON-NLS-1$
}
@Override
protected String getMoreInfoUrl() {
return "https://document-link.us.cloud.talend.com/ts_ug_customize_project_pom_settings?version=80&lang=en&env=prd"; //$NON-NLS-1$
}
@Override
protected boolean checkModel(boolean preview) {
if (customText == null || customText.isDisposed()) {
return false;
}
Model model = null;
try {
Model defaultModel = MavenPlugin.getMavenModelManager()
.readMavenModel(new ByteArrayInputStream(defaultText.getText().getBytes()));
Model customModel = MavenPlugin.getMavenModelManager()
.readMavenModel(new ByteArrayInputStream(customText.getText().getBytes()));
MergedModel mergedModel = new MergeModelTool().mergeModel(defaultModel, customModel);
model = mergedModel.getModel();
StringBuilder msgBuilder = new StringBuilder();
if (model != null) {
String propertiesInfo = mergedModel.getIllegalPropertiesInfo();
if (propertiesInfo != null) {
// validated with warning
msgBuilder.append(Messages.getString("ProjectPomProjectSettingPage.warningTip")); //$NON-NLS-1$
msgBuilder.append(propertiesInfo);
MessageDialog.openWarning(getShell(), Messages.getString("ProjectPomProjectSettingPage.validateTitle"), //$NON-NLS-1$
msgBuilder.toString());
}
} else {
msgBuilder.append(Messages.getString("ProjectPomProjectSettingPage.errorTip")); //$NON-NLS-1$
String pluginManagementInfo = mergedModel.getIllegalPluginManagementInfo();
if (pluginManagementInfo != null) {
msgBuilder.append(pluginManagementInfo);
}
String pluginsInfo = mergedModel.getIllegalPluginsInfo();
if (pluginsInfo != null) {
msgBuilder.append(pluginsInfo);
}
String profilesInfo = mergedModel.getIllegalProfilesInfo();
if (profilesInfo != null) {
msgBuilder.append(profilesInfo);
}
MessageDialog.openError(getShell(), Messages.getString("ProjectPomProjectSettingPage.validateTitle"), //$NON-NLS-1$
msgBuilder.toString());
}
if (model == null) {
return false;
}
if (preview) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
MavenPlugin.getMaven().writeModel(model, out);
String content = out.toString(TalendMavenConstants.DEFAULT_ENCODING);
new PomPreviewDialog(getShell(), Messages.getString("ProjectPomProjectSettingPage.preview"), content).open(); //$NON-NLS-1$
}
return true;
} catch (Exception e) {
MessageDialog.openError(getShell(), Messages.getString("ProjectPomProjectSettingPage.validateTitle"), //$NON-NLS-1$
e.getCause() == null ? e.getMessage() : e.getCause().getMessage());
ExceptionHandler.process(e);
return false;
}
protected String getHeadTitle() {
return Messages.getString("ProjectPomProjectSettingPage_Titile"); //$NON-NLS-1$
}
@Override
protected void performApply() {
if (performOk()) {
// reset from modification
this.oldScriptContent = getCustomText();
}
super.performApply();
// reset from modification
this.oldScriptContent = this.getScriptContent();
}
@Override
public boolean performOk() {
boolean ok = super.performOk();
if (ok && getScriptTxt() != null && !getScriptTxt().isDisposed()) {
boolean performOk = super.performOk();
String newContent = this.getScriptContent();
if (!newContent.equals(oldScriptContent)) { // not same
MessageDialog.openWarning(this.getShell(), Messages.getString("ProjectPomProjectSettingPage_ConfirmTitle"), //$NON-NLS-1$
Messages.getString("ProjectPomProjectSettingPage_ConfirmMessage")); //$NON-NLS-1$
// Update project pom file.
ProjectPomManager projectPomManager = new ProjectPomManager();
try {
if (MessageDialog.openQuestion(getShell(), "Question", //$NON-NLS-1$
Messages.getString("AbstractPersistentProjectSettingPage.syncAllPoms"))) { //$NON-NLS-1$
new AggregatorPomsHelper().syncAllPoms();
} else {
String newContent = getCustomText();
if (!newContent.equals(oldScriptContent)) { // not same
MessageDialog.openWarning(this.getShell(),
Messages.getString("ProjectPomProjectSettingPage_ConfirmTitle"), //$NON-NLS-1$
Messages.getString("ProjectPomProjectSettingPage_ConfirmMessage")); //$NON-NLS-1$
new AggregatorPomsHelper().createRootPom(new NullProgressMonitor());
}
}
projectPomManager.updateFromTemplate(null);
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
return ok;
return performOk;
}
}

View File

@@ -1,12 +0,0 @@
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>@ProjectGroupId@</groupId>
<artifactId>@ProjectArtifactId@</artifactId>
<version>@ProjectVersion@</version>
<packaging>pom</packaging>
<name>@ProjectName@ Codes Master</name>
<url>http://www.talend.org/</url>
</project>

View File

@@ -1,98 +0,0 @@
// ============================================================================
//
// Copyright (C) 2006-2022 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.designer.maven.model;
import java.util.ArrayList;
import java.util.List;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.Profile;
public class MergedModel {
private Model model;
private List<String> illegalProperties = new ArrayList<>();
private List<Profile> illegalProfiles = new ArrayList<>();
private List<Plugin> illegalPluginManagement = new ArrayList<>();
private List<Plugin> illegalPlugins = new ArrayList<>();
public Model getModel() {
return model;
}
public void setModel(Model model) {
this.model = model;
}
public List<String> getIllegalProperties() {
return illegalProperties;
}
public List<Profile> getIllegalProfiles() {
return illegalProfiles;
}
public List<Plugin> getIllegalPluginManagement() {
return illegalPluginManagement;
}
public List<Plugin> getIllegalPlugins() {
return illegalPlugins;
}
public String getIllegalPropertiesInfo() {
if (!illegalProperties.isEmpty()) {
StringBuilder msgBuilder = new StringBuilder();
msgBuilder.append("Properties:\n");
illegalProperties.forEach(property -> msgBuilder.append(" ").append(property).append("\n"));
return msgBuilder.toString();
}
return null;
}
public String getIllegalPluginManagementInfo() {
if (!illegalPluginManagement.isEmpty()) {
StringBuilder msgBuilder = new StringBuilder();
msgBuilder.append("PluginManagement:\n");
illegalPluginManagement.forEach(plugin -> msgBuilder.append(" ").append(plugin.getKey()).append("\n"));
return msgBuilder.toString();
}
return null;
}
public String getIllegalPluginsInfo() {
if (!illegalPlugins.isEmpty()) {
StringBuilder msgBuilder = new StringBuilder();
msgBuilder.append("Plugins:\n"); //$NON-NLS-1$
illegalPlugins.forEach(plugin -> msgBuilder.append(" ").append(plugin.getKey()).append("\n"));
return msgBuilder.toString();
}
return null;
}
public String getIllegalProfilesInfo() {
if (!illegalProfiles.isEmpty()) {
StringBuilder msgBuilder = new StringBuilder();
msgBuilder.append("Profiles:\n");
illegalProfiles.forEach(profile -> msgBuilder.append(" ").append(profile.getId()).append("\n"));
return msgBuilder.toString();
}
return null;
}
}

View File

@@ -38,10 +38,8 @@ import org.talend.core.model.routines.CodesJarInfo;
import org.talend.core.runtime.projectsetting.IProjectSettingPreferenceConstants;
import org.talend.core.runtime.projectsetting.IProjectSettingTemplateConstants;
import org.talend.designer.maven.DesignerMavenPlugin;
import org.talend.designer.maven.model.MergedModel;
import org.talend.designer.maven.model.TalendMavenConstants;
import org.talend.designer.maven.setting.project.IProjectSettingManagerProvider;
import org.talend.designer.maven.tools.MergeModelTool;
import org.talend.designer.maven.tools.extension.PomExtensionRegistry;
import org.talend.designer.maven.utils.PomIdsHelper;
import org.talend.designer.maven.utils.PomUtil;
@@ -213,67 +211,49 @@ public class MavenTemplateManager {
}
}
public static Model getCodeProjectTemplateModel() {
return getCodeProjectTemplateModel(null); // by default will be current project.
}
/**
* Try to load the project template from bundle, if load failed, use default instead.
*/
public static Model getCodeProjectTemplateModel(Map<String, Object> parameters) {
Model basicModel = getBasicProjectPomTemplateModel(parameters);
Model defaultModel = getDefaultProjectModel(parameters);
if (defaultModel == null) {
defaultModel = basicModel;
}
Model customModel = getCustomProjectModel(parameters);
MergedModel mergedModel = new MergeModelTool().mergeModel(defaultModel, customModel);
Model model = mergedModel.getModel();
if (model != null) {
Map<ETalendMavenVariables, String> variablesValuesMap = new HashMap<>();
variablesValuesMap.put(ETalendMavenVariables.ProjectGroupId, basicModel.getGroupId());
variablesValuesMap.put(ETalendMavenVariables.ProjectArtifactId, basicModel.getArtifactId());
variablesValuesMap.put(ETalendMavenVariables.ProjectVersion, basicModel.getVersion());
variablesValuesMap.put(ETalendMavenVariables.ProjectName, PomUtil.getProjectNameFromTemplateParameter(parameters));
model.setGroupId(ETalendMavenVariables.replaceVariables(model.getGroupId(), variablesValuesMap));
model.setArtifactId(ETalendMavenVariables.replaceVariables(model.getArtifactId(), variablesValuesMap));
model.setVersion(ETalendMavenVariables.replaceVariables(model.getVersion(), variablesValuesMap));
model.setName(ETalendMavenVariables.replaceVariables(model.getName(), variablesValuesMap));
setJavaVersionForModel(model, variablesValuesMap);
}
return model;
}
public static Model getDefaultProjectModel(Map<String, Object> parameters) {
final String projectTechName = PomUtil.getProjectNameFromTemplateParameter(parameters);
Model defaultModel = getDefaultCodeProjectTemplateModel(projectTechName);
try {
InputStream stream = MavenTemplateManager.getTemplateStream(null, null, DesignerMavenPlugin.PLUGIN_ID,
InputStream stream = MavenTemplateManager.getTemplateStream(null,
IProjectSettingPreferenceConstants.TEMPLATE_PROJECT_POM, DesignerMavenPlugin.PLUGIN_ID,
IProjectSettingTemplateConstants.PATH_GENERAL + '/'
+ IProjectSettingTemplateConstants.PROJECT_TEMPLATE_FILE_NAME,
parameters);
+ IProjectSettingTemplateConstants.PROJECT_TEMPLATE_FILE_NAME, parameters);
if (stream != null) {
Model model = MavenPlugin.getMavenModelManager().readMavenModel(stream);
Map<ETalendMavenVariables, String> variablesValuesMap = new HashMap<ETalendMavenVariables, String>();
variablesValuesMap.put(ETalendMavenVariables.ProjectGroupId, defaultModel.getGroupId());
variablesValuesMap.put(ETalendMavenVariables.ProjectArtifactId, defaultModel.getArtifactId());
variablesValuesMap.put(ETalendMavenVariables.ProjectVersion, defaultModel.getVersion());
variablesValuesMap.put(ETalendMavenVariables.ProjectName, projectTechName);
model.setGroupId(ETalendMavenVariables.replaceVariables(model.getGroupId(), variablesValuesMap));
model.setArtifactId(ETalendMavenVariables.replaceVariables(model.getArtifactId(), variablesValuesMap));
model.setVersion(ETalendMavenVariables.replaceVariables(model.getVersion(), variablesValuesMap));
model.setName(ETalendMavenVariables.replaceVariables(model.getName(), variablesValuesMap));
setJavaVersionForModel(model, variablesValuesMap);
PomExtensionRegistry.getInstance().updateProjectPom(model);
PomExtensionRegistry.getInstance().updatePomTemplate(model);
Properties properties = model.getProperties();
properties.put("talend.project.name", PomUtil.getProjectNameFromTemplateParameter(parameters)); //$NON-NLS-1$
properties.put("talend.project.name", projectTechName); //$NON-NLS-1$
return model;
}
} catch (Exception e) {
ExceptionHandler.process(e);
// ExceptionHandler.process(e);
}
return null;
}
public static Model getCustomProjectModel(Map<String, Object> parameters) {
try {
InputStream stream = MavenTemplateManager.getTemplateStream(null,
IProjectSettingPreferenceConstants.TEMPLATE_PROJECT_POM, null, null, parameters);
if (stream != null) {
return MavenPlugin.getMavenModelManager().readMavenModel(stream);
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
return null;
return defaultModel; // if error, try to use default model
}
private static void setJavaVersionForModel(Model model, Map<ETalendMavenVariables, String> variablesValuesMap) {
@@ -295,8 +275,7 @@ public class MavenTemplateManager {
}
}
private static Model getBasicProjectPomTemplateModel(Map<String, Object> parameters) {
String projectTechName = PomUtil.getProjectNameFromTemplateParameter(parameters);
private static Model getDefaultCodeProjectTemplateModel(String projectTechName) {
Model templateCodeProjectMOdel = new Model();
templateCodeProjectMOdel.setGroupId(PomIdsHelper.getProjectGroupId(projectTechName));
templateCodeProjectMOdel.setArtifactId(PomIdsHelper.getProjectArtifactId());

View File

@@ -1,182 +0,0 @@
// ============================================================================
//
// Copyright (C) 2006-2022 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.designer.maven.tools;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.maven.model.Build;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.Profile;
import org.talend.designer.maven.model.MergedModel;
public class MergeModelTool {
public MergedModel mergeModel(Model defaultModel, Model customModel) {
MergedModel mergedModel = new MergedModel();
mergedModel.setModel(defaultModel);
if (customModel == null) {
return mergedModel;
}
// basic info
mergeBasicInfo(defaultModel, customModel);
// Properties
if (customModel.getProperties() != null) {
Properties defaultProperties = defaultModel.getProperties();
customModel.getProperties().keySet().stream().filter(key -> defaultProperties.containsKey(key))
.forEach(key -> mergedModel.getIllegalProperties().add((String) key));
defaultProperties.putAll(customModel.getProperties());
}
Build build = customModel.getBuild();
if (build != null) {
// PluginManagement
if (build.getPluginManagement() != null) {
Map<String, Plugin> customPluginsManageMap = build.getPluginManagement().getPluginsAsMap();
Map<String, Plugin> defaultPluginsManageMap = defaultModel.getBuild().getPluginManagement().getPluginsAsMap();
customPluginsManageMap.keySet().stream().filter(key -> defaultPluginsManageMap.containsKey(key))
.forEach(key -> mergedModel.getIllegalPluginManagement().add(customPluginsManageMap.get(key)));
if (mergedModel.getIllegalPluginManagement().isEmpty()) {
build.getPluginManagement().getPlugins()
.forEach(plugin -> defaultModel.getBuild().getPluginManagement().addPlugin(plugin));
}
}
// Plugins
Map<String, Plugin> customPluginsMap = build.getPluginsAsMap();
Map<String, Plugin> defaultPluginsMap = defaultModel.getBuild().getPluginsAsMap();
customPluginsMap.keySet().stream().filter(key -> defaultPluginsMap.containsKey(key))
.forEach(key -> mergedModel.getIllegalPlugins().add(customPluginsMap.get(key)));
if (mergedModel.getIllegalPlugins().isEmpty()) {
defaultModel.getBuild().getPlugins().addAll(build.getPlugins());
}
}
// Profiles
Map<String, Profile> customProfileMap = customModel.getProfiles().stream()
.collect(Collectors.toMap(Profile::getId, Function.identity()));
Map<String, Profile> defaultProfileMap = defaultModel.getProfiles().stream()
.collect(Collectors.toMap(Profile::getId, Function.identity()));
customProfileMap.keySet().stream().filter(key -> defaultProfileMap.containsKey(key))
.forEach(key -> mergedModel.getIllegalProfiles().add(customProfileMap.get(key)));
if (mergedModel.getIllegalProfiles().isEmpty()) {
defaultModel.getProfiles().addAll(customModel.getProfiles());
}
mergeOtherSetup(defaultModel, customModel);
if (!mergedModel.getIllegalPluginManagement().isEmpty() || !mergedModel.getIllegalPlugins().isEmpty()
|| !mergedModel.getIllegalProfiles().isEmpty()) {
mergedModel.setModel(null);
}
return mergedModel;
}
public Model migrateCustomModel(Model defaultModel, Model customModel) {
// Properties
Iterator<Entry<Object, Object>> iterator = customModel.getProperties().entrySet().iterator();
while (iterator.hasNext()) {
Entry<Object, Object> entry = iterator.next();
Object key = entry.getKey();
Object value = entry.getValue();
if (defaultModel.getProperties().containsKey(key) && value != null
&& value.equals(defaultModel.getProperties().get(key))) {
iterator.remove();
}
}
Build build = customModel.getBuild();
if (build != null) {
// PluginManagement
if (build.getPluginManagement() != null) {
Map<String, Plugin> defaultPluginsManageMap = defaultModel.getBuild().getPluginManagement().getPluginsAsMap();
build.getPluginManagement().getPlugins().removeIf(p -> defaultPluginsManageMap.containsKey(p.getKey()));
if (build.getPluginManagement().getPlugins().isEmpty()) {
build.setPluginManagement(null);
}
}
// Plugins
Map<String, Plugin> defaultPluginsMap = defaultModel.getBuild().getPluginsAsMap();
customModel.getBuild().getPlugins().removeIf(p -> defaultPluginsMap.containsKey(p.getKey()));
}
// Profiles
Map<String, Profile> defaultProfileMap = defaultModel.getProfiles().stream()
.collect(Collectors.toMap(Profile::getId, Function.identity()));
customModel.getProfiles().removeIf(profile -> defaultProfileMap.containsKey(profile.getId()));
return customModel;
}
private void mergeBasicInfo(Model defaultModel, Model customModel) {
if (customModel.getModelVersion() != null && !customModel.getModelVersion().equals(defaultModel.getModelVersion())) {
defaultModel.setModelVersion(customModel.getModelVersion());
}
if (customModel.getGroupId() != null && !customModel.getGroupId().equals(defaultModel.getGroupId())) {
defaultModel.setGroupId(customModel.getGroupId());
}
if (customModel.getArtifactId() != null && !customModel.getArtifactId().equals(defaultModel.getArtifactId())) {
defaultModel.setArtifactId(customModel.getArtifactId());
}
if (customModel.getVersion() != null && !customModel.getVersion().equals(defaultModel.getVersion())) {
defaultModel.setVersion(customModel.getVersion());
}
if (customModel.getPackaging() != null && !customModel.getPackaging().equals(defaultModel.getPackaging())) {
defaultModel.setPackaging(customModel.getPackaging());
}
if (customModel.getName() != null && !customModel.getName().equals(defaultModel.getName())) {
defaultModel.setName(customModel.getName());
}
if (customModel.getUrl() != null && !customModel.getUrl().equals(defaultModel.getUrl())) {
defaultModel.setUrl(customModel.getUrl());
}
}
private void mergeOtherSetup(Model defaultModel, Model customModel) {
// default model doesn't have those setup so can merge directly if exists
// FIXME add more if needed: https://maven.apache.org/ref/3.8.6/maven-model/maven.html
// DependencyManagement
if (customModel.getDependencyManagement() != null) {
defaultModel.setDependencyManagement(customModel.getDependencyManagement());
}
// Dependencies
if (!customModel.getDependencies().isEmpty()) {
defaultModel.setDependencies(customModel.getDependencies());
}
// Repositories
if (!customModel.getRepositories().isEmpty()) {
defaultModel.setRepositories(customModel.getRepositories());
}
// PluginRepositories
if (!customModel.getPluginRepositories().isEmpty()) {
defaultModel.setPluginRepositories(customModel.getPluginRepositories());
}
// DistributionManagement
if (customModel.getDistributionManagement() != null) {
defaultModel.setDistributionManagement(customModel.getDistributionManagement());
}
// SCM
if (customModel.getScm() != null) {
defaultModel.setScm(customModel.getScm());
}
}
}

View File

@@ -0,0 +1,99 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.designer.maven.tools;
import java.util.Map;
import org.apache.maven.model.Model;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.m2e.core.MavenPlugin;
import org.eclipse.m2e.core.embedder.MavenModelManager;
import org.talend.core.model.general.Project;
import org.talend.designer.maven.model.TalendJavaProjectConstants;
import org.talend.designer.maven.model.TalendMavenConstants;
import org.talend.designer.maven.template.MavenTemplateManager;
import org.talend.designer.maven.utils.PomUtil;
import org.talend.designer.runprocess.IProcessor;
import org.talend.repository.ProjectManager;
/**
* DOC ggu class global comment. Detailled comment
*/
public class ProjectPomManager {
protected static final MavenModelManager MODEL_MANAGER = MavenPlugin.getMavenModelManager();
private IFile projectPomFile;
/**
* true by default, update all
*/
public ProjectPomManager() {
projectPomFile = getTalendProjectPom();
}
public void update(IProgressMonitor monitor, IProcessor processor) throws Exception {
if (monitor == null) {
monitor = new NullProgressMonitor();
}
if (!projectPomFile.exists()) {// delete by user manually?
// create it or nothing to do?
return;
}
Model projectModel = MODEL_MANAGER.readMavenModel(projectPomFile);
// attributes
updateAttributes(monitor, processor, projectModel);
PomUtil.savePom(monitor, projectModel, projectPomFile);
}
public void updateFromTemplate(IProgressMonitor monitor) throws Exception {
if (monitor == null) {
monitor = new NullProgressMonitor();
}
new AggregatorPomsHelper().createRootPom(monitor);
}
/**
*
* update the main attributes for project pom.
*
*/
protected void updateAttributes(IProgressMonitor monitor, IProcessor processor, Model projectModel) throws Exception {
final Map<String, Object> templateParameters = PomUtil.getTemplateParameters(processor);
Model templateModel = MavenTemplateManager.getCodeProjectTemplateModel(templateParameters);
projectModel.setGroupId(templateModel.getGroupId());
projectModel.setArtifactId(templateModel.getArtifactId());
projectModel.setVersion(templateModel.getVersion());
projectModel.setName(templateModel.getName());
projectModel.setPackaging(templateModel.getPackaging());
}
public IFile getTalendProjectPom() {
Project project = ProjectManager.getInstance().getCurrentProject();
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IFolder pomsFolder = workspace.getRoot()
.getFolder(new Path(project.getTechnicalLabel() + "/" + TalendJavaProjectConstants.DIR_POMS)); //$NON-NLS-1$
IFile pomFile = pomsFolder.getFile(TalendMavenConstants.POM_FILE_NAME);
return pomFile;
}
}

View File

@@ -54,7 +54,7 @@ ContextWizard.step0Description=\u5FC5\u8981\u306A\u60C5\u5831\u3092\u8FFD\u52A0
ContextWizard.step0Title=\u30B9\u30C6\u30C3\u30D71/2
ContextModeWizard.Title=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u3092\u4F5C\u6210/\u518D\u4F7F\u7528
CreateTableAction.action.createTitle=\u30B9\u30AD\u30FC\u30DE\u3092\u53D6\u5F97
DatabaseForm.AddParams=\u8FFD\u52A0\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
DatabaseForm.AddParams=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u8FFD\u52A0
DatabaseForm.alert=DB\u30BF\u30A4\u30D7\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
DatabaseForm.StandardSQL=\u6A19\u6E96SQL\u30B9\u30C6\u30FC\u30C8\u30E1\u30F3\u30C8
DatabaseForm.SystemSQL=\u30B7\u30B9\u30C6\u30E0SQL\u30B9\u30C6\u30FC\u30C8\u30E1\u30F3\u30C8

View File

@@ -220,21 +220,6 @@
required="true"
uripath="platform:/plugin/org.talend.libraries.jdbc.hsql/lib/hsqldb.jar">
</libraryNeeded>
<libraryNeeded
context="plugin:org.talend.metadata.managment"
language="java"
message="Needed for Ingres jdbc plugin"
name="iijdbc-10.2-4.1.10.jar" mvn_uri="mvn:com.ingres.jdbc/iijdbc/10.2-4.1.10"
required="true">
</libraryNeeded>
<libraryNeeded
context="plugin:org.talend.metadata.managment"
language="java"
message="Needed for create sqlite connection"
mvn_uri="mvn:org.xerial/sqlite-jdbc/3.40.0.0"
name="sqlite-jdbc-3.40.0.0.jar"
required="true">
</libraryNeeded>
</extension>
<extension
point="org.talend.core.migrationTask">

View File

@@ -86,7 +86,6 @@ public final class SupportDBUrlStore {
supportDBUrlMap.put(SupportDBUrlType.SYBASEDEFAULTURL.getDBKey(), SupportDBUrlType.SYBASEDEFAULTURL);
// supportDBUrlMap.put(SupportDBUrlType.INFORMIXDEFAULTURL.getDBKey(), SupportDBUrlType.INFORMIXDEFAULTURL);
// supportDBUrlMap.put(SupportDBUrlType.FIREBIRDDEFAULTURL.getDBKey(), SupportDBUrlType.FIREBIRDDEFAULTURL);
supportDBUrlMap.put(SupportDBUrlType.INGRESDEFAULTURL.getDBKey(), SupportDBUrlType.INGRESDEFAULTURL);
supportDBUrlMap.put(SupportDBUrlType.INFORMIXDEFAULTURL.getDBKey(), SupportDBUrlType.INFORMIXDEFAULTURL);
supportDBUrlMap.put(SupportDBUrlType.SQLITE3DEFAULTURL.getDBKey(), SupportDBUrlType.SQLITE3DEFAULTURL);
supportDBUrlMap.put(SupportDBUrlType.GENERICJDBCDEFAULTURL.getDBKey(), SupportDBUrlType.GENERICJDBCDEFAULTURL);
@@ -129,8 +128,6 @@ public final class SupportDBUrlStore {
// SupportDBUrlType.INFORMIXDEFAULTURL);
// supportDiverNameDBUrlMap.put(SupportDBUrlType.FIREBIRDDEFAULTURL.getDbDriver(),
// SupportDBUrlType.FIREBIRDDEFAULTURL);
supportDiverNameDBUrlMap
.put(SupportDBUrlType.INGRESDEFAULTURL.getDbDriver(), SupportDBUrlType.INGRESDEFAULTURL);
supportDiverNameDBUrlMap.put(SupportDBUrlType.INFORMIXDEFAULTURL.getDbDriver(),
SupportDBUrlType.INFORMIXDEFAULTURL);
supportDiverNameDBUrlMap.put(SupportDBUrlType.SQLITE3DEFAULTURL.getDbDriver(),

View File

@@ -142,7 +142,6 @@ public enum SupportDBUrlType {
"org.firebirdsql.jdbc.FBDriver", //$NON-NLS-1$
null,
"FireBird"), //$NON-NLS-1$
INGRESDEFAULTURL("Ingres", "localhost", "II7", "dbname", null, "com.ingres.jdbc.IngresDriver", null, "Ingres"),
SQLITE3DEFAULTURL("SQLite", "localhost", "", "dbname", null, "org.sqlite.JDBC", null, "SQLite"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
GENERICJDBCDEFAULTURL("General JDBC", "", "", "", null, "", null, "General JDBC"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
// MOD klliu 2010-06-04 bug 12819: upgrade jdbc driver class used in sql explorer
@@ -398,6 +397,6 @@ public enum SupportDBUrlType {
public static boolean justHaveSchema(String dbKey) {
SupportDBUrlType dbTypeByKey = getDBTypeByKey(dbKey);
return dbTypeByKey != null
&& (isOracle(dbKey) || dbTypeByKey == TERADATADEFAULTURL || dbTypeByKey == DB2DEFAULTURL || dbTypeByKey == DB2ZOSDEFAULTURL|| dbTypeByKey == INGRESDEFAULTURL);
&& (isOracle(dbKey) || dbTypeByKey == TERADATADEFAULTURL || dbTypeByKey == DB2DEFAULTURL || dbTypeByKey == DB2ZOSDEFAULTURL);
}
}

View File

@@ -6,7 +6,6 @@ IBM\ DB2\ ZOS=jdbc\:db2\://{0}\:{1}/{2}
FireBird=jdbc\:firebirdsql\:{0}\:{2}
Generic\ ODBC=jdbc\:odbc\:{3}
Informix=jdbc\:informix-sqli\://{0}\:{1}/{2}\:informixserver\={3}
Ingres=jdbc\:ingres\://{0}\:{1}/{2}
Microsoft\ SQL\ Server=jdbc\:jtds\:sqlserver\://{0}\:{1}/{2}
Microsoft\ SQL\ Server\ 2005/2008=jdbc\:sqlserver\://{0}\:{1};DatabaseName\={2}
MySQL=jdbc\:mysql\://{0}\:{1}/{2}

View File

@@ -83,7 +83,6 @@ import org.talend.metadata.managment.connection.manager.HiveConnectionManager;
import org.talend.metadata.managment.hive.EmbeddedHiveDataBaseMetadata;
import org.talend.metadata.managment.repository.ManagerConnection;
import org.talend.metadata.managment.utils.DatabaseConstant;
import org.talend.metadata.managment.utils.EDataBaseType;
import org.talend.metadata.managment.utils.ManagementTextUtils;
import org.talend.metadata.managment.utils.MetadataConnectionUtils;
import org.talend.utils.sql.ConnectionUtils;
@@ -1043,12 +1042,8 @@ public class DBConnectionFillerImpl extends MetadataFillerImpl<DatabaseConnectio
// for CDH4 HIVE2 , the table type are MANAGED_TABLE and EXTERNAL_TABLE ......
// tableType = null;
}
Map<String,String> tableComments = null;
if (!isOracle8i) {
tableComments = this.getTableComments(dbJDBCMetadata, catalogName, schemaPattern);
}
ResultSet tables = dbJDBCMetadata.getTables(catalogName, schemaPattern, tablePattern, tableType);
boolean hasRemarksCol = hasRemarksColumn(tables);
while (tables.next()) {
String coloumnName = GetTable.TABLE_SCHEM.name();
if (schemaPattern != null) {
@@ -1073,13 +1068,8 @@ public class DBConnectionFillerImpl extends MetadataFillerImpl<DatabaseConnectio
// if (!isOracle && !isOracle8i && !isOracleJdbc && tableName.startsWith("/")) { //$NON-NLS-1$
// continue;
// }
if (hasRemarksCol) {
tableComment = getRemarksFromResultSet(tables);
}
if (tableComments != null) {
if (StringUtils.isEmpty(tableComment)) {
tableComment = tableComments.get(tableName);
}
if (!isOracle8i) {
tableComment = getTableComment(dbJDBCMetadata, tables, tableName, catalogName, schemaPattern);
}
MetadataTable metadatatable = null;
if (TableType.VIEW.toString().equals(temptableType) || ETableTypes.VIRTUAL_VIEW.getName().equals(temptableType)) {
@@ -1223,69 +1213,6 @@ public class DBConnectionFillerImpl extends MetadataFillerImpl<DatabaseConnectio
}
return tableComment;
}
private Map<String, String> getTableComments(DatabaseMetaData dbJDBCMetadata, String catalogName, String schemaPattern) {
Map<String, String> ret = new HashMap<String, String>();
PreparedStatement ps = null;
ResultSet rs = null;
try {
String productName = dbJDBCMetadata.getDatabaseProductName();
if (StringUtils.isEmpty(productName)) {
return ret;
}
productName = productName.replaceAll(" ", "_"); //$NON-NLS-1$ //$NON-NLS-2$
EDataBaseType eDataBaseType = null;
try {
eDataBaseType = EDataBaseType.valueOf(productName);
} catch (Exception e) {
eDataBaseType = EDataBaseType.Microsoft_SQL_Server;
}
String sqlStr = ""; //$NON-NLS-1$
switch (eDataBaseType) {
case Oracle:
sqlStr = "SELECT TABLE_NAME,COMMENTS FROM ALL_TAB_COMMENTS WHERE OWNER=?";
ps = dbJDBCMetadata.getConnection().prepareStatement(sqlStr);
ps.setString(1, schemaPattern.toUpperCase());
break;
case MySQL:
sqlStr = "SELECT TABLE_NAME,TABLE_COMMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA=?";
ps = dbJDBCMetadata.getConnection().prepareStatement(sqlStr);
ps.setString(1, catalogName);
break;
default:
break;
}
if (ps != null) {
rs = ps.executeQuery();
while (rs != null && rs.next()) {
String comment = rs.getString(2);
if (!StringUtils.isEmpty(comment)) {
ret.put(rs.getString(1), comment);
}
}
}
} catch (SQLException e) {
log.error(e, e);
} finally {
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
CommonExceptionHandler.process(e);
}
}
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
CommonExceptionHandler.process(e);
}
}
}
return ret;
}
/**
* get the Column Comment especially for oracle type.
@@ -1372,12 +1299,9 @@ public class DBConnectionFillerImpl extends MetadataFillerImpl<DatabaseConnectio
}
}
}
Map<String, String> tableComments = null;
if (!flag) {
tableComments = this.getTableComments(dbJDBCMetadata, catalogName, schemaPattern);
}
ResultSet tables = dbJDBCMetadata.getTables(catalogName, schemaPattern, tablePattern, tableType);
boolean hasRemarksCol = hasRemarksColumn(tables);
while (tables.next()) {
String tableName = getStringFromResultSet(tables, GetTable.TABLE_NAME.name());
String temptableType = getStringFromResultSet(tables, GetTable.TABLE_TYPE.name());
@@ -1396,13 +1320,8 @@ public class DBConnectionFillerImpl extends MetadataFillerImpl<DatabaseConnectio
if (tableName == null || tablesToFilter.contains(tableName) || tableName.startsWith("/")) { //$NON-NLS-1$
continue;
}
if (hasRemarksCol) {
tableComment = getRemarksFromResultSet(tables);
}
if (tableComments != null) {
if (StringUtils.isEmpty(tableComment)) {
tableComment = tableComments.get(tableName);
}
if (!flag) {
tableComment = getTableComment(dbJDBCMetadata, tables, tableName, catalogName, schemaPattern);
}
// create table
TdTable table = RelationalFactory.eINSTANCE.createTdTable();
@@ -1452,17 +1371,8 @@ public class DBConnectionFillerImpl extends MetadataFillerImpl<DatabaseConnectio
}
}
try {
boolean flag = true;
if (pack != null) {
Connection c = ConnectionHelper.getConnection(pack);
flag = MetadataConnectionUtils.isOracle8i(c);
}
Map<String, String> tableComments = null;
if (!flag) {
tableComments = this.getTableComments(dbJDBCMetadata, catalogName, schemaPattern);
}
ResultSet tables = dbJDBCMetadata.getTables(catalogName, schemaPattern, viewPattern, tableType);
boolean hasRemarksCol = hasRemarksColumn(tables);
while (tables.next()) {
String tableName = getStringFromResultSet(tables, GetTable.TABLE_NAME.name());
@@ -1473,14 +1383,14 @@ public class DBConnectionFillerImpl extends MetadataFillerImpl<DatabaseConnectio
continue;
}
// common
boolean flag = true;
String tableComment = null;
if (hasRemarksCol) {
tableComment = getRemarksFromResultSet(tables);
if (pack != null) {
Connection c = ConnectionHelper.getConnection(pack);
flag = MetadataConnectionUtils.isOracle8i(c);
}
if (tableComments != null) {
if (StringUtils.isEmpty(tableComment)) {
tableComment = tableComments.get(tableName);
}
if (!flag) {
tableComment = getTableComment(dbJDBCMetadata, tables, tableName, catalogName, schemaPattern);
}
// create table
TdView table = RelationalFactory.eINSTANCE.createTdView();
@@ -1519,24 +1429,6 @@ public class DBConnectionFillerImpl extends MetadataFillerImpl<DatabaseConnectio
return valueOfString;
}
private boolean hasRemarksColumn(ResultSet resultSet) {
try {
if (resultSet == null || resultSet.getMetaData() == null) {
return false;
}
int numOfCols = resultSet.getMetaData().getColumnCount();
for (int i = 1; i < numOfCols + 1; i++) {
String colName = resultSet.getMetaData().getColumnLabel(i);
if (StringUtils.equals(colName, GetColumn.REMARKS.name())) {
return true;
}
}
} catch (SQLException e) {
CommonExceptionHandler.process(e);
}
return false;
}
private String getRemarksFromResultSet(ResultSet resultSet) {
String valueOfString = null;
try {

View File

@@ -38,10 +38,6 @@ public final class DatabaseConstant {
public static final String ODBC_DRIVER_NAME = "jdbc-odbc";
public static final String INGRES_PRODUCT_NAME = "ingres";
public static final String JDBC_INGRES_DEIVER_NAME = "Ingres Corporation - JDBC Driver";
// feature 0010630 zshen: Tables are not found when using Excel with ODBC connection
public static final String ODBC_EXCEL_PRODUCT_NAME = "EXCEL";

View File

@@ -811,21 +811,6 @@ public class ConnectionHelper {
return false;
}
/**
* DOC xqliu Comment method "isIngress".
*
* @param connection
* @return
*/
public static boolean isIngress(Connection connection) {
DatabaseConnection dbConn = SwitchHelpers.DATABASECONNECTION_SWITCH.doSwitch(connection);
if (dbConn != null) {
String databaseType = dbConn.getDatabaseType() == null ? "" : dbConn.getDatabaseType(); //$NON-NLS-1$
return databaseType.toLowerCase().contains("ingres"); //$NON-NLS-1$
}
return false;
}
/**
* DOC xqliu Comment method "isDb2".
*

View File

@@ -95,8 +95,6 @@ public class Application implements IApplication {
private static final String TALEND_FORCE_INITIAL_WORKSPACE_PROMPT_SYS_PROP =
"talend.force.initial.workspace.prompt"; //$NON-NLS-1$
private static final String OPS4J_USEFALLBACKREPOSITORIES_ARG = "org.ops4j.pax.url.mvn.useFallbackRepositories"; //$NON-NLS-1$
private static final Logger LOGGER = Logger.getLogger(Application.class);
/**
@@ -107,9 +105,6 @@ public class Application implements IApplication {
@SuppressWarnings("restriction")
@Override
public Object start(IApplicationContext context) throws Exception {
if (System.getProperty(OPS4J_USEFALLBACKREPOSITORIES_ARG) == null) {
System.setProperty(OPS4J_USEFALLBACKREPOSITORIES_ARG, Boolean.FALSE.toString());
}
if (Boolean.getBoolean(EclipseCommandLine.PROP_TALEND_BUNDLES_DO_CLEAN)) {
System.setProperty(EclipseCommandLine.PROP_TALEND_BUNDLES_DO_CLEAN, Boolean.FALSE.toString());
EclipseCommandLine.updateOrCreateExitDataPropertyWithCommand(EclipseCommandLine.CLEAN, null, false);

View File

@@ -845,7 +845,7 @@ DatabaseForm.maprdb.MaprTUsernameTxt.label=\u30E6\u30FC\u30B6\u30FC\u540D
DatabaseForm.maprdb.MaprTPasswordTxt.label=\u30D1\u30B9\u30EF\u30FC\u30C9
DatabaseForm.maprdb.MaprTClusterTxt.label=\u30AF\u30E9\u30B9\u30BF\u30FC\u540D
DatabaseForm.maprdb.MaprTDurationTxt.label=\u30C1\u30B1\u30C3\u30C8\u306E\u6709\u52B9\u671F\u9593(\u79D2)
DatabaseForm.AddParams=\u8FFD\u52A0\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
DatabaseForm.AddParams=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u8FFD\u52A0
DatabaseForm.alert=DB\u30BF\u30A4\u30D7\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
DatabaseForm.portAlert=DB\u30DD\u30FC\u30C8\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
DatabaseForm.serverAlert=DB\u30B5\u30FC\u30D0\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044

View File

@@ -829,143 +829,183 @@ public abstract class AbstractCreateTableAction extends AbstractCreateAction {
}
}
private void openDatabaseTableWizard(final DatabaseConnectionItem item, final MetadataTable metadataTable, final boolean forceReadOnly, final RepositoryNode node, final boolean creation) {
String name = "User action : " + getText(); //$NON-NLS-1$
RepositoryWorkUnit<Object> repositoryWorkUnit = new RepositoryWorkUnit<Object>(name, this) {
private void openDatabaseTableWizard(final DatabaseConnectionItem item, final MetadataTable metadataTable,
final boolean forceReadOnly, final RepositoryNode node, final boolean creation) {
UIJob job = new UIJob(Messages.getString("CreateTableAction.action.createTitle")) { //$NON-NLS-1$
@Override
protected void run() throws LoginException, PersistenceException {
final ManagerConnection managerConnection = new ManagerConnection();
public IStatus runInUIThread(final IProgressMonitor monitor) {
String name = "User action : " + getText(); //$NON-NLS-1$
RepositoryWorkUnit<Object> repositoryWorkUnit = new RepositoryWorkUnit<Object>(name, this) {
DatabaseConnection connection = (DatabaseConnection) item.getConnection();
boolean useKrb = Boolean.valueOf(connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_USE_KRB));
// TUP-596 : Update the context name in connection when the user does a context switch in DI
String oldContextName = connection.getContextName();
Connection copyConnection = MetadataConnectionUtils.prepareConection(connection);
if (copyConnection == null) {
return;
}
IMetadataConnection metadataConnection = ConvertionHelper.convert(copyConnection, false, copyConnection.getContextName());
String newContextName = connection.getContextName();
if (oldContextName != null && newContextName != null && !oldContextName.equals(newContextName)) {
if (node != null && node.getObject() != null && node.getObject().getProperty() != null) {
Item itemTemp = node.getObject().getProperty().getItem();
if (itemTemp != null && itemTemp instanceof ConnectionItem) {
ConnectionItem connItem = (ConnectionItem) itemTemp;
SwitchContextGroupNameImpl.getInstance().updateContextGroup(connItem, newContextName);
}
}
}
boolean isTcomDB = false;
IGenericDBService dbService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(IGenericDBService.class)) {
dbService = GlobalServiceRegister.getDefault().getService(IGenericDBService.class);
}
if (dbService != null) {
for (ERepositoryObjectType type : dbService.getExtraTypes()) {
if (type.getLabel().equals(metadataConnection.getDbType())) {
isTcomDB = true;
}
}
}
if (!metadataConnection.getDbType().equals(EDatabaseConnTemplate.GODBC.getDBDisplayName()) && !metadataConnection.getDbType().equals(EDatabaseConnTemplate.ACCESS.getDBDisplayName())
&& !metadataConnection.getDbType().equals(EDatabaseConnTemplate.GENERAL_JDBC.getDBDisplayName()) && !isTcomDB) {
// TODO 1. To identify if it is hive connection.
String hiveMode = (String) metadataConnection.getParameter(ConnParameterKeys.CONN_PARA_KEY_HIVE_MODE);
if (EDatabaseTypeName.HIVE.getDisplayName().equals(metadataConnection.getDbType())) {
// metadataConnection.setDriverJarPath((String)metadataConnection
// .getParameter(ConnParameterKeys.CONN_PARA_KEY_METASTORE_CONN_DRIVER_JAR));
if (HiveModeInfo.get(hiveMode) == HiveModeInfo.EMBEDDED) {
JavaSqlFactory.doHivePreSetup((DatabaseConnection) metadataConnection.getCurrentConnection());
}
} else if (EDatabaseTypeName.IMPALA.getDisplayName().equals(metadataConnection.getDbType())) {
DatabaseConnection originalValueConnection = null;
IRepositoryContextService repositoryContextService = CoreRuntimePlugin.getInstance().getRepositoryContextService();
if (repositoryContextService != null) {
originalValueConnection = repositoryContextService.cloneOriginalValueConnection(connection, false, null);
}
if (originalValueConnection != null) {
metadataConnection.setUrl(originalValueConnection.getURL());
}
} else {
String genUrl = DatabaseConnStrUtil
.getURLString(metadataConnection.getDbType(), metadataConnection.getDbVersionString(), metadataConnection.getServerName(), metadataConnection.getUsername(),
metadataConnection.getPassword(), metadataConnection.getPort(), metadataConnection.getDatabase(), metadataConnection.getFileFieldName(),
metadataConnection.getDataSourceName(), metadataConnection.getDbRootPath(), metadataConnection.getAdditionalParams());
if (!(metadataConnection.getDbType().equals(EDatabaseConnTemplate.IMPALA.getDBDisplayName()) && useKrb)) {
metadataConnection.setUrl(genUrl);
}
}
@Override
protected void run() throws LoginException, PersistenceException {
}
// bug 23508:even open type is metaTable,not connection,we always need the connection's
// datapackage to find the table schema when click the retrieve schema button
if (connection != null) {
EList<orgomg.cwm.objectmodel.core.Package> dp = connection.getDataPackage();
Collection<Package> newDataPackage = EcoreUtil.copyAll(dp);
ConnectionHelper.addPackages(newDataPackage, (DatabaseConnection) metadataConnection.getCurrentConnection());
}
if (creation) {
String hiveMode = (String) metadataConnection.getParameter(ConnParameterKeys.CONN_PARA_KEY_HIVE_MODE);
if (EDatabaseTypeName.HIVE.getDisplayName().equals(metadataConnection.getDbType())) {
try {
HiveConnectionManager.getInstance().checkConnection(metadataConnection);
} catch (Exception e) {
e.printStackTrace();
}
} else {
managerConnection.check(metadataConnection);
}
monitor.beginTask(Messages.getString("CreateTableAction.action.createTitle"), IProgressMonitor.UNKNOWN); //$NON-NLS-1$
// ExtractMetaDataUtils.metadataCon = metadataConnection;
// when open,set use synonyms false.
ExtractMetaDataUtils.getInstance().setUseAllSynonyms(false);
if (!monitor.isCanceled()) {
final ManagerConnection managerConnection = new ManagerConnection();
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
boolean repositoryObjectEditable = factory.isEditableAndLockIfPossible(node.getObject());
if (!repositoryObjectEditable) {
boolean flag = MessageDialog
.openConfirm(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), Messages.getString("CreateTableAction.action.Warning"),
Messages.getString("CreateTableAction.action.NotLockMessage"));
if (flag) {
DatabaseTableWizard databaseTableWizard = new DatabaseTableWizard(PlatformUI.getWorkbench(), creation, node.getObject(), metadataTable, getExistingNames(), forceReadOnly,
managerConnection, metadataConnection);
DatabaseConnection connection = (DatabaseConnection) item.getConnection();
boolean useKrb = Boolean.valueOf(connection.getParameters().get(
ConnParameterKeys.CONN_PARA_KEY_USE_KRB));
// TUP-596 : Update the context name in connection when the user does a context switch in DI
String oldContextName = connection.getContextName();
Connection copyConnection = MetadataConnectionUtils.prepareConection(connection);
if (copyConnection == null) {
return;
}
IMetadataConnection metadataConnection = ConvertionHelper.convert(copyConnection, false,
copyConnection.getContextName());
String newContextName = connection.getContextName();
if (oldContextName != null && newContextName != null && !oldContextName.equals(newContextName)) {
if (node != null && node.getObject() != null && node.getObject().getProperty() != null) {
Item itemTemp = node.getObject().getProperty().getItem();
if (itemTemp != null && itemTemp instanceof ConnectionItem) {
ConnectionItem connItem = (ConnectionItem) itemTemp;
SwitchContextGroupNameImpl.getInstance().updateContextGroup(connItem, newContextName);
}
}
}
boolean isTcomDB = false;
IGenericDBService dbService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(IGenericDBService.class)) {
dbService = GlobalServiceRegister.getDefault().getService(
IGenericDBService.class);
}
if(dbService != null){
for(ERepositoryObjectType type : dbService.getExtraTypes()){
if(type.getLabel().equals(metadataConnection.getDbType())){
isTcomDB = true;
}
}
}
if (!metadataConnection.getDbType().equals(EDatabaseConnTemplate.GODBC.getDBDisplayName())
&& !metadataConnection.getDbType().equals(EDatabaseConnTemplate.ACCESS.getDBDisplayName())
&& !metadataConnection.getDbType().equals(
EDatabaseConnTemplate.GENERAL_JDBC.getDBDisplayName())
&& !isTcomDB) {
// TODO 1. To identify if it is hive connection.
String hiveMode = (String) metadataConnection
.getParameter(ConnParameterKeys.CONN_PARA_KEY_HIVE_MODE);
if (EDatabaseTypeName.HIVE.getDisplayName().equals(metadataConnection.getDbType())) {
// metadataConnection.setDriverJarPath((String)metadataConnection
// .getParameter(ConnParameterKeys.CONN_PARA_KEY_METASTORE_CONN_DRIVER_JAR));
if (HiveModeInfo.get(hiveMode) == HiveModeInfo.EMBEDDED) {
JavaSqlFactory.doHivePreSetup((DatabaseConnection) metadataConnection
.getCurrentConnection());
}
} else if (EDatabaseTypeName.IMPALA.getDisplayName().equals(metadataConnection.getDbType())) {
DatabaseConnection originalValueConnection = null;
IRepositoryContextService repositoryContextService = CoreRuntimePlugin.getInstance()
.getRepositoryContextService();
if (repositoryContextService != null) {
originalValueConnection = repositoryContextService
.cloneOriginalValueConnection(connection, false, null);
}
if (originalValueConnection != null) {
metadataConnection.setUrl(originalValueConnection.getURL());
}
} else {
String genUrl = DatabaseConnStrUtil.getURLString(metadataConnection.getDbType(),
metadataConnection.getDbVersionString(), metadataConnection.getServerName(),
metadataConnection.getUsername(), metadataConnection.getPassword(),
metadataConnection.getPort(), metadataConnection.getDatabase(),
metadataConnection.getFileFieldName(), metadataConnection.getDataSourceName(),
metadataConnection.getDbRootPath(), metadataConnection.getAdditionalParams());
if (!(metadataConnection.getDbType().equals(EDatabaseConnTemplate.IMPALA.getDBDisplayName()) && useKrb)) {
metadataConnection.setUrl(genUrl);
}
}
WizardDialog wizardDialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), databaseTableWizard);
wizardDialog.setBlockOnOpen(true);
Display.getDefault().asyncExec(() -> {
}
// bug 23508:even open type is metaTable,not connection,we always need the connection's
// datapackage to find the table schema when click the retrieve schema button
if (connection != null) {
EList<orgomg.cwm.objectmodel.core.Package> dp = connection.getDataPackage();
Collection<Package> newDataPackage = EcoreUtil.copyAll(dp);
ConnectionHelper.addPackages(newDataPackage,
(DatabaseConnection) metadataConnection.getCurrentConnection());
}
if (creation) {
String hiveMode = (String) metadataConnection
.getParameter(ConnParameterKeys.CONN_PARA_KEY_HIVE_MODE);
if (EDatabaseTypeName.HIVE.getDisplayName().equals(metadataConnection.getDbType())) {
try {
HiveConnectionManager.getInstance().checkConnection(metadataConnection);
} catch (Exception e) {
e.printStackTrace();
}
} else {
managerConnection.check(metadataConnection);
}
// ExtractMetaDataUtils.metadataCon = metadataConnection;
// when open,set use synonyms false.
ExtractMetaDataUtils.getInstance().setUseAllSynonyms(false);
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
boolean repositoryObjectEditable = factory.isEditableAndLockIfPossible(node.getObject());
if (!repositoryObjectEditable) {
boolean flag = MessageDialog.openConfirm(PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell(), Messages.getString("CreateTableAction.action.Warning"),
Messages.getString("CreateTableAction.action.NotLockMessage"));
if (flag) {
DatabaseTableWizard databaseTableWizard = new DatabaseTableWizard(
PlatformUI.getWorkbench(), creation, node.getObject(), metadataTable,
getExistingNames(), forceReadOnly, managerConnection, metadataConnection);
WizardDialog wizardDialog = new WizardDialog(PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell(), databaseTableWizard);
wizardDialog.setBlockOnOpen(true);
handleWizard(node, wizardDialog);
}
} else {
DatabaseTableWizard databaseTableWizard = new DatabaseTableWizard(PlatformUI.getWorkbench(),
creation, node.getObject(), metadataTable, getExistingNames(), forceReadOnly,
managerConnection, metadataConnection);
WizardDialog wizardDialog = new WizardDialog(PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell(), databaseTableWizard);
wizardDialog.setBlockOnOpen(true);
handleWizard(node, wizardDialog);
}
} else {
// added for bug 16595
// no need connect to database when double click one schema.
final boolean skipStep = true;
DatabaseTableWizard databaseTableWizard = new DatabaseTableWizard(PlatformUI.getWorkbench(),
creation, node.getObject(), metadataTable, getExistingNames(), forceReadOnly,
managerConnection, metadataConnection);
databaseTableWizard.setSkipStep(skipStep);
WizardDialog wizardDialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell(), databaseTableWizard);
handleWizard(node, wizardDialog);
});
}
}
} else {
DatabaseTableWizard databaseTableWizard =
new DatabaseTableWizard(PlatformUI.getWorkbench(), creation, node.getObject(), metadataTable, getExistingNames(), forceReadOnly, managerConnection, metadataConnection);
WizardDialog wizardDialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), databaseTableWizard);
wizardDialog.setBlockOnOpen(true);
Display.getDefault().asyncExec(() -> {
handleWizard(node, wizardDialog);
});
}
} else {
// added for bug 16595
// no need connect to database when double click one schema.
final boolean skipStep = true;
DatabaseTableWizard databaseTableWizard =
new DatabaseTableWizard(PlatformUI.getWorkbench(), creation, node.getObject(), metadataTable, getExistingNames(), forceReadOnly, managerConnection, metadataConnection);
databaseTableWizard.setSkipStep(skipStep);
WizardDialog wizardDialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), databaseTableWizard);
Display.getDefault().asyncExec(() -> {
handleWizard(node, wizardDialog);
});
}
}
};
repositoryWorkUnit.setAvoidUnloadResources(isAvoidUnloadResources());
IRepositoryService repositoryService = GlobalServiceRegister.getDefault().getService(
IRepositoryService.class);
repositoryService.getProxyRepositoryFactory().executeRepositoryWorkUnit(repositoryWorkUnit);
monitor.done();
return Status.OK_STATUS;
};
};
repositoryWorkUnit.setAvoidUnloadResources(isAvoidUnloadResources());
IRepositoryService repositoryService = GlobalServiceRegister.getDefault().getService(IRepositoryService.class);
repositoryService.getProxyRepositoryFactory().executeRepositoryWorkUnit(repositoryWorkUnit);
job.setUser(true);
job.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
if (!event.getResult().isOK()) {
log.error(event.getResult().getMessage(), event.getResult().getException());
} // else eveything is fine so do not log anything
}
});
job.schedule();
}

View File

@@ -5188,11 +5188,7 @@ public class DatabaseForm extends AbstractForm {
boolean b = true;
String databaseType = getConnection().getDatabaseType();
if (databaseType != null) {
if (databaseType.equals("Ingres")) { //$NON-NLS-1$
b = Pattern.matches(Messages.getString("DatabaseForm.ingresDBRegex"), portText.getText()); //$NON-NLS-1$
} else {
b = Pattern.matches(Messages.getString("DatabaseForm.otherDBRegex"), portText.getText()); //$NON-NLS-1$
}
b = Pattern.matches(Messages.getString("DatabaseForm.otherDBRegex"), portText.getText()); //$NON-NLS-1$
}
if (b) {
b = portText.getText().length() <= 5;

View File

@@ -28,8 +28,6 @@ public abstract class AbstractTreePopulator {
private String encoding;
protected String originfilePath;
protected String filePath;
protected static int limit;
@@ -84,22 +82,6 @@ public abstract class AbstractTreePopulator {
public static int getLimit() {
return limit;
}
/**
* Getter for originfilePath.
* @return the originfilePath
*/
public String getOriginfilePath() {
return originfilePath;
}
/**
* Sets the originfilePath.
* @param originfilePath the originfilePath to set
*/
public void setOriginfilePath(String originfilePath) {
this.originfilePath = originfilePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;

View File

@@ -13,9 +13,6 @@
package org.talend.repository.ui.wizards.metadata.connection.files.xml;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
@@ -23,7 +20,6 @@ import java.util.List;
import org.apache.commons.collections.BidiMap;
import org.apache.commons.collections.bidimap.DualHashBidiMap;
import org.apache.commons.io.IOUtils;
import org.apache.xerces.xs.XSModel;
import org.dom4j.Document;
import org.dom4j.DocumentException;
@@ -165,28 +161,6 @@ public class TreePopulator extends AbstractTreePopulator {
treeViewer.setInput(new Object[] { selected });
treeViewer.expandToLevel(3);
} else {
String originalJsonFilePath = getOriginfilePath();
if(null != originalJsonFilePath && !"".equals(originalJsonFilePath.trim())) {
File file = new File(originalJsonFilePath);
if (file.exists()) {
if (!file.isDirectory()) {
try(InputStream input = new FileInputStream(file);) {
String jsonStr = IOUtils.toString(input, getEncoding());
if(barceType(jsonStr) == 0 && childs.length == 1) {
if(isNeedAddRoot(jsonStr)) {
childs = ((ATreeNode)childs[0]).getChildren();
}
} else if(barceType(jsonStr) == 1 && childs.length == 1) {
ATreeNode objectNode = (ATreeNode) ((ATreeNode)childs[0]).getChildren()[0];
childs = objectNode.getChildren();
}
} catch (IOException e) {
ExceptionHandler.process(e);
}
}
}
}
treeViewer.setInput(childs);
treeViewer.expandToLevel(3);
}
@@ -196,35 +170,7 @@ public class TreePopulator extends AbstractTreePopulator {
}
return false;
}
private int barceType(String originalJsonString) {
for (int c = 0; c < originalJsonString.length(); ++c) {
if (originalJsonString.charAt(c) == '{') {
return 0; //brace
} else if (originalJsonString.charAt(c) == '[') {
return 1; //bracket
}
}
return -1;
}
private boolean isNeedAddRoot(String originalJsonString) {
boolean isNeedAddRoot = false;
net.sf.json.JSONObject jso = net.sf.json.JSONObject.fromObject(originalJsonString);
String jsonKey = "";
Object firstObject = null;
if (jso.names().size() == 1) {
jsonKey = jso.names().get(0).toString();
firstObject = jso.get(jsonKey);
}
if (jso.size() > 1
|| (firstObject != null && firstObject instanceof net.sf.json.JSONArray && ((net.sf.json.JSONArray) firstObject)
.size() > 1)) {
isNeedAddRoot = true;
}
return isNeedAddRoot;
}
public boolean populateTree(XSModel xsModel, ATreeNode selectedNode, List<ATreeNode> treeNodes) {
xPathToTreeItem.clear();
ATreeNode treeNode = null;

View File

@@ -1,35 +0,0 @@
// ============================================================================
//
// Copyright (C) 2006-2021 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.wizards.metadata.table.database;
import java.util.List;
import org.talend.core.model.metadata.builder.database.TableNode;
/**
* wzhang class global comment. Detailled comment
*/
public class DefaultSelectorTreeViewerProvider extends SelectorTreeViewerProvider {
public DefaultSelectorTreeViewerProvider() {
super();
}
@Override
public Object[] getChildren(Object parentElement) {
TableNode tableNode = (TableNode) parentElement;
List<TableNode> child = tableNode.getChildren();
return child.toArray();
}
}

View File

@@ -16,8 +16,6 @@ import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.Driver;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.Collator;
import java.util.ArrayList;
@@ -82,7 +80,6 @@ import org.talend.commons.ui.swt.formtools.Form;
import org.talend.commons.ui.swt.formtools.UtilsButton;
import org.talend.commons.utils.data.text.IndiceHelper;
import org.talend.commons.utils.threading.TalendCustomThreadPoolExecutor;
import org.talend.core.database.EDatabase4DriverClassName;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.database.conn.ConnParameterKeys;
import org.talend.core.model.metadata.IMetadataConnection;
@@ -92,7 +89,6 @@ import org.talend.core.model.metadata.MetadataToolHelper;
import org.talend.core.model.metadata.builder.connection.DatabaseConnection;
import org.talend.core.model.metadata.builder.connection.MetadataColumn;
import org.talend.core.model.metadata.builder.connection.MetadataTable;
import org.talend.core.model.metadata.builder.database.DriverShim;
import org.talend.core.model.metadata.builder.database.ExtractMetaDataFromDataBase;
import org.talend.core.model.metadata.builder.database.ExtractMetaDataFromDataBase.ETableTypes;
import org.talend.core.model.metadata.builder.database.ExtractMetaDataUtils;
@@ -392,7 +388,6 @@ public class SelectorTableForm extends AbstractForm {
// TDI-28768 after add checkStateProvider, the catalog and schema checked status become true , then
// force them to false
if (parentNode.getType() == TableNode.CATALOG || parentNode.getType() == TableNode.SCHEMA) {
retrieveSchema(parentNode);
needUpdate = false;
}
boolean firstExpand = false;
@@ -401,9 +396,6 @@ public class SelectorTableForm extends AbstractForm {
} else {
firstExpand = true;
}
if (treeItem.isDisposed()) {
return;
}
for (TreeItem item : treeItem.getItems()) {
if (item.getData() != null) {
TableNode node = (TableNode) item.getData();
@@ -474,7 +466,7 @@ public class SelectorTableForm extends AbstractForm {
viewProvider = provider.getMetadataViewProvider();
} else {
viewProvider = new DefaultSelectorTreeViewerProvider();
viewProvider = new SelectorTreeViewerProvider();
}
viewer.setLabelProvider(viewProvider);
@@ -484,237 +476,7 @@ public class SelectorTableForm extends AbstractForm {
scrolledCompositeFileViewer.setContent(tree);
scrolledCompositeFileViewer.setMinSize(tree.computeSize(SWT.DEFAULT, SWT.DEFAULT));
}
private void retrieveSchema(TableNode tableNode) {
IRunnableWithProgress runnable = new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
monitor.beginTask(Messages.getString("CreateTableAction.action.createTitle"), IProgressMonitor.UNKNOWN); //$NON-NLS-1$
List<TableNode> child = tableNode.getChildren();
boolean extended = false;
if (!child.isEmpty()) {
for (TableNode node : child) {
if (node.getType() == TableNode.TABLE) {
extended = true;
break;
}
}
}
// if extended is true, means table already got,no need to get again.
if (extended) {
return;
}
List<MetadataTable> tableList = new ArrayList<MetadataTable>();
retrieveAllSubNodes(tableNode, tableList);
Display.getDefault().syncExec(() -> {
viewer.setInput(tableNodeList);
viewer.expandToLevel(tableNode, viewer.ALL_LEVELS);
});
monitor.done();
}
};
try {
this.parentWizardPage.getWizard().getContainer().run(true, true, runnable);
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
private void retrieveAllSubNodes(TableNode tableNode, List<MetadataTable> tableList) {
tableList.clear();
List<TableNode> child = tableNode.getChildren();
boolean extended = false;
if (!child.isEmpty()) {
for (TableNode node : child) {
if (node.getType() == TableNode.TABLE) {
extended = true;
break;
}
}
}
// if extended is true, means table already got,no need to get again.
if (extended) {
return;
}
IMetadataConnection metadataConn = tableNode.getMetadataConn();
Connection conn = null;
Driver driver = null;
DatabaseMetaData dbMetaData = null;
ExtractMetaDataUtils extractMeta = ExtractMetaDataUtils.getInstance();
// Added by Marvin Wang on Mar. 13, 2013 for loading hive jars dynamically, refer to TDI-25072.
if (EDatabaseTypeName.HIVE.getXmlName().equalsIgnoreCase(metadataConn.getDbType())) {
try {
dbMetaData = HiveConnectionManager.getInstance().extractDatabaseMetaData(metadataConn);
} catch (Exception e) {
ExceptionHandler.process(e);
}
} else if (EDatabaseTypeName.IMPALA.getDisplayName().equalsIgnoreCase(metadataConn.getDbType())) {
try {
dbMetaData = ImpalaConnectionManager.getInstance().createConnection(metadataConn).getMetaData();
} catch (Exception e) {
ExceptionHandler.process(e);
}
} else {
List list = extractMeta.getConnectionList(metadataConn);
if (list != null && !list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i) instanceof Connection) {
conn = (Connection) list.get(i);
}
if (list.get(i) instanceof DriverShim) {
driver = (DriverShim) list.get(i);
}
}
}
dbMetaData = extractMeta.getDatabaseMetaData(conn, metadataConn.getDbType(), metadataConn.isSqlMode(),
metadataConn.getDatabase());
}
int type = tableNode.getType();
orgomg.cwm.objectmodel.core.Package pack = null;
if (type == tableNode.CATALOG) {
if (tableNode.getChildren().isEmpty()) {
pack = tableNode.getCatalog();
} else {
for (TableNode n : tableNode.getChildren()) {
retrieveAllSubNodes(n, tableList);
}
}
} else if (type == tableNode.SCHEMA) {
pack = tableNode.getSchema();
}
try {
if (pack != null) {
TableInfoParameters paras = tableNode.getParas();
List<ETableTypes> paraType = paras.getTypes();
Set<String> availableTableTypes = new HashSet<String>();
for (ETableTypes tableType : paraType) {
availableTableTypes.add(tableType.getName());
}
// get all tables/views depending the filter selected
Set<String> tableNameFilter = null;
if (!paras.isUsedName()) {
tableNameFilter = new HashSet<String>();
if (paras.getSqlFiter() != null && !"".equals(paras.getSqlFiter())) { //$NON-NLS-1$
PreparedStatement stmt = extractMeta.getConn().prepareStatement(paras.getSqlFiter());
extractMeta.setQueryStatementTimeout(stmt);
ResultSet rsTables = stmt.executeQuery();
while (rsTables.next()) {
String nameKey = rsTables.getString(1).trim();
tableNameFilter.add(nameKey);
}
rsTables.close();
stmt.close();
}
} else {
tableNameFilter = paras.getNameFilters();
}
List<MetadataTable> tempListTables = new ArrayList<MetadataTable>();
MetadataFillFactory dbInstance = MetadataFillFactory.getDBInstance(metadataConn);
for (String filter : tableNameFilter) {
tempListTables = dbInstance.fillAll(pack, dbMetaData, metadataConn, null, filter,
availableTableTypes.toArray(new String[] {}));
for (MetadataTable table : tempListTables) {
boolean contains = false;
for (MetadataTable inListTable : tableList) {
if (inListTable.getName().equals(table.getName())) {
contains = true;
break;
}
}
if (!contains) {
tableList.add(table);
}
}
}
if (tableNameFilter.isEmpty()) {
tempListTables = dbInstance.fillAll(pack, dbMetaData, metadataConn, null, null,
availableTableTypes.toArray(new String[] {}));
for (MetadataTable table : tempListTables) {
boolean contains = false;
for (MetadataTable inListTable : tableList) {
if (inListTable.getName().equals(table.getName())) {
contains = true;
break;
}
}
if (!contains) {
tableList.add(table);
}
}
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
} finally {
String dbType = metadataConn.getDbType();
// bug 22619
String driverClass = metadataConn.getDriverClass();
if (conn != null) {
ConnectionUtils.closeConnection(conn);
}
// for specific db such as derby
if (driver != null) {
if ((driverClass != null && driverClass.equals(EDatabase4DriverClassName.JAVADB_EMBEDED.getDriverClass()))
|| (dbType != null && (dbType.equals(EDatabaseTypeName.JAVADB_EMBEDED.getDisplayName())
|| dbType.equals(EDatabaseTypeName.JAVADB_DERBYCLIENT.getDisplayName())
|| dbType.equals(EDatabaseTypeName.JAVADB_JCCJDBC.getDisplayName())
|| dbType.equals(EDatabaseTypeName.HSQLDB_IN_PROGRESS.getDisplayName())))) {
try {
driver.connect("jdbc:derby:;shutdown=true", null); //$NON-NLS-1$
} catch (SQLException e) {
// exception of shutdown success. no need to catch.
}
}
}
}
if (!(tableNode.getType() == TableNode.CATALOG && pack == null)) {
transferToTableNode(tableList, tableNode);
}
}
protected void transferToTableNode(List<MetadataTable> list, TableNode parentNode) {
if (list != null && !list.isEmpty()) {
for (MetadataTable table : list) {
if (table instanceof TdTable) {
TdTable td = (TdTable) table;
TableNode tableNode = new TableNode();
tableNode.setType(TableNode.TABLE);
tableNode.setValue(td.getLabel());
tableNode.setItemType(td.getTableType());
tableNode.setTable(td);
tableNode.setParent(parentNode);
parentNode.addChild(tableNode);
} else if (table instanceof TdView) {
TdView tv = (TdView) table;
TableNode tableNode = new TableNode();
tableNode.setType(TableNode.TABLE);
tableNode.setValue(tv.getLabel());
tableNode.setItemType(tv.getTableType());
tableNode.setView(tv);
tableNode.setParent(parentNode);
parentNode.addChild(tableNode);
}
}
}
}
private final Collator col = Collator.getInstance(Locale.getDefault());
/**
@@ -1181,10 +943,6 @@ public class SelectorTableForm extends AbstractForm {
}
if (canAdd) {
tableNodes.add(schemaNode);
if (schemaNode.getValue() != null && StringUtils.isEmpty(schemaNode.getValue().trim())) {
List<MetadataTable> tableList = new ArrayList<MetadataTable>();
retrieveAllSubNodes(schemaNode, tableList);
}
}
}
}

View File

@@ -293,20 +293,6 @@ public class MetadataToolHelperTest {
columnName = MetadataToolHelper.validateColumnName("_test_______________________t", 0);
assertEquals("_test_______________________t", columnName);
char c = 230;
columnName = MetadataToolHelper.validateColumnName(String.valueOf(c), 0);
assertEquals("ae", columnName);
char c1 = 229;
columnName = MetadataToolHelper.validateColumnName(String.valueOf(c1), 0);
assertEquals("a", columnName);
columnName = MetadataToolHelper.validateColumnName(String.valueOf(c) + String.valueOf(c1), 0);
assertEquals("aea", columnName);
columnName = MetadataToolHelper.validateColumnName("----" + String.valueOf(c) + String.valueOf(c1) + "-----", 0);
assertEquals("_aea", columnName);
CoreRuntimePlugin.getInstance().getProjectPreferenceManager().setAllowSpecificCharacters(true);
columnName = MetadataToolHelper.validateColumnName("你好", 0);

View File

@@ -183,10 +183,6 @@ public class RepositoryToComponentPropertyTest {
dbConnection.setDatabaseType(EDatabaseTypeName.ORACLE_OCI.getDbType());
Object result1 = RepositoryToComponentProperty.getValue(dbConnection, "DBTYPE", null); //$NON-NLS-1$
assertEquals(EDatabaseTypeName.ORACLE_OCI.getXMLType(), result1);
dbConnection.setDatabaseType(EDatabaseTypeName.INGRES.getDbType());
Object result2 = RepositoryToComponentProperty.getValue(dbConnection, "DBTYPE", null); //$NON-NLS-1$
assertEquals(EDatabaseTypeName.INGRES.getXMLType(), result2);
}
private void checkIfWithoutQuotes(DatabaseConnection connection, String value) {

View File

@@ -12,7 +12,7 @@
// ============================================================================
package org.talend.designer.maven.template;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.*;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
@@ -43,11 +43,11 @@ public class MavenTemplateManagerTest {
@Test
public void testSetJavaVersionForModel() {
manager.setValue(JavaUtils.PROJECT_JAVA_VERSION_KEY, JavaCore.VERSION_1_7);
Model model = MavenTemplateManager.getCodeProjectTemplateModel(null);
Model model = MavenTemplateManager.getCodeProjectTemplateModel();
validateResult(model, JavaCore.VERSION_1_7);
manager.setValue(JavaUtils.PROJECT_JAVA_VERSION_KEY, "");
model = MavenTemplateManager.getCodeProjectTemplateModel(null);
model = MavenTemplateManager.getCodeProjectTemplateModel();
validateResult(model, JavaCore.VERSION_1_8);
}

View File

@@ -1,177 +0,0 @@
// ============================================================================
//
// Copyright (C) 2006-2023 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.designer.maven.tools;
import static org.junit.Assert.*;
import java.util.HashMap;
import java.util.Map;
import org.apache.maven.model.Build;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DependencyManagement;
import org.apache.maven.model.DistributionManagement;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginManagement;
import org.apache.maven.model.Profile;
import org.apache.maven.model.Repository;
import org.junit.Before;
import org.junit.Test;
import org.talend.designer.maven.model.MergedModel;
import org.talend.designer.maven.template.MavenTemplateManager;
import org.talend.repository.ProjectManager;
public class MergeModelToolTest {
private Model defaultModel;
private Map<String, Object> parameters;
private MergeModelTool mergeTool;
@Before
public void setUp() throws Exception {
mergeTool = new MergeModelTool();
parameters = new HashMap<String, Object>();
parameters.put(MavenTemplateManager.KEY_PROJECT_NAME,
ProjectManager.getInstance().getCurrentProject().getTechnicalLabel());
defaultModel = MavenTemplateManager.getDefaultProjectModel(parameters);
}
@Test
public void testMergeModelWithWarning() throws Exception {
Model customModel = MavenTemplateManager.getCustomProjectModel(parameters);
customModel.getProperties().setProperty("signer.version", "9.9.9");
MergedModel mergedModel = mergeTool.mergeModel(defaultModel.clone(), customModel);
assertNotNull(mergedModel.getModel());
assertFalse(mergedModel.getIllegalProperties().isEmpty());
assertTrue(mergedModel.getIllegalPluginManagement().isEmpty());
assertTrue(mergedModel.getIllegalPlugins().isEmpty());
assertTrue(mergedModel.getIllegalProfiles().isEmpty());
}
@Test
public void testMergeModelWithError() throws Exception {
Model customModel = MavenTemplateManager.getCustomProjectModel(parameters);
customModel.getProperties().setProperty("signer.version", "9.9.9");
customModel.setBuild(new Build());
customModel.getBuild().setPluginManagement(new PluginManagement());
Plugin plugin = new Plugin();
plugin.setGroupId("org.apache.maven.plugins");
plugin.setArtifactId("maven-compiler-plugin");
customModel.getBuild().getPluginManagement().getPlugins().add(plugin);
Plugin plugin2 = new Plugin();
plugin2.setGroupId("org.talend.ci");
plugin2.setArtifactId("builder-maven-plugin");
customModel.getBuild().getPlugins().add(plugin2);
Profile profile = new Profile();
profile.setId("nexus");
customModel.getProfiles().add(profile);
MergedModel mergedModel = mergeTool.mergeModel(defaultModel.clone(), customModel);
assertNull(mergedModel.getModel());
assertFalse(mergedModel.getIllegalProperties().isEmpty());
assertFalse(mergedModel.getIllegalPluginManagement().isEmpty());
assertFalse(mergedModel.getIllegalPlugins().isEmpty());
assertFalse(mergedModel.getIllegalProfiles().isEmpty());
}
@Test
public void testMergeModelWithOtherSetup() throws Exception {
Model customModel = MavenTemplateManager.getCustomProjectModel(parameters);
customModel.setDependencyManagement(new DependencyManagement());
customModel.getDependencies().add(new Dependency());
customModel.getRepositories().add(new Repository());
customModel.getPluginRepositories().add(new Repository());
customModel.setDistributionManagement(new DistributionManagement());
Model model = mergeTool.migrateCustomModel(defaultModel.clone(), customModel);
assertNotNull(model);
assertNotNull(model.getDependencyManagement());
assertNotNull(model.getDistributionManagement());
assertFalse(customModel.getDependencies().isEmpty());
assertFalse(customModel.getRepositories().isEmpty());
assertFalse(customModel.getPluginRepositories().isEmpty());
}
@Test
public void testMigrateCustomModel() throws Exception {
Model customModel = MavenTemplateManager.getCustomProjectModel(parameters);
customModel.getProperties().setProperty("encoding", "UTF-8");
customModel.getProperties().setProperty("signer.version", "9.9.9");
customModel.getProperties().setProperty("test", "test");
customModel.setBuild(new Build());
customModel.getBuild().setPluginManagement(new PluginManagement());
Plugin plugin1 = new Plugin();
plugin1.setGroupId("org.apache.maven.plugins");
plugin1.setArtifactId("maven-compiler-plugin");
Plugin plugin2 = new Plugin();
plugin2.setGroupId("a.b.c");
plugin2.setArtifactId("test-plugin");
customModel.getBuild().getPluginManagement().getPlugins().add(plugin1);
customModel.getBuild().getPluginManagement().getPlugins().add(plugin2);
Plugin plugin3 = new Plugin();
plugin3.setGroupId("org.talend.ci");
plugin3.setArtifactId("builder-maven-plugin");
Plugin plugin4 = new Plugin();
plugin4.setGroupId("d.e.f");
plugin4.setArtifactId("test2-plugin");
customModel.getBuild().getPlugins().add(plugin3);
customModel.getBuild().getPlugins().add(plugin4);
Profile profile1 = new Profile();
profile1.setId("nexus");
Profile profile2 = new Profile();
profile2.setId("custom_profile");
customModel.getProfiles().add(profile1);
customModel.getProfiles().add(profile2);
Model model = mergeTool.migrateCustomModel(defaultModel.clone(), customModel);
assertNotNull(model);
assertEquals("9.9.9", model.getProperties().getProperty("signer.version"));
assertEquals("test", model.getProperties().getProperty("test"));
assertFalse(model.getProperties().containsKey("encoding"));
assertFalse(model.getBuild().getPluginManagement().getPluginsAsMap().containsKey(plugin1.getKey()));
assertTrue(model.getBuild().getPluginManagement().getPluginsAsMap().containsKey(plugin2.getKey()));
assertFalse(model.getBuild().getPluginsAsMap().containsKey(plugin3.getKey()));
assertTrue(model.getBuild().getPluginsAsMap().containsKey(plugin4.getKey()));
assertFalse(model.getProfiles().stream().anyMatch(p -> "nexus".equals(p.getId())));
assertTrue(model.getProfiles().stream().anyMatch(p -> "custom_profile".equals(p.getId())));
}
@Test
public void testMigrateCustomModelWithEmptyPluginManagement() throws Exception {
Model customModel = MavenTemplateManager.getCustomProjectModel(parameters);
customModel.setBuild(new Build());
customModel.getBuild().setPluginManagement(new PluginManagement());
Plugin plugin = new Plugin();
plugin.setGroupId("org.apache.maven.plugins");
plugin.setArtifactId("maven-compiler-plugin");
customModel.getBuild().getPluginManagement().getPlugins().add(plugin);
Model model = mergeTool.migrateCustomModel(defaultModel.clone(), customModel);
assertNotNull(model);
assertNull(model.getBuild().getPluginManagement());
}
}

View File

@@ -22,12 +22,12 @@
<version>1.0.0</version>
<type>dll</type>
</dependency>
<!--dependency>
<dependency>
<groupId>org.talend.studio.test</groupId>
<artifactId>nexus.upload.test.new</artifactId>
<version>1.0.0</version>
<type>exe</type>
</dependency-->
</dependency>
<dependency>
<groupId>org.talend.studio.test</groupId>
<artifactId>nexus.upload.test.new</artifactId>
@@ -45,12 +45,12 @@
<version>1.0.0</version>
<type>dll</type>
</dependency>
<!--dependency>
<dependency>
<groupId>org.talend.studio.test</groupId>
<artifactId>nexus.upload.test.old</artifactId>
<version>1.0.0</version>
<type>exe</type>
</dependency-->
</dependency>
<dependency>
<groupId>org.talend.studio.test</groupId>
<artifactId>nexus.upload.test.old</artifactId>

View File

@@ -66,7 +66,7 @@ public class Nexus3RepositoryHandlerTest {
private static Properties nexusprops = new Properties();
private static ArtifactRepositoryBean customNexusServer;
private static IRepositoryArtifactHandler repHandler;
private static String[] types = new String[] {"jar", "pom", "zip", "dll"};
private static String[] types = new String[] {"jar", "pom", "exe", "zip", "dll"};
@BeforeClass
public static void init() throws FileNotFoundException, IOException {