From 281875fffdd0dd8c143b9bb9ce433fe9cdb93173 Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Mon, 30 May 2016 15:31:33 +0800 Subject: [PATCH 1/5] Add metadata query for getProcedures --- core/conn/jdbcT4/pom.xml | 165 ++++++++++++------ core/conn/jdbcT4/src/assembly/all.xml | 13 +- .../trafodion/jdbc/t4/T4DatabaseMetaData.java | 126 ++++++------- .../trafodion/jdbc/t4/TrafT4Connection.java | 4 +- .../trafodion/jdbc/t4/MetadataHolder.scala | 68 ++++++++ .../test/scala/T4DatabaseMetaDataTest.scala | 63 +++++++ 6 files changed, 316 insertions(+), 123 deletions(-) create mode 100644 core/conn/jdbcT4/src/main/scala/org/trafodion/jdbc/t4/MetadataHolder.scala create mode 100644 core/conn/jdbcT4/src/test/scala/T4DatabaseMetaDataTest.scala diff --git a/core/conn/jdbcT4/pom.xml b/core/conn/jdbcT4/pom.xml index 8e19b9f29f..f44aff67cd 100644 --- a/core/conn/jdbcT4/pom.xml +++ b/core/conn/jdbcT4/pom.xml @@ -40,6 +40,18 @@ 4.11 test + + org.scala-lang + scala-library + ${scala.version} + compile + + + org.scala-lang + scala-compiler + ${scala.version} + compile + @@ -53,7 +65,32 @@ - + + net.alchim31.maven + scala-maven-plugin + 3.2.0 + + + compile-scala + generate-sources + + add-source + compile + + + + test-compile-scala + test-compile + + add-source + testCompile + + + + + ${scala.version} + + maven-antrun-plugin @@ -96,34 +133,49 @@ - - org.apache.maven.plugins - maven-jar-plugin - 2.4 - - - - org.trafodion.jdbc.t4.Vproc - dependency-jars/ - - - - Version ${project.version} - Release ${project.version} - Build release - [${user.name}] - branch ${mvngit.commit.abbrev}-${mvngit.branch} - date ${maven.build.timestamp} - ${project.name} - - - - - + + org.apache.maven.plugins + maven-dependency-plugin + 2.5.1 + + + copy-dependencies + package + + copy-dependencies + + + + ${project.build.directory}/dependency-jars/ + + + + + + maven-assembly-plugin 2.5.3 + + + org.trafodion.jdbc.t4.Vproc + dependency-jars/ + + + + Version ${project.version} + Release ${project.version} + Build release + [${user.name}] + branch ${mvngit.commit.abbrev}-${mvngit.branch} + date ${maven.build.timestamp} + ${project.name} + + + + jar-with-dependencies + src/assembly/all.xml false @@ -138,32 +190,47 @@ - - org.apache.maven.plugins - maven-dependency-plugin - 2.5.1 - - - copy-dependencies - package - - copy-dependencies - - - - ${project.build.directory}/dependency-jars/ - - - - - + + + org.codehaus.mojo + build-helper-maven-plugin + + + add-source + generate-sources + + add-source + + + + src/main/scala + + + + + add-test-source + generate-sources + + add-test-source + + + + src/test/scala + + + + + + - - ddMMMyy - ${maven.build.timestamp} - UTF-8 - + + ddMMMyy + ${maven.build.timestamp} + UTF-8 + 2.11.1 + 2.11.1 + diff --git a/core/conn/jdbcT4/src/assembly/all.xml b/core/conn/jdbcT4/src/assembly/all.xml index 5358510dbc..32acc9e3cc 100644 --- a/core/conn/jdbcT4/src/assembly/all.xml +++ b/core/conn/jdbcT4/src/assembly/all.xml @@ -45,8 +45,17 @@ 0644 0755 - - + + + target/dependency-jars + lib + + *.jar + + 0644 + 0755 + + src/main/samples samples 0644 diff --git a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4DatabaseMetaData.java b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4DatabaseMetaData.java index c8b46772d6..25511bffae 100644 --- a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4DatabaseMetaData.java +++ b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4DatabaseMetaData.java @@ -21,12 +21,7 @@ package org.trafodion.jdbc.t4; -import java.sql.Connection; -import java.sql.DatabaseMetaData; -import java.sql.ResultSet; -import java.sql.RowIdLifetime; -import java.sql.SQLException; -import java.sql.Types; +import java.sql.*; import java.util.logging.Level; import java.util.logging.LogRecord; @@ -3093,26 +3088,23 @@ public java.sql.ResultSet getProcedures(String catalog, String schemaPattern, St procedureNamePattern = "%"; } - getSQLCatalogsInfo(connection_.getServerHandle(), // Server Handle - SQL_API_SQLPROCEDURES, // catalogAPI - catalogNm, // catalog - schemaNm, // schema - procedureNamePattern, // table name - "", // tableTypeList - "", // cloumn name - (int) 0, // cloumnType - (int) 0, // rowIdScope - (long) 0, // nullable - (int) 0, // uniqueness - (int) 0, // accuracy - (short) 0, // sqlType - (int) 0, // metadataId - "", // fcatalog - "", // fschema - "" // ftable - ); - - return getResultSet(); + MetadataHolder mdHolder = this.connection_.mdHolder_; + int retryCnt = 0; + while(retryCnt < 3 ) { + try { + PreparedStatement ps = mdHolder.getPStatement(SQL_API_SQLPROCEDURES, this.connection_); + ps.setObject(1, schemaPattern); + ps.setObject(2, procedureNamePattern); + return ps.executeQuery(); + } catch (SQLException e) { + mdHolder.removePStatement(SQL_API_SQLPROCEDURES); + ++retryCnt; + if( retryCnt >= 3 ) { + throw e; + } + } + } + return null; } /* @@ -3236,32 +3228,24 @@ public java.sql.ResultSet getProcedureColumns(String catalog, String schemaPatte columnNamePattern = "%"; } - getSQLCatalogsInfo(connection_.getServerHandle(), // Server Handle - SQL_API_SQLPROCEDURECOLUMNS, // catalogAPI - catalogNm, // catalog - schemaNm, // schema - procedureNamePattern, // table name - "", // tableTypeList - columnNamePattern, // cloumn name - (int) 0, // cloumnType - (int) 0, // rowIdScope - (long) 0, // nullable - (int) 0, // uniqueness - (int) 0, // accuracy - (short) 0, // sqlType - (int) 0, // metadataId - "", // fcatalog - "", // fschema - "" // ftable - ); - - resultSet = getResultSet(); - // path column Names as per JDBC specification - resultSet.setColumnName(8, "PRECISION"); - resultSet.setColumnName(9, "LENGTH"); - resultSet.setColumnName(10, "SCALE"); - resultSet.setColumnName(11, "RADIX"); - return resultSet; + MetadataHolder mdHolder = this.connection_.mdHolder_; + int retryCnt = 0; + while(retryCnt < 3 ) { + try { + PreparedStatement ps = mdHolder.getPStatement(SQL_API_SQLPROCEDURECOLUMNS, this.connection_); + ps.setObject(1, schemaPattern); + ps.setObject(2, procedureNamePattern); + ps.setObject(3, columnNamePattern); + return ps.executeQuery(); + } catch (SQLException e) { + mdHolder.removePStatement(SQL_API_SQLPROCEDURES); + ++retryCnt; + if( retryCnt >= 3 ) { + throw e; + } + } + } + return null; } /* @@ -5804,28 +5788,28 @@ void closeErroredConnection(TrafT4Exception sme) { TrafT4ResultSet resultSet_; // declarations from sql.h - private static final short SQL_API_SQLGETTYPEINFO = 47; - private static final short SQL_API_SQLCOLUMNS = 40; - private static final short SQL_API_SQLSPECIALCOLUMNS = 52; - private static final short SQL_API_SQLSTATISTICS = 53; - private static final short SQL_API_SQLTABLES = 54; - private static final short SQL_API_SQLCOLUMNPRIVILEGES = 56; - private static final short SQL_API_SQLFOREIGNKEYS = 60; + protected static final short SQL_API_SQLGETTYPEINFO = 47; + protected static final short SQL_API_SQLCOLUMNS = 40; + protected static final short SQL_API_SQLSPECIALCOLUMNS = 52; + protected static final short SQL_API_SQLSTATISTICS = 53; + protected static final short SQL_API_SQLTABLES = 54; + protected static final short SQL_API_SQLCOLUMNPRIVILEGES = 56; + protected static final short SQL_API_SQLFOREIGNKEYS = 60; // private static final short SQL_API_TBLSYNONYM = 63; // //dbscripts_mv_synonym // private static final short SQL_API_TBLMVS = 64; //dbscripts_mv_synonym - private static final short SQL_API_SQLPRIMARYKEYS = 65; - private static final short SQL_API_SQLPROCEDURECOLUMNS = 66; - private static final short SQL_API_SQLPROCEDURES = 67; - private static final short SQL_API_SQLTABLEPRIVILEGES = 70; - private static final short SQL_API_TBLSYNONYM = 1917; // dbscripts_mv_synonym - private static final short SQL_API_TBLMVS = 1918; // dbscripts_mv_synonym - - private static final short SQL_API_JDBC = 9999; - private static final short SQL_API_SQLTABLES_JDBC = (short) (SQL_API_SQLTABLES + SQL_API_JDBC); - private static final short SQL_API_SQLCOLUMNS_JDBC = (short) (SQL_API_SQLCOLUMNS + SQL_API_JDBC); - private static final short SQL_API_SQLSPECIALCOLUMNS_JDBC = (short) (SQL_API_SQLSPECIALCOLUMNS + SQL_API_JDBC); - private static final short SQL_API_SQLGETTYPEINFO_JDBC = (short) (SQL_API_SQLGETTYPEINFO + SQL_API_JDBC); + protected static final short SQL_API_SQLPRIMARYKEYS = 65; + protected static final short SQL_API_SQLPROCEDURECOLUMNS = 66; + protected static final short SQL_API_SQLPROCEDURES = 67; + protected static final short SQL_API_SQLTABLEPRIVILEGES = 70; + protected static final short SQL_API_TBLSYNONYM = 1917; // dbscripts_mv_synonym + protected static final short SQL_API_TBLMVS = 1918; // dbscripts_mv_synonym + + protected static final short SQL_API_JDBC = 9999; + protected static final short SQL_API_SQLTABLES_JDBC = (short) (SQL_API_SQLTABLES + SQL_API_JDBC); + protected static final short SQL_API_SQLCOLUMNS_JDBC = (short) (SQL_API_SQLCOLUMNS + SQL_API_JDBC); + protected static final short SQL_API_SQLSPECIALCOLUMNS_JDBC = (short) (SQL_API_SQLSPECIALCOLUMNS + SQL_API_JDBC); + protected static final short SQL_API_SQLGETTYPEINFO_JDBC = (short) (SQL_API_SQLGETTYPEINFO + SQL_API_JDBC); // values of NULLABLE field in descriptor private static final long SQL_NO_NULLS = 0; diff --git a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4Connection.java b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4Connection.java index a3a004f6ec..419c171160 100644 --- a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4Connection.java +++ b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4Connection.java @@ -1559,7 +1559,7 @@ public PooledConnection getPooledConnection() throws SQLException { t4props.getLogWriter().println(temp); } ds_ = ds; - + this.mdHolder_ = new MetadataHolder(); makeConnection(t4props); holdability_ = TrafT4ResultSet.CLOSE_CURSORS_AT_COMMIT; @@ -1838,6 +1838,8 @@ void closeErroredConnection(TrafT4Exception se) { byte[] transactionToJoin; private boolean isBeginTransaction = false; + + protected MetadataHolder mdHolder_; protected boolean isBeginTransaction() { return isBeginTransaction; diff --git a/core/conn/jdbcT4/src/main/scala/org/trafodion/jdbc/t4/MetadataHolder.scala b/core/conn/jdbcT4/src/main/scala/org/trafodion/jdbc/t4/MetadataHolder.scala new file mode 100644 index 0000000000..dee9a4d078 --- /dev/null +++ b/core/conn/jdbcT4/src/main/scala/org/trafodion/jdbc/t4/MetadataHolder.scala @@ -0,0 +1,68 @@ +package org.trafodion.jdbc.t4 + +import java.sql.{ResultSet, Connection, PreparedStatement} + +/** + * Created by kaihua.xu on 2016/5/26. + */ +class MetadataHolder{ + private var preparedStatementMap = Map[Short, PreparedStatement]() + private val sqlMap = Map(T4DatabaseMetaData.SQL_API_SQLPROCEDURES -> + """select obj.CATALOG_NAME PROCEDURE_CAT, obj.SCHEMA_NAME PROCEDURE_SCHEMA, + obj.OBJECT_NAME PROCEDURE_NAME, cast(NULL as varchar(10)) R1,cast(NULL as varchar(10)) R2, + cast(NULL as varchar(10)) R3, cast(NULL as varchar(10)) REMARKS, + cast(case when routines.UDR_TYPE = 'P' then 1 + when routines.UDR_TYPE = 'F' or routines.UDR_TYPE = 'T' + then 2 else 0 end as smallint) PROCEDURE_TYPE, + obj.OBJECT_NAME SPECIFIC_NAME + from TRAFODION."_MD_".OBJECTS obj + left join TRAFODION."_MD_".ROUTINES routines on obj.OBJECT_UID = routines.UDR_UID + where + (trim(obj.SCHEMA_NAME) LIKE ? ) + and (trim(obj.OBJECT_NAME) LIKE ? ) + and obj.OBJECT_TYPE='UR' + order by obj.OBJECT_NAME + FOR READ UNCOMMITTED ACCESS""", + T4DatabaseMetaData.SQL_API_SQLPROCEDURECOLUMNS-> + """ + select obj.CATALOG_NAME PROCEDURE_CAT, obj.SCHEMA_NAME PROCEDURE_SCHEM, + |obj.OBJECT_NAME PROCEDURE_NAME, cols.COLUMN_NAME COLUMN_NAME, + |cast((case when cols.DIRECTION='I' then 1 when cols.DIRECTION='N' then 2 when cols.DIRECTION='O' then 3 else 0 end) as smallint) COLUMN_TYPE, + |cols.FS_DATA_TYPE DATA_TYPE, cols.SQL_DATA_TYPE TYPE_NAME, + |cols.COLUMN_PRECISION "PRECISION", cols.COLUMN_SIZE LENGTH, cols.COLUMN_SCALE SCALE, + |cast(1 as smallint) RADIX, cols.NULLABLE NULLABLE, cast(NULL as varchar(10)) REMARKS, + |cols.DEFAULT_VALUE COLUMN_DEF, cols.FS_DATA_TYPE SQL_DATA_TYPE, cast(0 as smallint) SQL_DATETIME_SUB, + |cols.COLUMN_SIZE CHAR_OCTET_LENGTH, cols.COLUMN_NUMBER ORDINAL_POSITION, + |cols.NULLABLE IS_NULLABLE, cols.COLUMN_NAME SPECIFIC_NAME + | from TRAFODION."_MD_".OBJECTS obj + | left join TRAFODION."_MD_".COLUMNS cols on obj.OBJECT_UID=cols.OBJECT_UID + | where + | obj.SCHEMA_NAME like ? + | and obj.OBJECT_NAME like ? + | and cols.COLUMN_NAME like ? + | order by cols.COLUMN_NUMBER + | FOR READ UNCOMMITTED ACCESS + """.stripMargin) + def getPStatement(apiId : Short, conn: Connection):PreparedStatement = { + if( !preparedStatementMap.contains(apiId)){ + preparedStatementMap += (apiId -> conn.prepareStatement(sqlMap(apiId), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.CLOSE_CURSORS_AT_COMMIT )) + } + preparedStatementMap(apiId) + } + + def removePStatement(apiId:Short) = { + if( preparedStatementMap contains apiId){ + try{ + preparedStatementMap(apiId) close() + }catch{ + case ex: Exception => + None + } + preparedStatementMap -= apiId + } + } + + def show = { + sqlMap.foreach((e:(Short,String))=>println(e._1+": "+e._2)) + } +} diff --git a/core/conn/jdbcT4/src/test/scala/T4DatabaseMetaDataTest.scala b/core/conn/jdbcT4/src/test/scala/T4DatabaseMetaDataTest.scala new file mode 100644 index 0000000000..2d2f4ef220 --- /dev/null +++ b/core/conn/jdbcT4/src/test/scala/T4DatabaseMetaDataTest.scala @@ -0,0 +1,63 @@ +import java.sql._ + +import org.junit.{Test, Assert} + +/** + * Created by kaihua.xu on 2016/5/26. + */ +class T4DatabaseMetaDataTest { + val url: String = "jdbc:t4jdbc://192.168.0.34:23400/:" + val driverClass: String = "org.trafodion.jdbc.t4.T4Driver" + val userName: String = "trafodion" + val pwd: String = "traf123" + + @Test + @throws(classOf[SQLException]) + @throws(classOf[ClassNotFoundException]) + def procedure { + Class.forName(driverClass) + val conn: Connection = DriverManager.getConnection(url, userName, pwd) + try { + val md: DatabaseMetaData = conn.getMetaData + val rs: ResultSet = md.getProcedures("trafodion", "_LIBMGR_", null) + val rsmd = rs getMetaData + + while(rs.next()) { + for(i <- 1 to rsmd.getColumnCount){ + print(rs.getObject(i)+",") + } + println() + } + Assert.assertTrue(true) + } finally { + if (conn != null) { + conn.close + } + } + } + + @Test + @throws(classOf[SQLException]) + @throws(classOf[ClassNotFoundException]) + def procedureColumns { + Class.forName(driverClass) + val conn: Connection = DriverManager.getConnection(url, userName, pwd) + try { + val md: DatabaseMetaData = conn.getMetaData + val rs: ResultSet = md.getProcedureColumns("trafodion","_LIBMGR_",null,null) + val rsmd = rs getMetaData + + while(rs.next()) { + for(i <- 1 to rsmd.getColumnCount){ + print(rs.getObject(i)+",") + } + println() + } + Assert.assertTrue(true) + } finally { + if (conn != null) { + conn.close + } + } + } +} From 2aa8b72f3f35dd29e5233beb1657f01eb56f8dde Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Mon, 30 May 2016 17:40:30 +0800 Subject: [PATCH 2/5] add copyright and value format --- .../trafodion/jdbc/t4/T4DatabaseMetaData.java | 25 +++++++++++++++++ .../trafodion/jdbc/t4/MetadataHolder.scala | 25 ++++++++++++++--- .../jdbc/t4}/T4DatabaseMetaDataTest.scala | 27 ++++++++++++++++--- 3 files changed, 69 insertions(+), 8 deletions(-) rename core/conn/jdbcT4/src/test/scala/{ => org/trafodion/jdbc/t4}/T4DatabaseMetaDataTest.scala (62%) diff --git a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4DatabaseMetaData.java b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4DatabaseMetaData.java index 25511bffae..70331a117f 100644 --- a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4DatabaseMetaData.java +++ b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4DatabaseMetaData.java @@ -3078,7 +3078,10 @@ public java.sql.ResultSet getProcedures(String catalog, String schemaPattern, St if (schemaNm == null) { schemaNm = "%"; + }else{ + schemaPattern = sqlValueFormat(schemaPattern); } + if (procedureNamePattern == null) { // "If a search @@ -3087,6 +3090,8 @@ public java.sql.ResultSet getProcedures(String catalog, String schemaPattern, St // dropped from the search." procedureNamePattern = "%"; + }else{ + procedureNamePattern = sqlValueFormat(procedureNamePattern); } MetadataHolder mdHolder = this.connection_.mdHolder_; int retryCnt = 0; @@ -3107,6 +3112,20 @@ public java.sql.ResultSet getProcedures(String catalog, String schemaPattern, St return null; } + private String sqlValueFormat(String value){ + if(value != null){ + value = value.trim(); + }else{ + return value; + } + if(value.startsWith("\"")){ + value = value.replaceFirst("^\"\\s*(.*?)\\s*\"$","$1"); + }else{ + value = value.toUpperCase(); + } + return value.replaceAll("\\s+","%"); + } + /* * Get a description of a catalog's stored procedure parameters and result * columns. @@ -3209,6 +3228,8 @@ public java.sql.ResultSet getProcedureColumns(String catalog, String schemaPatte if (schemaNm == null) { schemaNm = "%"; + }else{ + schemaNm = sqlValueFormat(schemaNm); } if (procedureNamePattern == null) { @@ -3218,6 +3239,8 @@ public java.sql.ResultSet getProcedureColumns(String catalog, String schemaPatte // the search." procedureNamePattern = "%"; + }else{ + procedureNamePattern = sqlValueFormat(procedureNamePattern); } if (columnNamePattern == null) { @@ -3227,6 +3250,8 @@ public java.sql.ResultSet getProcedureColumns(String catalog, String schemaPatte // the search." columnNamePattern = "%"; + }else{ + columnNamePattern = sqlValueFormat(columnNamePattern); } MetadataHolder mdHolder = this.connection_.mdHolder_; int retryCnt = 0; diff --git a/core/conn/jdbcT4/src/main/scala/org/trafodion/jdbc/t4/MetadataHolder.scala b/core/conn/jdbcT4/src/main/scala/org/trafodion/jdbc/t4/MetadataHolder.scala index dee9a4d078..1c048cf18d 100644 --- a/core/conn/jdbcT4/src/main/scala/org/trafodion/jdbc/t4/MetadataHolder.scala +++ b/core/conn/jdbcT4/src/main/scala/org/trafodion/jdbc/t4/MetadataHolder.scala @@ -1,11 +1,28 @@ +// @@@ START COPYRIGHT @@@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// +// @@@ END COPYRIGHT @@@ package org.trafodion.jdbc.t4 import java.sql.{ResultSet, Connection, PreparedStatement} -/** - * Created by kaihua.xu on 2016/5/26. - */ -class MetadataHolder{ +private class MetadataHolder{ private var preparedStatementMap = Map[Short, PreparedStatement]() private val sqlMap = Map(T4DatabaseMetaData.SQL_API_SQLPROCEDURES -> """select obj.CATALOG_NAME PROCEDURE_CAT, obj.SCHEMA_NAME PROCEDURE_SCHEMA, diff --git a/core/conn/jdbcT4/src/test/scala/T4DatabaseMetaDataTest.scala b/core/conn/jdbcT4/src/test/scala/org/trafodion/jdbc/t4/T4DatabaseMetaDataTest.scala similarity index 62% rename from core/conn/jdbcT4/src/test/scala/T4DatabaseMetaDataTest.scala rename to core/conn/jdbcT4/src/test/scala/org/trafodion/jdbc/t4/T4DatabaseMetaDataTest.scala index 2d2f4ef220..1156d19118 100644 --- a/core/conn/jdbcT4/src/test/scala/T4DatabaseMetaDataTest.scala +++ b/core/conn/jdbcT4/src/test/scala/org/trafodion/jdbc/t4/T4DatabaseMetaDataTest.scala @@ -1,10 +1,29 @@ +// @@@ START COPYRIGHT @@@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// +// @@@ END COPYRIGHT @@@ +package org.trafodion.jdbc.t4 + import java.sql._ -import org.junit.{Test, Assert} +import org.junit.{Assert, Test} -/** - * Created by kaihua.xu on 2016/5/26. - */ class T4DatabaseMetaDataTest { val url: String = "jdbc:t4jdbc://192.168.0.34:23400/:" val driverClass: String = "org.trafodion.jdbc.t4.T4Driver" From d0fc478bfae028bb7e93ba0da2c4cf39cce8a3b5 Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Tue, 31 May 2016 10:23:04 +0800 Subject: [PATCH 3/5] Useless for duplicated running PACKAGE and INSTALL --- core/Makefile | 2 +- core/conn/jdbcT4/Makefile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index 20fff11951..e2422a4701 100644 --- a/core/Makefile +++ b/core/Makefile @@ -68,7 +68,7 @@ foundation: sqroot dbsecurity $(MPI_TARGET) $(SEAMONSTER_TARGET) cd sqf && $(MAKE) all jdbc_jar: verhdr - cd conn/jdbcT4 && $(MAKE) 2>&1 && $(MAVEN) install | sed -e "s/$$/ ##(JDBCT4)/";exit $${PIPESTATUS[0]} + cd conn/jdbcT4 && $(MAKE) 2>&1 | sed -e "s/$$/ ##(JDBCT4)/";exit $${PIPESTATUS[0]} dcs: jdbc_jar jdbc_type2_jar cd ../dcs && $(MAKE) 2>&1 | sed -e "s/$$/ ##(DCS)/" ; exit $${PIPESTATUS[0]} diff --git a/core/conn/jdbcT4/Makefile b/core/conn/jdbcT4/Makefile index 908a14fd11..6bdc8846f7 100644 --- a/core/conn/jdbcT4/Makefile +++ b/core/conn/jdbcT4/Makefile @@ -26,8 +26,8 @@ include ../../macros.gmk #top level all: build_all build_all: LICENSE NOTICE - echo "$(MAVEN) package -DskipTests" - set -o pipefail && $(MAVEN) package -DskipTests | tee build_jdbct4.log | grep --line-buffered -E -e '^\[[^WId]' -e '^\[INFO\] B[Uu][Ii][Ll][Dd]' -e 'to compile' + echo "$(MAVEN) install -DskipTests" + set -o pipefail && $(MAVEN) install -DskipTests | tee build_jdbct4.log | grep --line-buffered -E -e '^\[[^WId]' -e '^\[INFO\] B[Uu][Ii][Ll][Dd]' -e 'to compile' cp target/jdbcT4-${TRAFODION_VER}.jar ${MY_SQROOT}/export/lib mkdir -p ../clients mv target/jdbcT4-${TRAFODION_VER}.zip ../clients From ff12cd9de9691f3bb1ce45a0f10bb004c7dfcaab Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Tue, 31 May 2016 17:12:59 +0800 Subject: [PATCH 4/5] Repack zip file --- core/conn/jdbcT4/Makefile | 2 +- core/conn/jdbcT4/pom.xml | 109 ++++++++++++-------------- core/conn/jdbcT4/src/assembly/all.xml | 11 +-- 3 files changed, 54 insertions(+), 68 deletions(-) diff --git a/core/conn/jdbcT4/Makefile b/core/conn/jdbcT4/Makefile index 6bdc8846f7..dee82c91f4 100644 --- a/core/conn/jdbcT4/Makefile +++ b/core/conn/jdbcT4/Makefile @@ -29,9 +29,9 @@ build_all: LICENSE NOTICE echo "$(MAVEN) install -DskipTests" set -o pipefail && $(MAVEN) install -DskipTests | tee build_jdbct4.log | grep --line-buffered -E -e '^\[[^WId]' -e '^\[INFO\] B[Uu][Ii][Ll][Dd]' -e 'to compile' cp target/jdbcT4-${TRAFODION_VER}.jar ${MY_SQROOT}/export/lib + ln -sf ${MY_SQROOT}/export/lib/jdbcT4-${TRAFODION_VER}.jar ${MY_SQROOT}/export/lib/jdbcT4.jar mkdir -p ../clients mv target/jdbcT4-${TRAFODION_VER}.zip ../clients - ln -sf ${MY_SQROOT}/export/lib/jdbcT4-${TRAFODION_VER}.jar ${MY_SQROOT}/export/lib/jdbcT4.jar clean: -$(MAVEN) clean | grep ERROR diff --git a/core/conn/jdbcT4/pom.xml b/core/conn/jdbcT4/pom.xml index a67459ec38..445e51551a 100644 --- a/core/conn/jdbcT4/pom.xml +++ b/core/conn/jdbcT4/pom.xml @@ -65,6 +65,37 @@ + + org.codehaus.mojo + build-helper-maven-plugin + + + add-source + generate-sources + + add-source + + + + src/main/scala + + + + + add-test-source + generate-sources + + add-test-source + + + + src/test/scala + + + + + + net.alchim31.maven scala-maven-plugin @@ -153,75 +184,39 @@ - - maven-assembly-plugin - 2.5.3 - - - - org.trafodion.jdbc.t4.Vproc - dependency-jars/ - - - - Version ${project.version} - Release ${project.version} - Build release - [${user.name}] - branch ${mvngit.commit.abbrev}-${mvngit.branch} - date ${maven.build.timestamp} - ${project.name} - - - - jar-with-dependencies - - src/assembly/all.xml - false - - - - create-archive - package - - single - - - - - - - org.codehaus.mojo - build-helper-maven-plugin + org.apache.maven.plugins + maven-shade-plugin + 2.4.3 - add-source - generate-sources + package - add-source + shade - - - src/main/scala - - + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.5.3 + false + + + src/assembly/all.xml + + false + + - add-test-source - generate-sources + package - add-test-source + single - - - src/test/scala - - - diff --git a/core/conn/jdbcT4/src/assembly/all.xml b/core/conn/jdbcT4/src/assembly/all.xml index 32acc9e3cc..f336f9d32f 100644 --- a/core/conn/jdbcT4/src/assembly/all.xml +++ b/core/conn/jdbcT4/src/assembly/all.xml @@ -41,20 +41,11 @@ target lib - *.jar + jdbcT4*.jar 0644 0755 - - target/dependency-jars - lib - - *.jar - - 0644 - 0755 - src/main/samples samples From b4a3215cf5c1fe823c69ed25f1a4607ae215ed41 Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Tue, 31 May 2016 18:31:42 +0800 Subject: [PATCH 5/5] Ignore extra file --- core/conn/jdbcT4/.gitignore | 1 + core/conn/jdbcT4/pom.xml | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/core/conn/jdbcT4/.gitignore b/core/conn/jdbcT4/.gitignore index 0cd855757f..224592be8d 100644 --- a/core/conn/jdbcT4/.gitignore +++ b/core/conn/jdbcT4/.gitignore @@ -3,3 +3,4 @@ /LICENSE /NOTICE src/main/java/org/trafodion/jdbc/t4/Vproc.java +dependency-reduced-pom.xml diff --git a/core/conn/jdbcT4/pom.xml b/core/conn/jdbcT4/pom.xml index 445e51551a..c0bf78135b 100644 --- a/core/conn/jdbcT4/pom.xml +++ b/core/conn/jdbcT4/pom.xml @@ -184,6 +184,34 @@ + + org.apache.maven.plugins + maven-jar-plugin + 3.0.0 + + + + org.trafodion.jdbc.t4.Vproc + dependency-jars/ + + + + Version ${project.version} + Release ${project.version} + Build release + [${user.name}] + branch ${mvngit.commit.abbrev}-${mvngit.branch} + date ${maven.build.timestamp} + ${project.name} + + + + jar-with-dependencies + + false + + + org.apache.maven.plugins maven-shade-plugin