You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by al...@apache.org on 2017/12/05 03:58:07 UTC

svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java

Author: alexz
Date: Tue Dec  5 03:58:07 2017
New Revision: 1817150

URL: http://svn.apache.org/viewvc?rev=1817150&view=rev
Log:
CTAKES-415

Added:
    ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java

Added: ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java?rev=1817150&view=auto
==============================================================================
--- ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java (added)
+++ ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java Tue Dec  5 03:58:07 2017
@@ -0,0 +1,49 @@
+package org.apache.ctakes.util;
+
+import org.apache.log4j.Logger;
+import org.springframework.dao.DataAccessException;
+import org.springframework.jdbc.core.JdbcOperations;
+
+/**
+ * Refactors helper functions like dropTableIfExists or other DB operations
+ *
+ * // TODO: consider renaming it with something more suitable
+ */
+public abstract class JdbcOperationsHelper {
+
+	static private final Logger LOGGER = Logger.getLogger(JdbcOperationsHelper.class);
+
+	/**
+	 * Helper function to drop a 'table' from a DB, using SQL syntax
+	 *
+	 * @param jdbc
+	 * @param dbEngineType
+	 * @param sqlTableName
+	 */
+	protected final void dropTableIfExist(JdbcOperations jdbc, final String dbEngineType, final String sqlTableName) {
+		// TODO: consider refactor using JOOQ
+		String sqlStatement = "";
+		switch (dbEngineType.toLowerCase()) {
+			case "hsql":
+			case "mysql":
+				sqlStatement = String.format("DROP TABLE IF EXISTS %s", sqlTableName);
+				break;
+			case "mssql":
+				sqlStatement = String.format("IF EXISTS(SELECT * FROM sys.objects WHERE object_id = object_id('%s')) DROP TABLE %s", sqlTableName);
+				break;
+			case "orcl":
+				sqlStatement = String.format("DROP TABLE %s", sqlTableName);
+				break;
+			default:
+				LOGGER.warn(String.format("unsupported DB engine type: %s", dbEngineType));
+				break;
+		}
+		if (!sqlStatement.isEmpty()) {
+			try {
+				jdbc.execute(sqlStatement);
+			} catch (DataAccessException e) {
+				LOGGER.warn("couldn't drop table test_concepts. Maybe it doesn't even exists", e);
+			}
+		}
+	}
+}



RE: svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java [EXTERNAL]

Posted by Alexandru Zbarcea <zb...@gmail.com>.
Thank you Sean.

I still try to fix the latest integration test DateAnnotatorTest. It is
interesting that I cannot reproduce the issue.

Let me know if any advice.

Alex


On Dec 5, 2017 08:32, "Finan, Sean" <Se...@childrens.harvard.edu>
wrote:

Hi Alex,

I like the approach.

Sean

-----Original Message-----
From: alexz@apache.org [mailto:alexz@apache.org]
Sent: Monday, December 04, 2017 10:58 PM
To: commits@ctakes.apache.org
Subject: svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/
main/java/org/apache/ctakes/util/JdbcOperationsHelper.java [EXTERNAL]

Author: alexz
Date: Tue Dec  5 03:58:07 2017
New Revision: 1817150

URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__svn.
apache.org_viewvc-3Frev-3D1817150-26view-3Drev&d=
DwICaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=
fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=4Lb1jjC4XsbSAZ2rf0gsNtrV8JdfUn
Pe_xnfHUycT-U&s=PmAB90gzu1GG6yrwY6BMbc01q0hLKYE88gq79vRlpj4&e=
Log:
CTAKES-415

Added:
    ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/
util/JdbcOperationsHelper.java

