Skip to content

Commit

Permalink
refactor: deprecated sun CachedRowSetImpl to StreamingRowSetImpl
Browse files Browse the repository at this point in the history
  • Loading branch information
osalvador committed Dec 26, 2022
1 parent e17bc4c commit da5d131
Show file tree
Hide file tree
Showing 7 changed files with 9,708 additions and 9 deletions.
1 change: 0 additions & 1 deletion src/main/java/org/replicadb/manager/LocalFileManager.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.replicadb.manager;

import com.sun.rowset.CachedRowSetImpl;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.replicadb.cli.ReplicationMode;
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/org/replicadb/manager/SQLServerManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,12 @@ public int insertDataToTable (ResultSet resultSet, int taskId) throws SQLExcepti

LOG.info("Performing BulkCopy into {} ", tableName);
// Write from the source to the destination.
//If the source ResulSet is an implementation of RowSet (e.g. csv file) cast it.
if (resultSet.getClass().getPackage().getName().equals("org.replicadb.rowset"))
// If the source ResulSet is an implementation of RowSet (e.g. csv file) cast it.
if (resultSet instanceof RowSet) {
bulkCopy.writeToServer((RowSet) resultSet);
else
} else {
bulkCopy.writeToServer(resultSet);

}

bulkCopy.close();

Expand Down
3 changes: 1 addition & 2 deletions src/main/java/org/replicadb/rowset/CsvCachedRowSetImpl.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.replicadb.rowset;

import com.sun.rowset.CachedRowSetImpl;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVRecord;
import org.apache.logging.log4j.LogManager;
Expand All @@ -13,7 +12,7 @@
import java.nio.file.Files;
import java.sql.*;

public class CsvCachedRowSetImpl extends CachedRowSetImpl {
public class CsvCachedRowSetImpl extends StreamingRowSetImpl {
private static final Logger LOG = LogManager.getLogger(CsvCachedRowSetImpl.class.getName());

private File sourceFile;
Expand Down
165 changes: 165 additions & 0 deletions src/main/java/org/replicadb/rowset/JdbcRowSetResourceBundle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
package org.replicadb.rowset;

/*
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/

/*
* 2020-08-11_BP: renaming package for Maven artifact
*
* See: https://github.com/bpangburn/jdbcrowsetimpl
*/

import java.io.*;
import java.util.*;

/**
* This class is used to help in localization of resources,
* especially the exception strings.
*
* @author Amit Handa
*/
public class JdbcRowSetResourceBundle implements Serializable {

/**
* This <code>String</code> variable stores the location
* of the resource bundle location.
*/
private static String fileName;

/**
* This variable will hold the <code>PropertyResourceBundle</code>
* of the text to be internationalized.
*/
private transient PropertyResourceBundle propResBundle;

/**
* The constructor initializes to this object
*
*/
private static volatile JdbcRowSetResourceBundle jpResBundle;

/**
* The variable which will represent the properties
* the suffix or extension of the resource bundle.
**/
private static final String PROPERTIES = "properties";

/**
* The variable to represent underscore
**/
private static final String UNDERSCORE = "_";

/**
* The variable which will represent dot
**/
private static final String DOT = ".";

/**
* The variable which will represent the slash.
**/
private static final String SLASH = "/";

/**
* The variable where the default resource bundle will
* be placed.
**/
private static final String PATH = "org/replicadb/rowset/RowSetResourceBundle";

/**
* The constructor which initializes the resource bundle.
* Note this is a private constructor and follows Singleton
* Design Pattern.
*
* @throws IOException if unable to load the ResourceBundle
* according to locale or the default one.
*/
private JdbcRowSetResourceBundle () throws IOException {
// Try to load the resource bundle according
// to the locale. Else if no bundle found according
// to the locale load the default.

// In default case the default locale resource bundle
// should always be loaded else it
// will be difficult to throw appropriate
// exception string messages.
Locale locale = Locale.getDefault();

// Load appropriate bundle according to locale
//propResBundle = (PropertyResourceBundle) ResourceBundle.getBundle(PATH,
// locale, JdbcRowSetResourceBundle.class.getModule());
// 2020-08-11_BP: reverting to Java 8 compatible code from:
// https://hg.openjdk.java.net/jdk8/jdk8/jdk/file/cea72c2bf071/src/share/classes/com/sun/rowset/JdbcRowSetResourceBundle.java
propResBundle = (PropertyResourceBundle) ResourceBundle.getBundle(PATH,
locale, Thread.currentThread().getContextClassLoader());
}

/**
* This method is used to get a handle to the
* initialized instance of this class. Note that
* at any time there is only one instance of this
* class initialized which will be returned.
*
* @throws IOException if unable to find the RowSetResourceBundle.properties
*/
public static JdbcRowSetResourceBundle getJdbcRowSetResourceBundle()
throws IOException {

if(jpResBundle == null){
synchronized(JdbcRowSetResourceBundle.class) {
if(jpResBundle == null){
jpResBundle = new JdbcRowSetResourceBundle();
} //end if
} //end synchronized block
} //end if
return jpResBundle;
}

/**
* This method returns an enumerated handle of the keys
* which correspond to values translated to various locales.
*
* @return an enumeration of keys which have messages tranlated to
* corresponding locales.
*/
@SuppressWarnings("rawtypes")
public Enumeration getKeys() {
return propResBundle.getKeys();
}


/**
* This method takes the key as an argument and
* returns the corresponding value reading it
* from the Resource Bundle loaded earlier.
*
* @return value in locale specific language
* according to the key passed.
*/
public Object handleGetObject(String key) {
return propResBundle.handleGetObject(key);
}

static final long serialVersionUID = 436199386225359954L;
}
3 changes: 1 addition & 2 deletions src/main/java/org/replicadb/rowset/OrcCachedRowSetImpl.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package org.replicadb.rowset;

import com.sun.rowset.CachedRowSetImpl;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.sql.SQLException;

public class OrcCachedRowSetImpl extends CachedRowSetImpl {
public class OrcCachedRowSetImpl extends StreamingRowSetImpl {
private static final Logger LOG = LogManager.getLogger(OrcCachedRowSetImpl.class);

public OrcCachedRowSetImpl() throws SQLException {}
Expand Down
Loading

0 comments on commit da5d131

Please sign in to comment.