class JDBCCore {

    public void executePublish(ExtensionServiceMessage message) {
        Map<String, ?> request = (Map<String, ?>) message.getObject();

        // Getting local copy of JDBC class
        JDBC localJDBC = null;
        synchronized (SYNCH_LOCK) {
            localJDBC = jdbc;
        }

        if (localJDBC == null) {
            log.error("JDBC connection closed before operation could complete");
        }

        // Gather query results, or send a query error if an exception is caught
        try {
            if (request.get("query") instanceof String) {
                String queryString = (String) request.get("query");
                int data = localJDBC.processPublish(queryString);
                log.trace("The returned integer value from Publish Query is the following: ", data);
            } else if (request.get("query") instanceof List) {
                List queryArray = (List) request.get("query");
                int[] data = localJDBC.processBatchPublish(queryArray);
                log.trace("The returned integer array from Publish Query is the following: ", data);
            } else {
                log.error("Query could not be executed because query was not a String or a List");
            }
        } catch (VantiqSQLException e) {
            log.error("Could not execute requested query.", e);
            log.error("Request was: {}", request);
        } catch (ClassCastException e) {
            log.error("Could not execute requested query. This is most likely because the query list did not contain Strings.", e);
            log.error("Request was: {}", request);
        } catch (Exception e) {
            log.error("An unexpected error occurred when executing the requested query.", e);
            log.error("Request was: {}", request);
        }
    }

    public  JDBCCore(String sourceName, String authToken, String targetVantiqServer);

}