Added: ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/
util/JdbcOperationsHelper.java
URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__svn.
apache.org_viewvc_ctakes_trunk_ctakes-2Dytex_src_main_
java_org_apache_ctakes_util_JdbcOperationsHelper.java-
3Frev-3D1817150-26view-3Dauto&d=DwICaQ&c=qS4goWBT7poplM69zy_
3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=
4Lb1jjC4XsbSAZ2rf0gsNtrV8JdfUnPe_xnfHUycT-U&s=DjWdjDem-SHqJcprSWE0yRIzg_
BHiR8JXqw55nGrIz0&e=
============================================================
==================
--- ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java
(added)
+++ ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOp
+++ erationsHelper.java Tue Dec  5 03:58:07 2017
@@ -0,0 +1,49 @@
+package org.apache.ctakes.util;
+
+import org.apache.log4j.Logger;
+import org.springframework.dao.DataAccessException;
+import org.springframework.jdbc.core.JdbcOperations;
+
+/**
+ * Refactors helper functions like dropTableIfExists or other DB
+operations
+ *
+ * // TODO: consider renaming it with something more suitable  */
+public abstract class JdbcOperationsHelper {
+
+       static private final Logger LOGGER =
+Logger.getLogger(JdbcOperationsHelper.class);
+
+       /**
+        * Helper function to drop a 'table' from a DB, using SQL syntax
+        *
+        * @param jdbc
+        * @param dbEngineType
+        * @param sqlTableName
+        */
+       protected final void dropTableIfExist(JdbcOperations jdbc, final
String dbEngineType, final String sqlTableName) {
+               // TODO: consider refactor using JOOQ
+               String sqlStatement = "";
+               switch (dbEngineType.toLowerCase()) {
+                       case "hsql":
+                       case "mysql":
+                               sqlStatement = String.format("DROP TABLE IF
EXISTS %s", sqlTableName);
+                               break;
+                       case "mssql":
+                               sqlStatement = String.format("IF
EXISTS(SELECT * FROM sys.objects WHERE object_id = object_id('%s')) DROP
TABLE %s", sqlTableName);
+                               break;
+                       case "orcl":
+                               sqlStatement = String.format("DROP TABLE
%s", sqlTableName);
+                               break;
+                       default:
+                               LOGGER.warn(String.format("unsupported DB
engine type: %s", dbEngineType));
+                               break;
+               }
+               if (!sqlStatement.isEmpty()) {
+                       try {
+                               jdbc.execute(sqlStatement);
+                       } catch (DataAccessException e) {
+                               LOGGER.warn("couldn't drop table
test_concepts. Maybe it doesn't even exists", e);
+                       }
+               }
+       }
+}

Re: svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java [EXTERNAL]

Posted by Alexandru Zbarcea <al...@apache.org>.
Hi,

It is quite some time since I started to look into the DateAnnotatorTest. I
cannot reproduce the Jenkins [1] failure related to the CTAKES-415 bug [2].
However I do not understand why on Jenkins I get the following stack:

2017-12-06 21:41:29,490 INFO
org.apache.ctakes.ytex.uima.annotators.DateAnnotatorTest  - date to be
annotated: Wed Dec 06 21:41:29 UTC 2017
2017-12-06 21:41:29,559 INFO
org.apache.ctakes.ytex.uima.annotators.DateAnnotatorTest  - Using
org.apache.ctakes.ytex.uima.types.Date.type: 94
2017-12-06 21:41:29,560 INFO
org.apache.ctakes.ytex.uima.annotators.DateAnnotatorTest  -
*ytexDates.size: 0*
2017-12-06 21:41:29,570 INFO
org.apache.ctakes.ytex.uima.annotators.DateAnnotatorTest  - creating
JCas from: /home/jenkins/jenkins-slave/workspace/cTAKES-trunk-Java-1.8/ctakes-ytex-uima/target/classes/org/apache/ctakes/ytex/types/TypeSystem.xml
Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.377
sec <<< FAILURE!


while running it myself, I get:
09 Dec 2017 10:19:59  INFO DateAnnotatorTest - date to be annotated: Sat
Dec 09 10:19:58 EST 2017
09 Dec 2017 11:29:03  INFO DateAnnotatorTest - Using
org.apache.ctakes.ytex.uima.types.Date.type: 94
09 Dec 2017 11:29:03  INFO DateAnnotatorTest - [Date
   sofa: _InitialView
   begin: 0
   end: 28
   date: "2017-12-09T10:19:58-0500"
]
09 Dec 2017 11:29:03  INFO DateAnnotatorTest - [Date
   sofa: _InitialView
   begin: 0
   end: 28
   date: "2017-12-09T10:19:58-0500"
]
09 Dec 2017 11:29:03  INFO DateAnnotatorTest - *ytexDates.size: 2*
09 Dec 2017 11:29:03  INFO DateAnnotatorTest - date from annotation:
2017-12-09T10:19:58-0500

I have added few UTests in the same DateAnnotatorTest, and I was presuming
that the following construction is idempotent (doesn't depend on
environment or external resources) :
DateAnnotator dateAnnotator = new DateAnnotator();
dateAnnotator.dateType = Date.class.getName();
dateAnnotator.process(jCas);

Looking forward to your advice,
Alex

[1] - https://builds.apache.org/view/C/view/Apache%20cTAKES/
job/cTAKES-trunk-Java-1.8/66/consoleFull
[2] - https://issues.apache.org/jira/browse/CTAKES-415

On Tue, Dec 5, 2017 at 2:26 PM, Alexandru Zbarcea <zb...@gmail.com>
wrote:

> Thank you James. Good catch. Will do that. I missed that when refactoring.
>
> Alex
>
> On Dec 5, 2017 1:09 PM, "James Masanz" <ma...@gmail.com> wrote:
>
>> Hi Alex,
>>
>> you might want to replace
>> LOGGER.warn("couldn't drop table test_concepts. Maybe it doesn't even
>> exists", e);
>>
>> with something that includes the table name variable, such as:
>> LOGGER.warn(String.format("Couldn't drop table %s.  Maybe it doesn't even
>> exist.", sqlTableName), e);
>>
>> On Tue, Dec 5, 2017 at 8:32 AM, Finan, Sean <
>> Sean.Finan@childrens.harvard.edu> wrote:
>>
>> > Hi Alex,
>> >
>> > I like the approach.
>> >
>> > Sean
>> >
>> > -----Original Message-----
>> > From: alexz@apache.org [mailto:alexz@apache.org]
>> > Sent: Monday, December 04, 2017 10:58 PM
>> > To: commits@ctakes.apache.org
>> > Subject: svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/
>> > main/java/org/apache/ctakes/util/JdbcOperationsHelper.java [EXTERNAL]
>> >
>> > Author: alexz
>> > Date: Tue Dec  5 03:58:07 2017
>> > New Revision: 1817150
>> >
>> > URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__svn.
>> > apache.org_viewvc-3Frev-3D1817150-26view-3Drev&d=
>> > DwICaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=
>> > fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=
>> > 4Lb1jjC4XsbSAZ2rf0gsNtrV8JdfUnPe_xnfHUycT-U&s=
>> > PmAB90gzu1GG6yrwY6BMbc01q0hLKYE88gq79vRlpj4&e=
>> > Log:
>> > CTAKES-415
>> >
>> > Added:
>> >     ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/
>> > util/JdbcOperationsHelper.java
>> >
>> > Added: ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/
>> > util/JdbcOperationsHelper.java
>> > URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__svn.
>> > apache.org_viewvc_ctakes_trunk_ctakes-2Dytex_src_main_
>> > java_org_apache_ctakes_util_JdbcOperationsHelper.java-
>> > 3Frev-3D1817150-26view-3Dauto&d=DwICaQ&c=qS4goWBT7poplM69zy_
>> > 3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKG
>> d4f7d4gTao&m=
>> > 4Lb1jjC4XsbSAZ2rf0gsNtrV8JdfUnPe_xnfHUycT-U&s=DjWdjDem-SHqJc
>> prSWE0yRIzg_
>> > BHiR8JXqw55nGrIz0&e=
>> > ============================================================
>> > ==================
>> > --- ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/uti
>> l/JdbcOperationsHelper.java
>> > (added)
>> > +++ ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/uti
>> l/JdbcOp
>> > +++ erationsHelper.java Tue Dec  5 03:58:07 2017
>> > @@ -0,0 +1,49 @@
>> > +package org.apache.ctakes.util;
>> > +
>> > +import org.apache.log4j.Logger;
>> > +import org.springframework.dao.DataAccessException;
>> > +import org.springframework.jdbc.core.JdbcOperations;
>> > +
>> > +/**
>> > + * Refactors helper functions like dropTableIfExists or other DB
>> > +operations
>> > + *
>> > + * // TODO: consider renaming it with something more suitable  */
>> > +public abstract class JdbcOperationsHelper {
>> > +
>> > +       static private final Logger LOGGER =
>> > +Logger.getLogger(JdbcOperationsHelper.class);
>> > +
>> > +       /**
>> > +        * Helper function to drop a 'table' from a DB, using SQL syntax
>> > +        *
>> > +        * @param jdbc
>> > +        * @param dbEngineType
>> > +        * @param sqlTableName
>> > +        */
>> > +       protected final void dropTableIfExist(JdbcOperations jdbc,
>> final
>> > String dbEngineType, final String sqlTableName) {
>> > +               // TODO: consider refactor using JOOQ
>> > +               String sqlStatement = "";
>> > +               switch (dbEngineType.toLowerCase()) {
>> > +                       case "hsql":
>> > +                       case "mysql":
>> > +                               sqlStatement = String.format("DROP TABLE
>> > IF EXISTS %s", sqlTableName);
>> > +                               break;
>> > +                       case "mssql":
>> > +                               sqlStatement = String.format("IF
>> > EXISTS(SELECT * FROM sys.objects WHERE object_id = object_id('%s')) DROP
>> > TABLE %s", sqlTableName);
>> > +                               break;
>> > +                       case "orcl":
>> > +                               sqlStatement = String.format("DROP TABLE
>> > %s", sqlTableName);
>> > +                               break;
>> > +                       default:
>> > +                               LOGGER.warn(String.format("unsupported
>> DB
>> > engine type: %s", dbEngineType));
>> > +                               break;
>> > +               }
>> > +               if (!sqlStatement.isEmpty()) {
>> > +                       try {
>> > +                               jdbc.execute(sqlStatement);
>> > +                       } catch (DataAccessException e) {
>> > +                               LOGGER.warn("couldn't drop table
>> > test_concepts. Maybe it doesn't even exists", e);
>> > +                       }
>> > +               }
>> > +       }
>> > +}
>> >
>> >
>> >
>>
>

Re: svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java [EXTERNAL]

Posted by Alexandru Zbarcea <zb...@gmail.com>.
Thank you James. Good catch. Will do that. I missed that when refactoring.

Alex

On Dec 5, 2017 1:09 PM, "James Masanz" <ma...@gmail.com> wrote:

> Hi Alex,
>
> you might want to replace
> LOGGER.warn("couldn't drop table test_concepts. Maybe it doesn't even
> exists", e);
>
> with something that includes the table name variable, such as:
> LOGGER.warn(String.format("Couldn't drop table %s.  Maybe it doesn't even
> exist.", sqlTableName), e);
>
> On Tue, Dec 5, 2017 at 8:32 AM, Finan, Sean <
> Sean.Finan@childrens.harvard.edu> wrote:
>
> > Hi Alex,
> >
> > I like the approach.
> >
> > Sean
> >
> > -----Original Message-----
> > From: alexz@apache.org [mailto:alexz@apache.org]
> > Sent: Monday, December 04, 2017 10:58 PM
> > To: commits@ctakes.apache.org
> > Subject: svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/
> > main/java/org/apache/ctakes/util/JdbcOperationsHelper.java [EXTERNAL]
> >
> > Author: alexz
> > Date: Tue Dec  5 03:58:07 2017
> > New Revision: 1817150
> >
> > URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__svn.
> > apache.org_viewvc-3Frev-3D1817150-26view-3Drev&d=
> > DwICaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=
> > fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=
> > 4Lb1jjC4XsbSAZ2rf0gsNtrV8JdfUnPe_xnfHUycT-U&s=
> > PmAB90gzu1GG6yrwY6BMbc01q0hLKYE88gq79vRlpj4&e=
> > Log:
> > CTAKES-415
> >
> > Added:
> >     ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/
> > util/JdbcOperationsHelper.java
> >
> > Added: ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/
> > util/JdbcOperationsHelper.java
> > URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__svn.
> > apache.org_viewvc_ctakes_trunk_ctakes-2Dytex_src_main_
> > java_org_apache_ctakes_util_JdbcOperationsHelper.java-
> > 3Frev-3D1817150-26view-3Dauto&d=DwICaQ&c=qS4goWBT7poplM69zy_
> > 3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bc
> pKGd4f7d4gTao&m=
> > 4Lb1jjC4XsbSAZ2rf0gsNtrV8JdfUnPe_xnfHUycT-U&s=DjWdjDem-SHqJcprSWE0yRIzg_
> > BHiR8JXqw55nGrIz0&e=
> > ============================================================
> > ==================
> > --- ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/
> util/JdbcOperationsHelper.java
> > (added)
> > +++ ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOp
> > +++ erationsHelper.java Tue Dec  5 03:58:07 2017
> > @@ -0,0 +1,49 @@
> > +package org.apache.ctakes.util;
> > +
> > +import org.apache.log4j.Logger;
> > +import org.springframework.dao.DataAccessException;
> > +import org.springframework.jdbc.core.JdbcOperations;
> > +
> > +/**
> > + * Refactors helper functions like dropTableIfExists or other DB
> > +operations
> > + *
> > + * // TODO: consider renaming it with something more suitable  */
> > +public abstract class JdbcOperationsHelper {
> > +
> > +       static private final Logger LOGGER =
> > +Logger.getLogger(JdbcOperationsHelper.class);
> > +
> > +       /**
> > +        * Helper function to drop a 'table' from a DB, using SQL syntax
> > +        *
> > +        * @param jdbc
> > +        * @param dbEngineType
> > +        * @param sqlTableName
> > +        */
> > +       protected final void dropTableIfExist(JdbcOperations jdbc, final
> > String dbEngineType, final String sqlTableName) {
> > +               // TODO: consider refactor using JOOQ
> > +               String sqlStatement = "";
> > +               switch (dbEngineType.toLowerCase()) {
> > +                       case "hsql":
> > +                       case "mysql":
> > +                               sqlStatement = String.format("DROP TABLE
> > IF EXISTS %s", sqlTableName);
> > +                               break;
> > +                       case "mssql":
> > +                               sqlStatement = String.format("IF
> > EXISTS(SELECT * FROM sys.objects WHERE object_id = object_id('%s')) DROP
> > TABLE %s", sqlTableName);
> > +                               break;
> > +                       case "orcl":
> > +                               sqlStatement = String.format("DROP TABLE
> > %s", sqlTableName);
> > +                               break;
> > +                       default:
> > +                               LOGGER.warn(String.format("unsupported
> DB
> > engine type: %s", dbEngineType));
> > +                               break;
> > +               }
> > +               if (!sqlStatement.isEmpty()) {
> > +                       try {
> > +                               jdbc.execute(sqlStatement);
> > +                       } catch (DataAccessException e) {
> > +                               LOGGER.warn("couldn't drop table
> > test_concepts. Maybe it doesn't even exists", e);
> > +                       }
> > +               }
> > +       }
> > +}
> >
> >
> >
>

Re: svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java [EXTERNAL]

Posted by James Masanz <ma...@gmail.com>.
Hi Alex,

you might want to replace
LOGGER.warn("couldn't drop table test_concepts. Maybe it doesn't even
exists", e);

with something that includes the table name variable, such as:
LOGGER.warn(String.format("Couldn't drop table %s.  Maybe it doesn't even
exist.", sqlTableName), e);

On Tue, Dec 5, 2017 at 8:32 AM, Finan, Sean <
Sean.Finan@childrens.harvard.edu> wrote:

> Hi Alex,
>
> I like the approach.
>
> Sean
>
> -----Original Message-----
> From: alexz@apache.org [mailto:alexz@apache.org]
> Sent: Monday, December 04, 2017 10:58 PM
> To: commits@ctakes.apache.org
> Subject: svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/
> main/java/org/apache/ctakes/util/JdbcOperationsHelper.java [EXTERNAL]
>
> Author: alexz
> Date: Tue Dec  5 03:58:07 2017
> New Revision: 1817150
>
> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__svn.
> apache.org_viewvc-3Frev-3D1817150-26view-3Drev&d=
> DwICaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=
> fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=
> 4Lb1jjC4XsbSAZ2rf0gsNtrV8JdfUnPe_xnfHUycT-U&s=
> PmAB90gzu1GG6yrwY6BMbc01q0hLKYE88gq79vRlpj4&e=
> Log:
> CTAKES-415
>
> Added:
>     ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/
> util/JdbcOperationsHelper.java
>
> Added: ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/
> util/JdbcOperationsHelper.java
> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__svn.
> apache.org_viewvc_ctakes_trunk_ctakes-2Dytex_src_main_
> java_org_apache_ctakes_util_JdbcOperationsHelper.java-
> 3Frev-3D1817150-26view-3Dauto&d=DwICaQ&c=qS4goWBT7poplM69zy_
> 3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=
> 4Lb1jjC4XsbSAZ2rf0gsNtrV8JdfUnPe_xnfHUycT-U&s=DjWdjDem-SHqJcprSWE0yRIzg_
> BHiR8JXqw55nGrIz0&e=
> ============================================================
> ==================
> --- ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java
> (added)
> +++ ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOp
> +++ erationsHelper.java Tue Dec  5 03:58:07 2017
> @@ -0,0 +1,49 @@
> +package org.apache.ctakes.util;
> +
> +import org.apache.log4j.Logger;
> +import org.springframework.dao.DataAccessException;
> +import org.springframework.jdbc.core.JdbcOperations;
> +
> +/**
> + * Refactors helper functions like dropTableIfExists or other DB
> +operations
> + *
> + * // TODO: consider renaming it with something more suitable  */
> +public abstract class JdbcOperationsHelper {
> +
> +       static private final Logger LOGGER =
> +Logger.getLogger(JdbcOperationsHelper.class);
> +
> +       /**
> +        * Helper function to drop a 'table' from a DB, using SQL syntax
> +        *
> +        * @param jdbc
> +        * @param dbEngineType
> +        * @param sqlTableName
> +        */
> +       protected final void dropTableIfExist(JdbcOperations jdbc, final
> String dbEngineType, final String sqlTableName) {
> +               // TODO: consider refactor using JOOQ
> +               String sqlStatement = "";
> +               switch (dbEngineType.toLowerCase()) {
> +                       case "hsql":
> +                       case "mysql":
> +                               sqlStatement = String.format("DROP TABLE
> IF EXISTS %s", sqlTableName);
> +                               break;
> +                       case "mssql":
> +                               sqlStatement = String.format("IF
> EXISTS(SELECT * FROM sys.objects WHERE object_id = object_id('%s')) DROP
> TABLE %s", sqlTableName);
> +                               break;
> +                       case "orcl":
> +                               sqlStatement = String.format("DROP TABLE
> %s", sqlTableName);
> +                               break;
> +                       default:
> +                               LOGGER.warn(String.format("unsupported DB
> engine type: %s", dbEngineType));
> +                               break;
> +               }
> +               if (!sqlStatement.isEmpty()) {
> +                       try {
> +                               jdbc.execute(sqlStatement);
> +                       } catch (DataAccessException e) {
> +                               LOGGER.warn("couldn't drop table
> test_concepts. Maybe it doesn't even exists", e);
> +                       }
> +               }
> +       }
> +}
>
>
>

RE: svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java [EXTERNAL]

Posted by "Finan, Sean" <Se...@childrens.harvard.edu>.
Hi Alex,

I like the approach.

Sean

-----Original Message-----
From: alexz@apache.org [mailto:alexz@apache.org] 
Sent: Monday, December 04, 2017 10:58 PM
To: commits@ctakes.apache.org
Subject: svn commit: r1817150 - /ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java [EXTERNAL]

Author: alexz
Date: Tue Dec  5 03:58:07 2017
New Revision: 1817150

URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__svn.apache.org_viewvc-3Frev-3D1817150-26view-3Drev&d=DwICaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=4Lb1jjC4XsbSAZ2rf0gsNtrV8JdfUnPe_xnfHUycT-U&s=PmAB90gzu1GG6yrwY6BMbc01q0hLKYE88gq79vRlpj4&e=
Log:
CTAKES-415

Added:
    ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java

Added: ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java
URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__svn.apache.org_viewvc_ctakes_trunk_ctakes-2Dytex_src_main_java_org_apache_ctakes_util_JdbcOperationsHelper.java-3Frev-3D1817150-26view-3Dauto&d=DwICaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=4Lb1jjC4XsbSAZ2rf0gsNtrV8JdfUnPe_xnfHUycT-U&s=DjWdjDem-SHqJcprSWE0yRIzg_BHiR8JXqw55nGrIz0&e=
==============================================================================
--- ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOperationsHelper.java (added)
+++ ctakes/trunk/ctakes-ytex/src/main/java/org/apache/ctakes/util/JdbcOp
+++ erationsHelper.java Tue Dec  5 03:58:07 2017
@@ -0,0 +1,49 @@
+package org.apache.ctakes.util;
+
+import org.apache.log4j.Logger;
+import org.springframework.dao.DataAccessException;
+import org.springframework.jdbc.core.JdbcOperations;
+
+/**
+ * Refactors helper functions like dropTableIfExists or other DB 
+operations
+ *
+ * // TODO: consider renaming it with something more suitable  */ 
+public abstract class JdbcOperationsHelper {
+
+	static private final Logger LOGGER = 
+Logger.getLogger(JdbcOperationsHelper.class);
+
+	/**
+	 * Helper function to drop a 'table' from a DB, using SQL syntax
+	 *
+	 * @param jdbc
+	 * @param dbEngineType
+	 * @param sqlTableName
+	 */
+	protected final void dropTableIfExist(JdbcOperations jdbc, final String dbEngineType, final String sqlTableName) {
+		// TODO: consider refactor using JOOQ
+		String sqlStatement = "";
+		switch (dbEngineType.toLowerCase()) {
+			case "hsql":
+			case "mysql":
+				sqlStatement = String.format("DROP TABLE IF EXISTS %s", sqlTableName);
+				break;
+			case "mssql":
+				sqlStatement = String.format("IF EXISTS(SELECT * FROM sys.objects WHERE object_id = object_id('%s')) DROP TABLE %s", sqlTableName);
+				break;
+			case "orcl":
+				sqlStatement = String.format("DROP TABLE %s", sqlTableName);
+				break;
+			default:
+				LOGGER.warn(String.format("unsupported DB engine type: %s", dbEngineType));
+				break;
+		}
+		if (!sqlStatement.isEmpty()) {
+			try {
+				jdbc.execute(sqlStatement);
+			} catch (DataAccessException e) {
+				LOGGER.warn("couldn't drop table test_concepts. Maybe it doesn't even exists", e);
+			}
+		}
+	}
+}