From c660e00a20bc968b3ccd94ee4e8e33ee9dcef94f Mon Sep 17 00:00:00 2001 From: Dmytro Sylaiev Date: Fri, 28 Jul 2017 12:46:34 +0300 Subject: [PATCH] Dsylaiev/tdi 35682 add logging when use existing connection (#1571) * fix(TDI-35682): Add logging into tRedshiftConnection * Input component won't create and close logfile when using existing connection * Close component will close logwriter stream also * chore(TDI-35682): fix indentation --- .../tRedshiftClose_main.javajet | 6 +++- .../tRedshiftConnection_begin.javajet | 33 ++++++++++++------- .../tRedshiftConnection_java.xml | 17 ++++++++++ .../tRedshiftConnection_messages.properties | 5 +++ .../tRedshiftInput/tRedshiftInput_end.javajet | 12 +++++-- .../tRedshiftInput/tRedshiftInput_java.xml | 3 +- 6 files changed, 60 insertions(+), 16 deletions(-) diff --git a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftClose/tRedshiftClose_main.javajet b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftClose/tRedshiftClose_main.javajet index 3bb9f327561..fbab7329d08 100644 --- a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftClose/tRedshiftClose_main.javajet +++ b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftClose/tRedshiftClose_main.javajet @@ -1 +1,5 @@ -<%@ include file="../templates/DB/Close/AbstractDBClose.javajet"%> \ No newline at end of file +<%@ include file="../templates/DB/Close/AbstractDBClose.javajet"%> + +if (null != java.sql.DriverManager.getLogWriter()) { + java.sql.DriverManager.getLogWriter().close(); +} \ No newline at end of file diff --git a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_begin.javajet b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_begin.javajet index 5a2e638230b..a6ec66e00a8 100644 --- a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_begin.javajet +++ b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_begin.javajet @@ -11,16 +11,28 @@ imports=" public void createURL(INode node) { super.createURL(node); - - if(dbproperties == null || ("\"\"").equals(dbproperties) || ("").equals(dbproperties)) { - %> - String url_<%=cid %> = "jdbc:redshift://"+<%=dbhost%>+":"+<%=dbport%>+"/"+<%=dbname%>; - <% - } else { - %> - String url_<%=cid%> = "jdbc:redshift://" + <%=dbhost%> + ":" + <%=dbport%> + "/" + <%=dbname%> + "?" + <%=dbproperties%>; - <% - } + + String logLevel= ElementParameterParser.getValue(node, "__LOG_LEVEL__"); + String logFile= ElementParameterParser.getValue(node, "__LOG_FILE__"); + + if (!logLevel.equals("0")) { +%> + java.io.Writer output_<%=cid %> = new java.io.FileWriter(<%= logFile %>, true); + java.sql.DriverManager.setLogWriter(new java.io.PrintWriter(output_<%=cid %>,true)); +<% + } +%> + StringBuilder sbuilder_<%=cid%> = new StringBuilder(); + sbuilder_<%=cid%>.append("jdbc:redshift://").append(<%=dbhost%>).append(":").append(<%=dbport%>).append("/").append(<%=dbname%>).append("?loglevel=").append(<%= logLevel %>); +<% + if(dbproperties != null && !"\"\"".equals(dbproperties) && !"".equals(dbproperties)) { +%> + sbuilder_<%=cid%>.append("&").append(<%=dbproperties%>); +<% + } +%> + String url_<%=cid%> = sbuilder_<%=cid%>.toString(); +<% } public String getDirverClassName(INode node){ @@ -33,7 +45,6 @@ imports=" <%//----------------------------component codes-----------------------------------------%> <%@ include file="../templates/DB/AbstractDBConnection.javajet"%> - globalMap.put("schema_" + "<%=cid%>",<%=dbschema%>); globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>); diff --git a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_java.xml b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_java.xml index 2888c366232..35e90583f0b 100644 --- a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_java.xml +++ b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_java.xml @@ -152,6 +152,23 @@ + + "__COMP_DEFAULT_FILE_DIR__/redshift-jdbc.log" + + + + + + + + + + false diff --git a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_messages.properties b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_messages.properties index 749131d2d8f..49cbaaee101 100644 --- a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_messages.properties +++ b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_messages.properties @@ -16,4 +16,9 @@ AUTO_COMMIT.NAME = Auto Commit TYPE.NAME=Database Driver PROPERTY.NAME=Property Type +LOG_FILE.NAME=Log file +LOG_LEVEL.NAME=Logging level +LOG_LEVEL.ITEM.NONE=None +LOG_LEVEL.ITEM.INFO=Info +LOG_LEVEL.ITEM.DEBUG=Debug PROPERTIES.NAME=Additional JDBC Parameters \ No newline at end of file diff --git a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftInput/tRedshiftInput_end.javajet b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftInput/tRedshiftInput_end.javajet index efc81ec5d80..03d586ac9c7 100644 --- a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftInput/tRedshiftInput_end.javajet +++ b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftInput/tRedshiftInput_end.javajet @@ -1,5 +1,11 @@ <%@ include file="../templates/DB/Input/AbstractDBInputEnd.javajet"%> -if (null != java.sql.DriverManager.getLogWriter()) { - java.sql.DriverManager.getLogWriter().close(); -} \ No newline at end of file +<% +if ("false".equalsIgnoreCase(ElementParameterParser.getValue(node, "__USE_EXISTING_CONNECTION__"))) { +%> + if (null != java.sql.DriverManager.getLogWriter()) { + java.sql.DriverManager.getLogWriter().close(); + } +<% +} +%> \ No newline at end of file diff --git a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftInput/tRedshiftInput_java.xml b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftInput/tRedshiftInput_java.xml index a213eba0726..684ca7370a6 100644 --- a/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftInput/tRedshiftInput_java.xml +++ b/main/plugins/org.talend.designer.components.localprovider/components/tRedshiftInput/tRedshiftInput_java.xml @@ -203,11 +203,12 @@ FIELD="FILE" NUM_ROW="10" REQUIRED="true" + SHOW_IF="USE_EXISTING_CONNECTION == 'false'" > "__COMP_DEFAULT_FILE_DIR__/redshift-jdbc.log" - +