Revision: 6462
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6462&view=rev
Author: gerdwagner
Date: 2011-10-27 18:35:50 +0000 (Thu, 27 Oct 2011)
Log Message:
-----------
Jar directories in Hibernate config
Modified Paths:
--------------
trunk/sql12/doc/src/main/resources/changes.txt
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfigController.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfigPanel.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/MappingRoot.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateConfiguration.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateProxyHandler.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/IntraVmConnectionFactory.java
trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.properties
trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/I18NStrings.properties
Added Paths:
-----------
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ClassPathItemListModel.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ClassPathListCellRenderer.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ClassPathItem.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ClassPathUtil.java
trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/images/jarDirectory.png
trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/images/ppJar.png
Modified: trunk/sql12/doc/src/main/resources/changes.txt
===================================================================
--- trunk/sql12/doc/src/main/resources/changes.txt 2011-10-13 00:51:05 UTC (rev 6461)
+++ trunk/sql12/doc/src/main/resources/changes.txt 2011-10-27 18:35:50 UTC (rev 6462)
@@ -8,6 +8,10 @@
Enhancements:
Hibernate Plugin:
+ Directories containing archive files (Jars, Zips) can now be added to a Hibernate configuration's classpath.
+ All files in the directory will be added as classpath entries.
+
+Hibernate Plugin:
HQL errors during results reading are now displayed as a result tab. (Similar to the new SQL error display.)
Some performance improvements, when searching in the object tree.
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.java 2011-10-13 00:51:05 UTC (rev 6461)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -21,6 +21,9 @@
String PROPERTY_IMAGE = "property";
String CLOSE_IMAGE = "close";
String RUN_IMAGE = "run";
+
+ String JAR_IMAGE = "jar";
+ String JAR_DIRECTORY_IMAGE = "jardirectory";
}
}
Added: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ClassPathItemListModel.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ClassPathItemListModel.java (rev 0)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ClassPathItemListModel.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -0,0 +1,62 @@
+package net.sourceforge.squirrel_sql.plugins.hibernate.configuration;
+
+import net.sourceforge.squirrel_sql.plugins.hibernate.server.ClassPathItem;
+import net.sourceforge.squirrel_sql.plugins.hibernate.server.ClassPathUtil;
+
+import javax.swing.*;
+
+public class ClassPathItemListModel extends DefaultListModel
+{
+ public String[] getClassPathArray()
+ {
+ ClassPathItem[] classPathItems = getItemArray();
+ return ClassPathUtil.classPathAsStringArray(classPathItems);
+ }
+
+ private ClassPathItem[] getItemArray()
+ {
+ ClassPathItem[] ret = new ClassPathItem[getSize()];
+
+ for (int i = 0; i < getSize(); i++)
+ {
+ ret[i] = (ClassPathItem) get(i);
+ }
+
+ return ret;
+ }
+
+ public ClassPathItem getClassPathItemAt(int i)
+ {
+ return (ClassPathItem) get(i);
+ }
+
+ public void addJar(String path)
+ {
+ _addEntry(path, false);
+ }
+
+ public void addJarDir(String path)
+ {
+ _addEntry(path, true);
+ }
+
+ private void _addEntry(String path, boolean jarDir)
+ {
+ ClassPathItem item = new ClassPathItem();
+ item.setPath(path);
+ item.setJarDir(jarDir);
+ super.addElement(item);
+ }
+
+
+ @Override
+ public void addElement(Object obj)
+ {
+ throw new UnsupportedOperationException("Use addJar() or addJarDir()");
+ }
+
+ public void addItem(ClassPathItem item)
+ {
+ super.addElement(item);
+ }
+}
Added: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ClassPathListCellRenderer.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ClassPathListCellRenderer.java (rev 0)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ClassPathListCellRenderer.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -0,0 +1,44 @@
+package net.sourceforge.squirrel_sql.plugins.hibernate.configuration;
+
+import net.sourceforge.squirrel_sql.plugins.hibernate.HibernatePluginResources;
+import net.sourceforge.squirrel_sql.plugins.hibernate.server.ClassPathItem;
+
+import javax.swing.*;
+import java.awt.*;
+
+class ClassPathListCellRenderer extends DefaultListCellRenderer
+{
+ private HibernatePluginResources _resources;
+
+ ClassPathListCellRenderer(HibernatePluginResources resources)
+ {
+ _resources = resources;
+ }
+
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
+ {
+ ClassPathItem item = (ClassPathItem) value;
+ Component listCellRendererComponent = super.getListCellRendererComponent(list, item.getPath(), index, isSelected, cellHasFocus);
+
+ if(listCellRendererComponent instanceof JLabel)
+ {
+ ((JLabel)listCellRendererComponent).setIcon(_getIcon(item));
+
+ }
+ return listCellRendererComponent;
+ }
+
+ public Icon _getIcon(ClassPathItem item)
+ {
+ if(item.isJarDir())
+ {
+ return _resources.getIcon(HibernatePluginResources.IKeys.JAR_DIRECTORY_IMAGE);
+ }
+ else
+ {
+ return _resources.getIcon(HibernatePluginResources.IKeys.JAR_IMAGE);
+ }
+ }
+
+}
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfigController.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfigController.java 2011-10-13 00:51:05 UTC (rev 6461)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfigController.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -25,6 +25,7 @@
import net.sourceforge.squirrel_sql.fw.xml.XMLBeanWriter;
import net.sourceforge.squirrel_sql.plugins.hibernate.HibernatePlugin;
import net.sourceforge.squirrel_sql.plugins.hibernate.HibernatePrefsListener;
+import net.sourceforge.squirrel_sql.plugins.hibernate.server.ClassPathItem;
import net.sourceforge.squirrel_sql.plugins.hibernate.server.HibernateConfiguration;
import net.sourceforge.squirrel_sql.plugins.hibernate.util.HibernateUtil;
@@ -55,11 +56,10 @@
_plugin = plugin;
_processDetails = new ProcessDetails(_plugin);
- _panel = new HibernateConfigPanel();
+ _panel = new HibernateConfigPanel(_plugin.getResources());
_hibernatePrefsListener = _plugin.removeHibernatePrefsListener();
- _panel.lstClassPath.setModel(new DefaultListModel());
_panel.btnNewConfig.addActionListener(new ActionListener()
{
@@ -85,6 +85,14 @@
}
});
+ _panel.btnClassPathDirAdd.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ onAddClassPathDir();
+ }
+ });
+
_panel.btnClassPathRemove.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
@@ -168,15 +176,15 @@
private void onProcessDetails()
{
- String[] cp = new String[_panel.lstClassPath.getModel().getSize()];
- for (int i = 0; i < _panel.lstClassPath.getModel().getSize(); ++i)
- {
- cp[i] = (String) _panel.lstClassPath.getModel().getElementAt(i);
- }
- new ProcessDetailsController(_plugin, _processDetails, cp);
+ new ProcessDetailsController(_plugin, _processDetails, getClassPathListModel().getClassPathArray());
}
- private void onProcessChanged()
+ private ClassPathItemListModel getClassPathListModel()
+ {
+ return (ClassPathItemListModel) _panel.lstClassPath.getModel();
+ }
+
+ private void onProcessChanged()
{
_panel.btnProcessDetails.setEnabled(_panel.radCreateProcess.isSelected());
}
@@ -226,16 +234,16 @@
{
int[] selIces = _panel.lstClassPath.getSelectedIndices();
- List<String> toRemove = new ArrayList<String>();
+ List<ClassPathItem> toRemove = new ArrayList<ClassPathItem>();
DefaultListModel listModel = (DefaultListModel) _panel.lstClassPath.getModel();
for (int i = 0; i < selIces.length; i++)
{
- toRemove.add((String) listModel.getElementAt(selIces[i]));
+ toRemove.add((ClassPathItem) listModel.getElementAt(selIces[i]));
}
- for (String s : toRemove)
+ for (ClassPathItem ci : toRemove)
{
- listModel.removeElement(s);
+ listModel.removeElement(ci);
}
}
@@ -308,14 +316,15 @@
cfg.setPersistenceUnitName(persistenceUnitName);
cfg.setName(cfgName);
- String[] classPathEntries = new String[_panel.lstClassPath.getModel().getSize()];
+ ClassPathItem[] classPathEntries = new ClassPathItem[getClassPathListModel().getSize()];
- for (int i = 0; i < _panel.lstClassPath.getModel().getSize(); ++i)
+ for (int i = 0; i < getClassPathListModel().getSize(); ++i)
{
- classPathEntries[i] = (String) _panel.lstClassPath.getModel().getElementAt(i);
+ classPathEntries[i] = getClassPathListModel().getClassPathItemAt(i);
}
- cfg.setClassPathEntries(classPathEntries);
+ cfg.setClassPathItems(classPathEntries);
+
if (_panel.radUserDefProvider.isSelected())
{
cfg.setUserDefinedProvider(true);
@@ -354,6 +363,52 @@
}
+
+ private void onAddClassPathDir()
+ {
+ String dirPath = Preferences.userRoot().get(PERF_KEY_LAST_DIR, System.getProperty("user.home"));
+
+ JFileChooser fc = new JFileChooser(dirPath);
+
+ fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+ fc.setMultiSelectionEnabled(true);
+
+ fc.setFileFilter(new FileFilter()
+ {
+ public boolean accept(File f)
+ {
+ if (f.isDirectory())
+ {
+ return true;
+ }
+ return false;
+ }
+
+ public String getDescription()
+ {
+ // i18n[HibernateConfigController.classpathEntryDesc=Jars, Zips or directories]
+ return s_stringMgr.getString("HibernateController.classpathDirEntryDesc");
+ }
+ });
+
+ if (JFileChooser.APPROVE_OPTION != fc.showOpenDialog(_plugin.getApplication().getMainFrame()))
+ {
+ return;
+ }
+
+ File[] files = fc.getSelectedFiles();
+
+ for (int i = 0; i < files.length; i++)
+ {
+ getClassPathListModel().addJarDir(files[i].getPath());
+ }
+
+ if (0 < files.length)
+ {
+ Preferences.userRoot().put(PERF_KEY_LAST_DIR, files[0].getPath());
+ }
+ }
+
private void onAddClasspathEntry()
{
String dirPath = Preferences.userRoot().get(PERF_KEY_LAST_DIR, System.getProperty("user.home"));
@@ -389,10 +444,9 @@
File[] files = fc.getSelectedFiles();
- DefaultListModel listModel = (DefaultListModel) _panel.lstClassPath.getModel();
for (int i = 0; i < files.length; i++)
{
- listModel.addElement(files[i].getPath());
+ getClassPathListModel().addJar(files[i].getPath());
}
if (0 < files.length)
@@ -417,7 +471,6 @@
return;
}
- DefaultListModel listModel = (DefaultListModel) _panel.lstClassPath.getModel();
for (int i : selIx)
{
@@ -430,9 +483,9 @@
int[] newSelIx = new int[selIx.length];
for (int i = 0; i < selIx.length; ++i)
{
- String file = (String) listModel.remove(selIx[i]);
+ ClassPathItem item = (ClassPathItem) getClassPathListModel().remove(selIx[i]);
newSelIx[i] = selIx[i] - 1;
- listModel.insertElementAt(file, newSelIx[i]);
+ getClassPathListModel().insertElementAt(item, newSelIx[i]);
}
_panel.lstClassPath.setSelectedIndices(newSelIx);
@@ -450,11 +503,10 @@
return;
}
- DefaultListModel listModel = (DefaultListModel) _panel.lstClassPath.getModel();
for (int i : selIx)
{
- if (listModel.getSize() - 1 == i)
+ if (getClassPathListModel().getSize() - 1 == i)
{
return;
}
@@ -463,9 +515,9 @@
int[] newSelIx = new int[selIx.length];
for (int i = selIx.length - 1; i >= 0; --i)
{
- String file = (String) listModel.remove(selIx[i]);
+ ClassPathItem item = (ClassPathItem) getClassPathListModel().remove(selIx[i]);
newSelIx[i] = selIx[i] + 1;
- listModel.insertElementAt(file, newSelIx[i]);
+ getClassPathListModel().insertElementAt(item, newSelIx[i]);
}
_panel.lstClassPath.setSelectedIndices(newSelIx);
@@ -487,9 +539,8 @@
{
_panel.txtConfigName.setText(null);
- DefaultListModel listModel = (DefaultListModel) _panel.lstClassPath.getModel();
- listModel.clear();
+ getClassPathListModel().clear();
_panel.txtFactoryProvider.setText(null);
@@ -506,13 +557,12 @@
_panel.txtConfigName.setText(cfg.getName());
- DefaultListModel listModel = (DefaultListModel) _panel.lstClassPath.getModel();
- listModel.clear();
+ getClassPathListModel().clear();
- for (String path : cfg.getClassPathEntries())
+ for (ClassPathItem path : cfg.getClassPathItems())
{
- listModel.addElement(path);
+ getClassPathListModel().addItem(path);
}
if (cfg.isUserDefinedProvider())
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfigPanel.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfigPanel.java 2011-10-13 00:51:05 UTC (rev 6461)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfigPanel.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -2,6 +2,7 @@
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
+import net.sourceforge.squirrel_sql.plugins.hibernate.HibernatePluginResources;
import javax.swing.*;
import javax.swing.border.TitledBorder;
@@ -17,8 +18,10 @@
JButton btnRemoveConfig;
JTextField txtFactoryProvider;
JButton btnEditFactoryProviderInfo;
+
JList lstClassPath;
JButton btnClassPathAdd;
+ JButton btnClassPathDirAdd;
JButton btnClassPathRemove;
JButton btnClassPathMoveUp;
JButton btnClassPathMoveDown;
@@ -33,7 +36,7 @@
JRadioButton radInVM;
- public HibernateConfigPanel()
+ public HibernateConfigPanel(HibernatePluginResources resources)
{
setLayout(new GridBagLayout());
@@ -59,10 +62,10 @@
add(btnRemoveConfig, gbc);
gbc = new GridBagConstraints(0,1,4,1,1,1, GridBagConstraints.NORTHWEST,GridBagConstraints.BOTH, new Insets(15,10,10,10),0,0);
- add(createConfigDefPanel(), gbc);
+ add(createConfigDefPanel(resources), gbc);
}
- private JPanel createConfigDefPanel()
+ private JPanel createConfigDefPanel(HibernatePluginResources resources)
{
JPanel ret = new JPanel(new GridBagLayout());
// i18n[HibernateConfigPanel.ConfiguirationDef=Configuration definition]
@@ -75,7 +78,7 @@
gbc = new GridBagConstraints(0,1,1,1,1,1, GridBagConstraints.NORTHWEST,GridBagConstraints.BOTH, new Insets(0,5,5,5),0,0);
- ret.add(createClasspathPanel(), gbc);
+ ret.add(createClasspathPanel(resources), gbc);
gbc = new GridBagConstraints(0,2,1,1,0,0,GridBagConstraints.NORTHWEST,GridBagConstraints.HORIZONTAL, new Insets(10,5,5,5),0,0);
@@ -155,7 +158,7 @@
}
- private JPanel createClasspathPanel()
+ private JPanel createClasspathPanel(final HibernatePluginResources resources)
{
// i18n[HibernateConfigPanel.newFactoryClasspathBorder=Additional classpath entries to create a SessionFactoryImpl]
TitledBorder brd = BorderFactory.createTitledBorder(s_stringMgr.getString("HibernatePanel.newFactoryClasspathBorder"));
@@ -166,17 +169,22 @@
GridBagConstraints gbc;
gbc = new GridBagConstraints(0,0,1,1,1,1, GridBagConstraints.NORTHWEST,GridBagConstraints.BOTH, new Insets(0,5,5,5),0,0);
- lstClassPath = new JList();
+
+ lstClassPath = new JList(new ClassPathItemListModel());
+ lstClassPath.setCellRenderer(new ClassPathListCellRenderer(resources));
+
+
+
ret.add(new JScrollPane(lstClassPath), gbc);
gbc = new GridBagConstraints(0,1,1,1,0,0, GridBagConstraints.SOUTHEAST,GridBagConstraints.NONE, new Insets(0,5,5,5),0,0);
- ret.add(createButtonClasspathPanel(), gbc);
+ ret.add(createButtonClasspathPanel(resources), gbc);
return ret;
}
- private JPanel createButtonClasspathPanel()
+ private JPanel createButtonClasspathPanel(HibernatePluginResources resources)
{
JPanel ret = new JPanel(new GridBagLayout());
@@ -186,18 +194,24 @@
gbc = new GridBagConstraints(0,0,1,1,0,0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5), 0,0);
// i18n[HibernateConfigPanel.classPathAdd=Add classpath entry]
btnClassPathAdd = new JButton(s_stringMgr.getString("HibernatePanel.classPathAdd"));
+ btnClassPathAdd.setIcon(resources.getIcon(HibernatePluginResources.IKeys.JAR_IMAGE));
ret.add(btnClassPathAdd, gbc);
gbc = new GridBagConstraints(1,0,1,1,0,0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5), 0,0);
+ btnClassPathDirAdd = new JButton(s_stringMgr.getString("HibernatePanel.classPathDirAdd"));
+ btnClassPathDirAdd.setIcon(resources.getIcon(HibernatePluginResources.IKeys.JAR_DIRECTORY_IMAGE));
+ ret.add(btnClassPathDirAdd, gbc);
+
+ gbc = new GridBagConstraints(2,0,1,1,0,0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5), 0,0);
// i18n[HibernateConfigPanel.classPathRemove=Remove selected entries]
btnClassPathRemove = new JButton(s_stringMgr.getString("HibernatePanel.classPathRemove"));
ret.add(btnClassPathRemove, gbc);
- gbc = new GridBagConstraints(2,0,1,1,0,0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5), 0,0);
+ gbc = new GridBagConstraints(3,0,1,1,0,0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5), 0,0);
btnClassPathMoveUp = new JButton(s_stringMgr.getString("HibernatePanel.moveUp"));
ret.add(btnClassPathMoveUp, gbc);
- gbc = new GridBagConstraints(3,0,1,1,0,0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5), 0,0);
+ gbc = new GridBagConstraints(4,0,1,1,0,0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5), 0,0);
btnClassPathMoveDown = new JButton(s_stringMgr.getString("HibernatePanel.moveDown"));
ret.add(btnClassPathMoveDown, gbc);
@@ -293,4 +307,5 @@
return ret;
}
+
}
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/MappingRoot.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/MappingRoot.java 2011-10-13 00:51:05 UTC (rev 6461)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/MappingRoot.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -1,6 +1,7 @@
package net.sourceforge.squirrel_sql.plugins.hibernate.mapping;
import net.sourceforge.squirrel_sql.plugins.hibernate.HibernateConnection;
+import net.sourceforge.squirrel_sql.plugins.hibernate.server.ClassPathUtil;
import net.sourceforge.squirrel_sql.plugins.hibernate.server.HibernateConfiguration;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
@@ -9,7 +10,6 @@
import net.sourceforge.squirrel_sql.plugins.hibernate.server.HibernateSqlConnectionData;
import java.util.Hashtable;
-import java.sql.DatabaseMetaData;
public class MappingRoot extends Object
{
@@ -49,7 +49,7 @@
_properties.put(s_stringMgr.getString("MappingRoot.cfgName"), cfg.getName());
//i18n[MappingRoot.classpath=Classpath]
- _properties.put(s_stringMgr.getString("MappingRoot.classpath"), cfg.classpathAsString());
+ _properties.put(s_stringMgr.getString("MappingRoot.classpath"), ClassPathUtil.classPathToString(cfg.getClassPathItems()));
try
Added: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ClassPathItem.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ClassPathItem.java (rev 0)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ClassPathItem.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -0,0 +1,29 @@
+package net.sourceforge.squirrel_sql.plugins.hibernate.server;
+
+import java.io.Serializable;
+
+public class ClassPathItem implements Serializable
+{
+ private boolean _jarDir;
+ private String _path;
+
+ public void setPath(String path)
+ {
+ _path = path;
+ }
+
+ public void setJarDir(boolean b)
+ {
+ _jarDir = b;
+ }
+
+ public boolean isJarDir()
+ {
+ return _jarDir;
+ }
+
+ public String getPath()
+ {
+ return _path;
+ }
+}
Added: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ClassPathUtil.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ClassPathUtil.java (rev 0)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ClassPathUtil.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -0,0 +1,57 @@
+package net.sourceforge.squirrel_sql.plugins.hibernate.server;
+
+import java.io.File;
+import java.util.ArrayList;
+
+public class ClassPathUtil
+{
+ public static String classPathToString(ClassPathItem[] classPathItems)
+ {
+ String[] paths = classPathAsStringArray(classPathItems);
+
+ if(0 == paths.length)
+ {
+ return "";
+ }
+
+ String ret = paths[0];
+
+ for (int i = 1; i < paths.length; i++)
+ {
+ ret += File.pathSeparator + paths[i];
+ }
+
+ return ret;
+ }
+
+ private static ArrayList<String> _genStringArray(ClassPathItem classPathItem)
+ {
+ ArrayList<String> ret = new ArrayList<String>();
+ if (classPathItem.isJarDir())
+ {
+ File[] files = new File(classPathItem.getPath()).listFiles();
+
+ for (File file : files)
+ {
+ ret.add(file.getPath());
+ }
+ }
+ else
+ {
+ ret.add(classPathItem.getPath());
+ }
+
+ return ret;
+ }
+
+ public static String[] classPathAsStringArray(ClassPathItem[] classPathItems)
+ {
+ ArrayList<String> ret = new ArrayList<String>();
+ for (int i = 0; i < classPathItems.length; i++)
+ {
+ ret.addAll(_genStringArray(classPathItems[i]));
+ }
+
+ return ret.toArray(new String[ret.size()]);
+ }
+}
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateConfiguration.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateConfiguration.java 2011-10-13 00:51:05 UTC (rev 6461)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateConfiguration.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -1,13 +1,11 @@
package net.sourceforge.squirrel_sql.plugins.hibernate.server;
-import java.io.File;
import java.io.Serializable;
public class HibernateConfiguration implements Serializable
{
private String _provider;
private String _name;
- private String[] _classpathEntries = new String[0];
private boolean _userDefinedProvider;
private boolean _jpa;
private String _persistenceUnitName;
@@ -15,6 +13,7 @@
private String _command;
private boolean _endProcessOnDisconnect;
private int _processPort;
+ private ClassPathItem[] _classPathItems;
public String getProvider()
{
@@ -36,17 +35,6 @@
this._name = name;
}
- public String[] getClassPathEntries()
- {
- return _classpathEntries;
- }
-
- public void setClassPathEntries(String[] classPathEntries)
- {
- _classpathEntries = classPathEntries;
- }
-
-
public String toString()
{
return _name;
@@ -83,30 +71,6 @@
return _persistenceUnitName;
}
- public String classpathAsString()
- {
- return classPathToString(_classpathEntries);
- }
-
- public static String classPathToString(String[] classpathEntries)
- {
- if(0 == classpathEntries.length)
- {
- return "";
- }
- else
- {
- String ret = classpathEntries[0];
-
- for (String _classpathEntry : classpathEntries)
- {
- ret += File.pathSeparator + _classpathEntry;
- }
-
- return ret;
- }
- }
-
public boolean isUseProcess()
{
return _useProcess;
@@ -146,4 +110,41 @@
{
return _processPort;
}
+
+ public void setClassPathItems(ClassPathItem[] classPathItems)
+ {
+ _classPathItems = classPathItems;
+ }
+
+ public ClassPathItem[] getClassPathItems()
+ {
+ return _classPathItems;
+ }
+
+ /**
+ * @deprecated Use getClassPathItems() instead
+ */
+ public String[] getClassPathEntries()
+ {
+ return new String[0];
+ }
+
+ /**
+ * @deprecated Use setClassPathItems() instead
+ */
+ public void setClassPathEntries(String[] classPathEntries)
+ {
+ if (null == _classPathItems)
+ {
+ _classPathItems = new ClassPathItem[classPathEntries.length];
+
+ for (int i = 0; i < classPathEntries.length; i++)
+ {
+ _classPathItems[i] = new ClassPathItem();
+ _classPathItems[i].setPath(classPathEntries[i]);
+ _classPathItems[i].setJarDir(false);
+ }
+ }
+ }
+
}
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateProxyHandler.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateProxyHandler.java 2011-10-13 00:51:05 UTC (rev 6461)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateProxyHandler.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -43,7 +43,18 @@
{
for (Object o : col)
{
- _prepareHibernateProxies(o, mappedClassNames, doneObjs);
+ if(o instanceof Object[])
+ {
+ Object[] arr = (Object[]) o;
+ for (Object entry : arr)
+ {
+ _prepareHibernateProxies(entry, mappedClassNames, doneObjs);
+ }
+ }
+ else
+ {
+ _prepareHibernateProxies(o, mappedClassNames, doneObjs);
+ }
}
}
}
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/IntraVmConnectionFactory.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/IntraVmConnectionFactory.java 2011-10-13 00:51:05 UTC (rev 6461)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/IntraVmConnectionFactory.java 2011-10-27 18:35:50 UTC (rev 6462)
@@ -58,7 +58,7 @@
private static URLClassLoader getClassLoader(HibernateConfiguration cfg)
throws Exception
{
- String[] classpath = cfg.getClassPathEntries();
+ String[] classpath = ClassPathUtil.classPathAsStringArray(cfg.getClassPathItems());
URL[] classpathUrls = new URL[classpath.length];
Modified: trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.properties
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.properties 2011-10-13 00:51:05 UTC (rev 6461)
+++ trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.properties 2011-10-27 18:35:50 UTC (rev 6462)
@@ -18,6 +18,9 @@
close.image=close.gif
run.image=run.gif
+jar.image=ppJar.png
+jardirectory.image=jarDirectory.png
+
########
# Configuration information for Actions.
########
Modified: trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/I18NStrings.properties
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/I18NStrings.properties 2011-10-13 00:51:05 UTC (rev 6461)
+++ trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/I18NStrings.properties 2011-10-27 18:35:50 UTC (rev 6462)
@@ -7,6 +7,7 @@
HibernatePanel.FactoryProvider=SessionFactoryImpl provider
HibernatePanel.classPathAdd=Add classpath entry
+HibernatePanel.classPathDirAdd=Add archive files directory
HibernatePanel.classPathRemove=Remove selected entries
HibernatePanel.ConfiguirationDef=Configuration definition
@@ -16,6 +17,8 @@
HibernateController.classpathEntryDesc=Jars, Zips or directories
+HibernateController.classpathDirEntryDesc=Directories containing archive files (Jars, Zips)
+
FactoryProviderDialog.title=Name of SessionFactorImpl provider
FactoryProviderDialog.desc=Please enter the fully qualified class name of a SessionFactorImpl provider class. The compiled class file must be in one of your additional classpath entries.
Added: trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/images/jarDirectory.png
===================================================================
(Binary files differ)
Property changes on: trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/images/jarDirectory.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/images/ppJar.png
===================================================================
(Binary files differ)
Property changes on: trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/images/ppJar.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|