Backport: #131603 Invalid data source name generated when dragging table from FireBird database
1.1 --- a/visualweb.dataconnectivity/src/org/netbeans/modules/visualweb/dataconnectivity/model/DatasourceTransferManager.java Sat May 03 15:32:19 2008 +0200
1.2 +++ b/visualweb.dataconnectivity/src/org/netbeans/modules/visualweb/dataconnectivity/model/DatasourceTransferManager.java Sat May 03 16:24:28 2008 +0200
1.3 @@ -93,7 +93,9 @@
1.4 public static String rowSetClassName = "com.sun.sql.rowset.CachedRowSetXImpl";
1.5 private static final Logger LOGGER =
1.6 Logger.getLogger(DatasourceTransferManager.class.getName());
1.7 -
1.8 +
1.9 + private static final String UNDERSCORE = "_"; // NOI18N
1.10 + private static final String SLASH = "/"; // NOI18N
1.11
1.12 public DisplayItem getDisplayItem(Transferable transferable) {
1.13 Object transferData = null;
1.14 @@ -156,6 +158,7 @@
1.15 dbConnection = connection;
1.16 jdbcDriver = driver;
1.17 }
1.18 + @Override
1.19 public Result beansCreatedSetup(DesignBean[] designBeans) {
1.20 DesignBean designBean = designBeans[0];
1.21
1.22 @@ -178,25 +181,28 @@
1.23 String password = dbConnection.getPassword();
1.24 String schema = dbConnection.getSchema();
1.25
1.26 - if (schema.equals("")) {
1.27 - if (databaseProductName.equals("MySQL") && url.lastIndexOf("?") == -1)
1.28 - dsName = url.substring(url.lastIndexOf("/") + 1, url.length()) + "_" + databaseProductName;
1.29 - else if (databaseProductName.contains("/")) {
1.30 - int slashLoc = databaseProductName.indexOf("/");
1.31 + if (schema.equals("")) { // NOI18N
1.32 + if (databaseProductName.equals("MySQL") && url.lastIndexOf("?") == -1) // NOI18N
1.33 + dsName = url.substring(url.lastIndexOf(SLASH) + 1, url.length()) + UNDERSCORE + databaseProductName;
1.34 + else if (databaseProductName.contains("Firebird")) { // NOI18N
1.35 + dsName = getTableName() + UNDERSCORE + "Firebird"; // NOI18N
1.36 + }
1.37 + else if (databaseProductName.contains(SLASH)) {
1.38 + int slashLoc = databaseProductName.indexOf(SLASH);
1.39 String prefix = databaseProductName.substring(0, slashLoc);
1.40 String suffix = databaseProductName.substring(slashLoc+1);
1.41 - dsName = prefix + "_" + suffix;
1.42 - } else if (databaseProductName.equals("MySQL")) {
1.43 - dsName = url.substring(url.lastIndexOf("/") + 1, url.lastIndexOf("?")) + "_" + databaseProductName;
1.44 + dsName = prefix + UNDERSCORE + suffix;
1.45 + } else if (databaseProductName.equals("MySQL")) { // NOI18N
1.46 + dsName = url.substring(url.lastIndexOf(SLASH) + 1, url.lastIndexOf("?")) + UNDERSCORE + databaseProductName; // NOI18N
1.47 } else
1.48 - dsName = getTableName() + "_" + databaseProductName;
1.49 - } else if (databaseProductName.contains("/")) {
1.50 - int slashLoc = databaseProductName.indexOf("/");
1.51 + dsName = getTableName() + UNDERSCORE + databaseProductName;
1.52 + } else if (databaseProductName.contains(SLASH)) {
1.53 + int slashLoc = databaseProductName.indexOf(SLASH);
1.54 String prefix = databaseProductName.substring(0, slashLoc);
1.55 String suffix = databaseProductName.substring(slashLoc+1);
1.56 - dsName = prefix + "_" + suffix;
1.57 + dsName = prefix + UNDERSCORE + suffix;
1.58 } else {
1.59 - dsName = dbConnection.getSchema() + "_" + databaseProductName;
1.60 + dsName = dbConnection.getSchema() + UNDERSCORE + databaseProductName;
1.61 }
1.62
1.63 // Check if target server supports data source creation. If not then cancel drop