public void doUpgrade(Upgrader upgrader, Connection oldConx, Connection newConx) throws Exception { // // Auth Schemes upgrader.info("Migrating all network places"); Statement stmt = oldConx.createStatement(); try { ResultSet rs = stmt.executeQuery("SELECT * FROM NETWORK_PLACES"); try { while (rs.next()) { String shortName = rs.getString("SHORT_NAME"); String username = rs.getString("username"); String uri = rs.getString("uri"); if (uri.equals("/fs/cifs") || uri.equals("/fs/cifs/")) { upgrader.warn(" Skipping network neighbourhood network place, no longer supported."); } else { shortName = shortName + " (" + (username.equals("") ? "System" : username) + ")"; PreparedStatement ps = newConx.prepareStatement("SELECT * FROM NETWORK_PLACES WHERE SHORT_NAME = ?"); boolean found = false; try { ps.setString(1, shortName); ResultSet rs2 = ps.executeQuery(); try { if (rs2.next()) { found = true; } } finally { rs2.close(); } } finally { ps.close(); } if (found) { upgrader.warn(" Network place '" + shortName + "' already exists, skipping"); } else { insertNetworkPlace(upgrader, newConx, uri, shortName); } } } } finally { rs.close(); } } finally { stmt.close(); } }
void insertNetworkPlace(Upgrader upgrader, Connection newConx, String uri, String shortName) throws Exception { PreparedStatement ps = newConx.prepareStatement( "INSERT INTO NETWORK_PLACES (SHORT_NAME," + "DESCRIPTION, PATH, READ_ONLY, ALLOW_RESURSIVE, " + "NO_DELETE, SHOW_HIDDEN, PARENT_RESOURCE_PERMISSION, " + "DATE_CREATED, DATE_AMENDED,SCHEME) VALUES " + "(?,?,?,?,?,?,?,?,NOW(),NOW(),?)"); try { upgrader.info(" " + shortName); ps.setString(1, shortName); ps.setString(2, shortName); if (uri.equals("/fs/cifs")) { uri = "smb://"; } else if (uri.startsWith("\\\\")) { uri = "smb:" + uri.replace('\\', '/'); } else { uri = "smb:/" + uri.substring(8); } ps.setString(3, uri); ps.setBoolean(4, false); ps.setBoolean(5, true); ps.setBoolean(6, false); ps.setBoolean(7, true); ps.setInt(8, 0); ps.setString(9, "smb"); try { ps.execute(); } catch (Exception e) { upgrader.warn("Failed to insert network place " + shortName + ". Probably already exists."); } } finally { ps.close(); } }