Revision: 5812
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5812&view=rev
Author: manningr
Date: 2010-08-21 17:38:39 +0000 (Sat, 21 Aug 2010)
Log Message:
-----------
Initial changes to convert from Ant build to Maven build
Added Paths:
-----------
trunk/sql12/plugins/derby/pom.xml
trunk/sql12/plugins/derby/src/main/
trunk/sql12/plugins/derby/src/main/java/
trunk/sql12/plugins/derby/src/main/java/net/
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/DerbyPlugin.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/exp/
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/exp/DerbyTableTriggerExtractorImpl.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPluginPreferencesPanel.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPreferenceBean.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/ProcedureSourceTab.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerDetailsTab.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerSourceTab.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/ViewSourceTab.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tokenizer/
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tokenizer/DerbyQueryTokenizer.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/types/
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/types/DerbyClobDataTypeComponent.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/types/DerbyClobDataTypeComponentFactory.java
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/types/DerbyClobDescriptor.java
trunk/sql12/plugins/derby/src/main/resources/
trunk/sql12/plugins/derby/src/main/resources/doc/
trunk/sql12/plugins/derby/src/main/resources/net/
trunk/sql12/plugins/derby/src/main/resources/net/sourceforge/
trunk/sql12/plugins/derby/src/main/resources/net/sourceforge/squirrel_sql/
trunk/sql12/plugins/derby/src/main/resources/net/sourceforge/squirrel_sql/plugins/
trunk/sql12/plugins/derby/src/main/resources/net/sourceforge/squirrel_sql/plugins/derby/
trunk/sql12/plugins/derby/src/main/resources/net/sourceforge/squirrel_sql/plugins/derby/I18NStrings.properties
trunk/sql12/plugins/derby/src/main/resources/net/sourceforge/squirrel_sql/plugins/derby/prefs/
trunk/sql12/plugins/derby/src/main/resources/net/sourceforge/squirrel_sql/plugins/derby/prefs/I18NStrings.properties
trunk/sql12/plugins/derby/src/main/resources/net/sourceforge/squirrel_sql/plugins/derby/tab/
trunk/sql12/plugins/derby/src/main/resources/net/sourceforge/squirrel_sql/plugins/derby/tab/I18NStrings.properties
trunk/sql12/plugins/derby/src/test/
trunk/sql12/plugins/derby/src/test/java/
trunk/sql12/plugins/derby/src/test/java/net/
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/DerbyPluginTest.java
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/exp/
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/exp/DerbyTableTriggerExtractorImplTest.java
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPreferenceBeanTest.java
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/tab/
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerDetailsTabTest.java
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerSourceTabTest.java
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/tab/ViewSourceTabTest.java
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/tokenizer/
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/tokenizer/DerbyQueryTokenizerTest.java
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/types/
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/types/DerbyClobDataTypeComponentFactoryTest.java
trunk/sql12/plugins/derby/src/test/java/net/sourceforge/squirrel_sql/plugins/derby/types/DerbyClobDataTypeComponentTest.java
Removed Paths:
-------------
trunk/sql12/plugins/derby/doc/
trunk/sql12/plugins/derby/plugin_build.xml
trunk/sql12/plugins/derby/src/net/
Property Changed:
----------------
trunk/sql12/plugins/derby/
Property changes on: trunk/sql12/plugins/derby
___________________________________________________________________
Added: svn:ignore
+ target
.settings
.project
.classpath
Deleted: trunk/sql12/plugins/derby/plugin_build.xml
===================================================================
--- trunk/sql12/plugins/derby/plugin_build.xml 2010-08-21 17:38:07 UTC (rev 5811)
+++ trunk/sql12/plugins/derby/plugin_build.xml 2010-08-21 17:38:39 UTC (rev 5812)
@@ -1,88 +0,0 @@
-<?xml version="1.0"?>
-<!--
- This is an Apache Ant build file to build the SQL script plugin
- for distribution.
--->
-<project name="plugin-derby" default="build" basedir=".">
- <target name="init">
- <tstamp/>
- <property name="internal_name" value="derby"/>
- <property name="version" value="0.01"/>
-
- <property name="debug" value="on"/>
- <property name="optimize" value="off"/>
- <property name="deprecation" value="on"/>
- <property name="targetVM" value="1.6"/>
-
- <echo message="---------------- ${internal_name} ${version} ----------------"/>
-
- <property environment="env"/>
- </target>
- <target name="initdirs" unless="p_plugin.work_dir">
- <property name="dist_dir" value="../../../squirrel-sql-dist/squirrel-sql"/>
- <property name="plugins_dist_dir" value="${dist_dir}/plugins"/>
- <property name="p_plugin.work_dir" value="${plugins_dist_dir}/${internal_name}/work"/>
- <property name="p_plugin.core_libs_dir" value="${dist_dir}/core/dist/lib"/>
- <property name="p_plugin.dist_dir" value="${dist_dir}/core/dist/plugins"/>
- </target>
- <!--
- ==================================================================
- Compile the plugin.
- No parameters.
- ==================================================================
- -->
- <target name="build" depends="init, initdirs">
- <property name="obj_dir" value="${p_plugin.work_dir}/obj"/>
-
- <mkdir dir="${obj_dir}"/>
- <mkdir dir="${p_plugin.dist_dir}"/>
-
- <javac srcdir="src"
- destdir="${obj_dir}"
- deprecation="${deprecation}"
- debug="${debug}"
- optimize="${optimize}"
- includeJavaRuntime="yes"
- source="${targetVM}"
- target="${targetVM}">
-
- <classpath>
- <fileset dir="${p_plugin.core_libs_dir}">
- <include name="**/*.*"/>
- </fileset>
- </classpath>
- </javac>
- <copy todir="${obj_dir}" >
- <fileset dir="src" >
- <include name="**/*.gif"/>
- <include name="**/*.jpg"/>
- <include name="**/*.jpeg"/>
- <include name="**/*.xml"/>
- <include name="**/*.xsl"/>
- <include name="**/*.properties"/>
- </fileset>
- </copy>
-
- <jar jarfile="${p_plugin.dist_dir}/${internal_name}.jar" compress="false">
- <fileset dir="${obj_dir}">
- <include name="**/*.*"/>
- </fileset>
- </jar>
-
- <copy todir="${p_plugin.dist_dir}/${internal_name}" >
- <fileset dir="doc" >
- <include name="**/*.*"/>
- </fileset>
- </copy>
-
-
- <jar jarfile="${p_plugin.dist_dir}/${internal_name}/src.jar" compress="false">
- <fileset dir=".">
- <include name="src/**/*.*"/>
- <include name="plugin_build.xml"/>
- </fileset>
- </jar>
- </target>
-
-</project>
-
Added: trunk/sql12/plugins/derby/pom.xml
===================================================================
--- trunk/sql12/plugins/derby/pom.xml (rev 0)
+++ trunk/sql12/plugins/derby/pom.xml 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,135 @@
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>net.sf.squirrel-sql.plugins</groupId>
+ <artifactId>squirrelsql-plugins-parent-pom</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </parent>
+ <groupId>net.sf.squirrel-sql.plugins</groupId>
+ <artifactId>derby</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>Derby Plugin</name>
+ <description>Derby Plugin</description>
+ <inceptionYear>2001</inceptionYear>
+ <developers>
+ <developer>
+ <name>Gerd Wagner</name>
+ <roles>
+ <role>Administrator</role>
+ <role>Developer</role>
+ </roles>
+ </developer>
+ <developer>
+ <name>Rob Manning</name>
+ <roles>
+ <role>Developer</role>
+ <role>Release Manager</role>
+ </roles>
+ </developer>
+ </developers>
+ <licenses>
+ <license>
+ <name>GNU Lesser General Public License</name>
+ <url>http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ <url>http://www.squirrelsql.org/</url>
+ <scm>
+ <connection>scm:svn:https://squirrel-sql.svn.sourceforge.net/svnroot/squirrel-sql/trunk/sql12/</connection>
+ <developerConnection>scm:svn:http://squirrel-sql.svn.sourceforge.net/viewvc/squirrel-sql/trunk/sql12/</developerConnection>
+ <url>http://squirrel-sql.svn.sourceforge.net/viewvc/squirrel-sql/trunk/sql12/</url>
+ </scm>
+ <issueManagement>
+ <system>SourceForge Tracker</system>
+ <url>http://sourceforge.net/tracker/?group_id=28383%26atid=393414</url>
+ </issueManagement>
+ <ciManagement>
+ <system>Hudson</system>
+ <url>https://www.squirrel-sql.org/hudson/</url>
+ </ciManagement>
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.squirrel-sql</groupId>
+ <artifactId>fw</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.squirrel-sql</groupId>
+ <artifactId>squirrel-sql</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.squirrel-sql</groupId>
+ <artifactId>squirrel-sql</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.squirrel-sql</groupId>
+ <artifactId>squirrelsql-test-utils</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <type>pom</type>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>${source-plugin-version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${surefire-plugin-version}</version>
+ <configuration>
+ <parallel>${surefire-parallel-type}</parallel>
+ <threadCount>${surefire-thread-count}</threadCount>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>${jar-plugin-version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>${assembly-plugin-version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>${findbugs-plugin-version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>${pmd-plugin-version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${checkstyle-plugin-version}</version>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <!--
+ Since generating javadoc can be time-consuming, this is not done unless a "javadoc" profile is activated.
+ -->
+ <profile>
+ <id>javadoc</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>${javadoc-plugin-version}</version>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
\ No newline at end of file
Copied: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/DerbyPlugin.java (from rev 5805, trunk/sql12/plugins/derby/src/net/sourceforge/squirrel_sql/plugins/derby/DerbyPlugin.java)
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/DerbyPlugin.java (rev 0)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/DerbyPlugin.java 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,351 @@
+package net.sourceforge.squirrel_sql.plugins.derby;
+
+/*
+ * Copyright (C) 2006 Rob Manning
+ * man...@us...
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+import java.net.MalformedURLException;
+import java.sql.Driver;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import net.sourceforge.squirrel_sql.client.IApplication;
+import net.sourceforge.squirrel_sql.client.plugin.DefaultSessionPlugin;
+import net.sourceforge.squirrel_sql.client.plugin.PluginException;
+import net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManager;
+import net.sourceforge.squirrel_sql.client.plugin.PluginSessionCallback;
+import net.sourceforge.squirrel_sql.client.plugin.PluginSessionCallbackAdaptor;
+import net.sourceforge.squirrel_sql.client.plugin.gui.PluginGlobalPreferencesTab;
+import net.sourceforge.squirrel_sql.client.plugin.gui.PluginQueryTokenizerPreferencesPanel;
+import net.sourceforge.squirrel_sql.client.preferences.IGlobalPreferencesPanel;
+import net.sourceforge.squirrel_sql.client.session.IObjectTreeAPI;
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.client.session.event.SessionAdapter;
+import net.sourceforge.squirrel_sql.client.session.event.SessionEvent;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.expanders.TableWithChildNodesExpander;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.DatabaseObjectInfoTab;
+import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.CellComponentFactory;
+import net.sourceforge.squirrel_sql.fw.dialects.DialectFactory;
+import net.sourceforge.squirrel_sql.fw.gui.GUIUtils;
+import net.sourceforge.squirrel_sql.fw.id.IIdentifier;
+import net.sourceforge.squirrel_sql.fw.sql.DatabaseObjectType;
+import net.sourceforge.squirrel_sql.fw.sql.ISQLDriver;
+import net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager;
+import net.sourceforge.squirrel_sql.fw.util.StringManager;
+import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
+import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
+import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
+import net.sourceforge.squirrel_sql.plugins.derby.exp.DerbyTableTriggerExtractorImpl;
+import net.sourceforge.squirrel_sql.plugins.derby.prefs.DerbyPluginPreferencesPanel;
+import net.sourceforge.squirrel_sql.plugins.derby.prefs.DerbyPreferenceBean;
+import net.sourceforge.squirrel_sql.plugins.derby.tab.ProcedureSourceTab;
+import net.sourceforge.squirrel_sql.plugins.derby.tab.TriggerDetailsTab;
+import net.sourceforge.squirrel_sql.plugins.derby.tab.TriggerSourceTab;
+import net.sourceforge.squirrel_sql.plugins.derby.tab.ViewSourceTab;
+import net.sourceforge.squirrel_sql.plugins.derby.tokenizer.DerbyQueryTokenizer;
+import net.sourceforge.squirrel_sql.plugins.derby.types.DerbyClobDataTypeComponentFactory;
+
+/**
+ * The main controller class for the Derby plugin.
+ *
+ * @author manningr
+ */
+public class DerbyPlugin extends DefaultSessionPlugin {
+
+ private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(DerbyPlugin.class);
+
+ /** Logger for this class. */
+ private final static ILogger s_log = LoggerController.createLogger(DerbyPlugin.class);
+
+ /** API for the Obejct Tree. */
+ private IObjectTreeAPI _treeAPI;
+
+ static interface i18n {
+ //i18n[DerbyPlugin.showViewSource=Show view source]
+ String SHOW_VIEW_SOURCE = s_stringMgr.getString("DerbyPlugin.showViewSource");
+
+ //i18n[DerbyPlugin.showProcedureSource=Show procedure source]
+ String SHOW_PROCEDURE_SOURCE = s_stringMgr.getString("DerbyPlugin.showProcedureSource");
+
+ //i18n[DerbyPlugin.prefsTitle=Derby]
+ String PREFS_TITLE = s_stringMgr.getString("DerbyPlugin.prefsTitle");
+
+ //i18n[DerbyPlugin.prefsHint=Set preferences for Derby Plugin]
+ String PREFS_HINT = s_stringMgr.getString("DerbyPlugin.prefsHint");
+ }
+
+ /** manages our query tokenizing preferences */
+ private PluginQueryTokenizerPreferencesManager _prefsManager = null;
+
+ /**
+ * Return the internal name of this plugin.
+ *
+ * @return the internal name of this plugin.
+ */
+ public String getInternalName() {
+ return "derby";
+ }
+
+ /**
+ * Return the descriptive name of this plugin.
+ *
+ * @return the descriptive name of this plugin.
+ */
+ public String getDescriptiveName() {
+ return "Derby Plugin";
+ }
+
+ /**
+ * Returns the current version of this plugin.
+ *
+ * @return the current version of this plugin.
+ */
+ public String getVersion() {
+ return "0.13";
+ }
+
+ /**
+ * Returns the authors name.
+ *
+ * @return the authors name.
+ */
+ public String getAuthor() {
+ return "Rob Manning";
+ }
+
+ /**
+ * Returns a comma separated list of other contributors.
+ *
+ * @return Contributors names.
+ */
+ public String getContributors() {
+ return "Alex Pivovarov";
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.plugin.IPlugin#getChangeLogFileName()
+ */
+ public String getChangeLogFileName() {
+ return "changes.txt";
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.plugin.IPlugin#getHelpFileName()
+ */
+ public String getHelpFileName() {
+ return "readme.html";
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.plugin.IPlugin#getLicenceFileName()
+ */
+ public String getLicenceFileName() {
+ return "licence.txt";
+ }
+
+ /**
+ * Load this plugin.
+ *
+ * @param app Application API.
+ */
+ public synchronized void load(IApplication app) throws PluginException {
+ super.load(app);
+ }
+
+ /**
+ * Create panel for the Global Properties dialog.
+ *
+ * @return properties panel.
+ */
+ public IGlobalPreferencesPanel[] getGlobalPreferencePanels() {
+ PluginQueryTokenizerPreferencesPanel _prefsPanel = new DerbyPluginPreferencesPanel(_prefsManager);
+
+ PluginGlobalPreferencesTab tab = new PluginGlobalPreferencesTab(_prefsPanel);
+
+ tab.setHint(i18n.PREFS_HINT);
+ tab.setTitle(i18n.PREFS_TITLE);
+
+ return new IGlobalPreferencesPanel[] { tab };
+ }
+
+ /**
+ * Initialize this plugin.
+ */
+ public synchronized void initialize() throws PluginException {
+ super.initialize();
+
+ //Add session ended listener -- needs for Embedded Derby DB
+ _app.getSessionManager().addSessionListener(new SessionListener());
+
+
+
+ _prefsManager = new PluginQueryTokenizerPreferencesManager();
+ _prefsManager.initialize(this, new DerbyPreferenceBean());
+
+ /** Need to do this to pickup user's prefs from file */
+ DerbyPreferenceBean prefBean = (DerbyPreferenceBean) _prefsManager.getPreferences();
+
+ if (prefBean.isReadClobsFully()) {
+ /* Register custom DataTypeComponent factory for Derby CLOB type */
+ CellComponentFactory.registerDataTypeFactory(new DerbyClobDataTypeComponentFactory(),
+ 2005,
+ "CLOB");
+ }
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.plugin.DefaultSessionPlugin#allowsSessionStartedInBackground()
+ */
+ public boolean allowsSessionStartedInBackground() {
+ return true;
+ }
+
+ /**
+ * Session has been started. Update the tree api in using the event thread
+ *
+ * @param session Session that has started.
+ *
+ * @return <TT>true</TT> if session is Oracle in which case this plugin
+ * is interested in it.
+ */
+ public PluginSessionCallback sessionStarted(final ISession session) {
+ if (!isPluginSession(session)) {
+ return null;
+ }
+ if (s_log.isInfoEnabled()) {
+ s_log.info("Installing Derby query tokenizer");
+ }
+ DerbyPreferenceBean prefBean = (DerbyPreferenceBean) _prefsManager.getPreferences();
+ if (prefBean.isInstallCustomQueryTokenizer()) {
+ DerbyQueryTokenizer tokenizer = new DerbyQueryTokenizer(prefBean.getStatementSeparator(),
+ prefBean.getLineComment(),
+ prefBean.isRemoveMultiLineComments());
+ session.setQueryTokenizer(tokenizer);
+ }
+
+ GUIUtils.processOnSwingEventThread(new Runnable() {
+ public void run() {
+ updateTreeApi(session);
+ }
+ });
+
+ return new PluginSessionCallbackAdaptor(this);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.plugin.DefaultSessionPlugin#isPluginSession(net.sourceforge.squirrel_sql.client.session.ISession)
+ */
+ @Override
+ protected boolean isPluginSession(ISession session) {
+ return DialectFactory.isDerby(session.getMetaData());
+ }
+
+ /**
+ * @param session
+ */
+ private void updateTreeApi(ISession session) {
+ DerbyPreferenceBean prefBean = (DerbyPreferenceBean) _prefsManager.getPreferences();
+
+ _treeAPI = session.getSessionInternalFrame().getObjectTreeAPI();
+
+ _treeAPI.addDetailTab(DatabaseObjectType.PROCEDURE,
+ new ProcedureSourceTab(i18n.SHOW_PROCEDURE_SOURCE, prefBean.getStatementSeparator()));
+
+ _treeAPI.addDetailTab(DatabaseObjectType.VIEW,
+ new ViewSourceTab(i18n.SHOW_VIEW_SOURCE));
+
+ //_treeAPI.addDetailTab(DatabaseObjectType.INDEX, new DatabaseObjectInfoTab());
+ //_treeAPI.addDetailTab(DatabaseObjectType.INDEX, new IndexDetailsTab());
+ _treeAPI.addDetailTab(DatabaseObjectType.TRIGGER,
+ new DatabaseObjectInfoTab());
+ _treeAPI.addDetailTab(DatabaseObjectType.TRIGGER_TYPE_DBO,
+ new DatabaseObjectInfoTab());
+ //_treeAPI.addDetailTab(DatabaseObjectType.SEQUENCE, new DatabaseObjectInfoTab());
+ //_treeAPI.addDetailTab(DatabaseObjectType.SEQUENCE, new SequenceDetailsTab());
+
+ // Expanders - trigger and index expanders are added inside the table
+ // expander
+ //_treeAPI.addExpander(DatabaseObjectType.SCHEMA, new SchemaExpander());
+ TableWithChildNodesExpander trigExp = new TableWithChildNodesExpander();
+ trigExp.setTableTriggerExtractor(new DerbyTableTriggerExtractorImpl());
+ _treeAPI.addExpander(DatabaseObjectType.TABLE, trigExp);
+
+ _treeAPI.addDetailTab(DatabaseObjectType.TRIGGER, new TriggerDetailsTab());
+ _treeAPI.addDetailTab(DatabaseObjectType.TRIGGER,
+ new TriggerSourceTab("The source of the trigger"));
+
+ }
+
+ /**
+ * A session listener that shutdown Embedded Derby when session and
+ * connection are already closed
+ *
+ * @author Alex Pivovarov
+ */
+ private class SessionListener extends SessionAdapter {
+ @Override
+ public void sessionClosed(SessionEvent evt) {
+ ISession session = evt.getSession();
+ shutdownEmbeddedDerby(session);
+ }
+ }
+
+ /**
+ * Shutdown Embedded Derby DB and reload JDBC Driver
+ *
+ * @param session
+ * Current session.
+ *
+ * @author Alex Pivovarov
+ */
+ private void shutdownEmbeddedDerby(final ISession session) {
+ try {
+ ISQLDriver iSqlDr = session.getDriver();
+ if (!(iSqlDr.getDriverClassName().startsWith("org.apache.derby.jdbc.EmbeddedDriver"))) {
+ return;
+ }
+ //the code bellow is only for Embedded Derby Driver
+ IIdentifier drId = iSqlDr.getIdentifier();
+ SQLDriverManager sqlDrMan = _app.getSQLDriverManager();
+ //Getting java.sql.Driver to run shutdown command
+ Driver jdbcDr = sqlDrMan.getJDBCDriver(drId);
+ //Shutdown Embedded Derby DB
+ try {
+ jdbcDr.connect("jdbc:derby:;shutdown=true", new Properties());
+ } catch (SQLException e) {
+ //it is always thrown as said in Embedded Derby API.
+ //So it is not error it is info
+ s_log.info(e.getMessage());
+ }
+ //Re-registering driver is necessary for Embedded Derby
+ sqlDrMan.registerSQLDriver(iSqlDr);
+ } catch (RuntimeException e) {
+ s_log.error(e.getMessage(),e);
+ } catch (MalformedURLException e) {
+ s_log.error(e.getMessage(),e);
+ } catch (IllegalAccessException e) {
+ s_log.error(e.getMessage(),e);
+ } catch (InstantiationException e) {
+ s_log.error(e.getMessage(),e);
+ } catch (ClassNotFoundException e) {
+ s_log.error(e.getMessage(),e);
+ }
+ }
+
+
+}
Copied: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/exp/DerbyTableTriggerExtractorImpl.java (from rev 5805, trunk/sql12/plugins/derby/src/net/sourceforge/squirrel_sql/plugins/derby/exp/DerbyTableTriggerExtractorImpl.java)
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/exp/DerbyTableTriggerExtractorImpl.java (rev 0)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/exp/DerbyTableTriggerExtractorImpl.java 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2007 Rob Manning
+ * man...@us...
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package net.sourceforge.squirrel_sql.plugins.derby.exp;
+
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.expanders.ITableTriggerExtractor;
+import net.sourceforge.squirrel_sql.fw.sql.IDatabaseObjectInfo;
+import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
+import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
+
+/**
+ * Provides the query and parameter binding behavior for Derby's trigger catalog.
+ *
+ * @author manningr
+ */
+public class DerbyTableTriggerExtractorImpl implements ITableTriggerExtractor {
+
+ /** Logger for this class */
+ private final static ILogger s_log =
+ LoggerController.createLogger(DerbyTableTriggerExtractorImpl.class);
+
+ /** The query that finds the triggers for a given table */
+ private static String SQL =
+ "select tr.TRIGGERNAME " +
+ "from SYS.SYSTRIGGERS tr, SYS.SYSTABLES t, SYS.SYSSCHEMAS s " +
+ "where tr.TABLEID = t.TABLEID " +
+ "and s.SCHEMAID = t.SCHEMAID " +
+ "and t.TABLENAME = ? " +
+ "and s.SCHEMANAME = ? ";
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.expanders.ITableTriggerExtractor#bindParamters(java.sql.PreparedStatement, net.sourceforge.squirrel_sql.fw.sql.IDatabaseObjectInfo)
+ */
+ public void bindParamters(PreparedStatement pstmt, IDatabaseObjectInfo dbo)
+ throws SQLException
+ {
+ if (s_log.isDebugEnabled()) {
+ s_log.debug("Binding table name "+dbo.getSimpleName()+
+ " as first bind value");
+ s_log.debug("Binding schema name "+dbo.getSchemaName()+
+ " as second bind value");
+ }
+ pstmt.setString(1, dbo.getSimpleName());
+ pstmt.setString(2, dbo.getSchemaName());
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.expanders.ITableTriggerExtractor#getTableTriggerQuery()
+ */
+ public String getTableTriggerQuery() {
+ return SQL;
+ }
+
+}
Copied: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPluginPreferencesPanel.java (from rev 5805, trunk/sql12/plugins/derby/src/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPluginPreferencesPanel.java)
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPluginPreferencesPanel.java (rev 0)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPluginPreferencesPanel.java 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2007 Rob Manning
+ * man...@us...
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package net.sourceforge.squirrel_sql.plugins.derby.prefs;
+
+import java.awt.GridBagConstraints;
+import java.awt.Insets;
+
+import javax.swing.JCheckBox;
+import javax.swing.JPanel;
+
+import net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManager;
+import net.sourceforge.squirrel_sql.client.plugin.gui.PluginQueryTokenizerPreferencesPanel;
+import net.sourceforge.squirrel_sql.fw.preferences.IQueryTokenizerPreferenceBean;
+import net.sourceforge.squirrel_sql.fw.util.StringManager;
+import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
+
+
+/**
+ * Adds the preference widget for allowing the user to specify whether or not
+ * Derby extended CLOB support should be enabled.
+ *
+ * @author manningr
+ */
+public class DerbyPluginPreferencesPanel extends
+ PluginQueryTokenizerPreferencesPanel {
+
+
+ private static final long serialVersionUID = 1L;
+
+ /** Internationalized strings for this class. */
+ private static final StringManager s_stringMgr =
+ StringManagerFactory.getStringManager(DerbyPluginPreferencesPanel.class);
+
+ static interface i18n {
+
+ //i18n[DerbyPluginPreferencesPanel.readClobsFullyCheckBoxLabel=Enable
+ //extended Derby CLOB support]
+ String READ_DERBY_CLOBS_FULLY_LABEL =
+ s_stringMgr.getString("DerbyPluginPreferencesPanel.readClobsFullyCheckBoxLabel");
+
+ //i18n[OraclePluginPreferencesPanel.readClobsFullyCheckBoxTT=Read all
+ //CLOB data when the Contents tab is displayed]
+ String READ_DERBY_CLOBS_FULLY_TT =
+ s_stringMgr.getString("DerbyPluginPreferencesPanel.readClobsFullyCheckBoxTT");
+
+ }
+
+ /** The checkbox for specifying exclusion of recycle bin tables */
+ private final static JCheckBox readClobsFullyCheckBox =
+ new JCheckBox(i18n.READ_DERBY_CLOBS_FULLY_LABEL);
+
+
+ /**
+ * Construct a new PreferencesPanel.
+ * @param prefs
+ * @param databaseName
+ */
+ public DerbyPluginPreferencesPanel(PluginQueryTokenizerPreferencesManager prefsMgr)
+ {
+ super(prefsMgr, "Derby");
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.plugin.gui.PluginQueryTokenizerPreferencesPanel#createTopPanel()
+ */
+ @Override
+ protected JPanel createTopPanel() {
+ JPanel result = super.createTopPanel();
+ int lastY = super.lastY;
+ addReadClobsFullyCheckBox(result, 0, lastY++);
+ return result;
+ }
+
+ private void addReadClobsFullyCheckBox(JPanel result, int col, int row) {
+ GridBagConstraints c = new GridBagConstraints();
+ c.gridx = col;
+ c.gridy = row;
+ c.gridwidth = 2; // Span across two columns
+ c.anchor = GridBagConstraints.WEST;
+ c.insets = new Insets(5,5,0,0);
+ readClobsFullyCheckBox.setToolTipText(i18n.READ_DERBY_CLOBS_FULLY_TT);
+ result.add(readClobsFullyCheckBox, c);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.plugin.gui.PluginQueryTokenizerPreferencesPanel#loadData()
+ */
+ @Override
+ protected void loadData() {
+ super.loadData();
+ IQueryTokenizerPreferenceBean prefs = _prefsManager.getPreferences();
+ DerbyPreferenceBean derbyPrefs = (DerbyPreferenceBean)prefs;
+ readClobsFullyCheckBox.setSelected(derbyPrefs.isReadClobsFully());
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.plugin.gui.PluginQueryTokenizerPreferencesPanel#save()
+ */
+ @Override
+ protected void save() {
+ IQueryTokenizerPreferenceBean prefs = _prefsManager.getPreferences();
+ DerbyPreferenceBean derbyPrefs = (DerbyPreferenceBean)prefs;
+ derbyPrefs.setReadClobsFully(readClobsFullyCheckBox.isSelected());
+ super.save();
+ }
+
+
+
+
+}
Copied: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPreferenceBean.java (from rev 5805, trunk/sql12/plugins/derby/src/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPreferenceBean.java)
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPreferenceBean.java (rev 0)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/prefs/DerbyPreferenceBean.java 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2007 Rob Manning
+ * man...@us...
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package net.sourceforge.squirrel_sql.plugins.derby.prefs;
+
+import java.io.Serializable;
+
+import net.sourceforge.squirrel_sql.fw.preferences.BaseQueryTokenizerPreferenceBean;
+
+/**
+ * A preference bean for the Derby plugin.
+ *
+ * @author manningr
+ */
+public class DerbyPreferenceBean extends BaseQueryTokenizerPreferenceBean implements Cloneable, Serializable {
+
+ static final long serialVersionUID = 5818886723165356478L;
+
+ private boolean readClobsFully = true;
+
+ public DerbyPreferenceBean() {
+ super();
+ statementSeparator = ";";
+ procedureSeparator = "/";
+ lineComment = "--";
+ removeMultiLineComments = false;
+ readClobsFully = true;
+ installCustomQueryTokenizer = true;
+ }
+
+ /**
+ * @return the readClobsFully
+ */
+ public boolean isReadClobsFully() {
+ return readClobsFully;
+ }
+
+ /**
+ * @param readClobsFully the readClobsFully to set
+ */
+ public void setReadClobsFully(boolean readClobsFully) {
+ this.readClobsFully = readClobsFully;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.preferences.BaseQueryTokenizerPreferenceBean#clone()
+ */
+ @Override
+ protected DerbyPreferenceBean clone()
+ {
+ return (DerbyPreferenceBean)super.clone();
+ }
+
+
+}
Copied: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/ProcedureSourceTab.java (from rev 5805, trunk/sql12/plugins/derby/src/net/sourceforge/squirrel_sql/plugins/derby/tab/ProcedureSourceTab.java)
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/ProcedureSourceTab.java (rev 0)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/ProcedureSourceTab.java 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,55 @@
+package net.sourceforge.squirrel_sql.plugins.derby.tab;
+
+/*
+ * Copyright (C) 2009 Glenn Hobbs
+ * bas...@us...
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.FormattedSourceTab;
+
+public class ProcedureSourceTab extends FormattedSourceTab {
+
+ private static String SQL =
+ "SELECT " +
+ "'CREATE PROCEDURE '||SCHEMAA.SCHEMANAME||'.'||ALIAS.ALIAS||'\n '|| SUBSTR " +
+ "( " +
+ " CAST(ALIASINFO AS VARCHAR(4000)),LOCATE('(',CAST(ALIASINFO AS VARCHAR(4000))) " +
+ ") " +
+ "||'\n '|| 'EXTERNAL NAME '''||ALIAS.JAVACLASSNAME||'.'||SUBSTR " +
+ "( " +
+ " CAST(ALIASINFO AS VARCHAR(4000)), " +
+ " 1, " +
+ " LOCATE('(',CAST(ALIASINFO AS VARCHAR(4000)))-1 " +
+ ") " +
+ "||'''' " +
+ "FROM SYS.SYSALIASES ALIAS, SYS.SYSSCHEMAS SCHEMAA " +
+ "WHERE ALIAS.SCHEMAID = SCHEMAA.SCHEMAID " +
+ "and SCHEMAA.SCHEMANAME = ? " +
+ "AND ALIAS = ? ";
+
+ public ProcedureSourceTab(String hint, String stmtSep) {
+ super(hint);
+ super.setupFormatter(stmtSep, null);
+ }
+
+ @Override
+ protected String getSqlStatement()
+ {
+ return SQL;
+ }
+
+}
Copied: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerDetailsTab.java (from rev 5805, trunk/sql12/plugins/derby/src/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerDetailsTab.java)
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerDetailsTab.java (rev 0)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerDetailsTab.java 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,102 @@
+package net.sourceforge.squirrel_sql.plugins.derby.tab;
+/*
+ * Copyright (C) 2006 Rob Manning
+ * man...@us...
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BasePreparedStatementTab;
+import net.sourceforge.squirrel_sql.fw.sql.IDatabaseObjectInfo;
+import net.sourceforge.squirrel_sql.fw.util.StringManager;
+import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
+import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
+import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
+/**
+ * This class will display the details for a Derby trigger.
+ *
+ * @author manningr
+ */
+public class TriggerDetailsTab extends BasePreparedStatementTab
+{
+ private static final StringManager s_stringMgr =
+ StringManagerFactory.getStringManager(TriggerDetailsTab.class);
+
+
+ /**
+ * This interface defines locale specific strings. This should be
+ * replaced with a property file.
+ */
+ private interface i18n
+ {
+ // i18n[TriggerDetailsTab.title=Details]
+ String TITLE = s_stringMgr.getString("TriggerDetailsTab.title");
+ // i18n[TriggerDetailsTab.hint=Display trigger details]
+ String HINT = s_stringMgr.getString("TriggerDetailsTab.hint");
+ }
+
+ /** SQL that retrieves the data. */
+ private static String SQL =
+ "select tr.TRIGGERNAME AS name, " +
+ " sc.SCHEMANAME AS schemaname, " +
+ " tr.CREATIONTIMESTAMP AS createtime, " +
+ " CASE " +
+ " WHEN tr.EVENT='U' THEN 'UPDATE' " +
+ " WHEN tr.EVENT='D' THEN 'DELETE' " +
+ " WHEN tr.EVENT='I' THEN 'INSERT' " +
+ " END AS event, " +
+ " CASE " +
+ " WHEN tr.FIRINGTIME='B' THEN 'BEFORE' " +
+ " WHEN tr.FIRINGTIME='A' THEN 'AFTER' " +
+ " END AS firingtime, " +
+ " CASE " +
+ " WHEN tr.TYPE='R' THEN 'ROW' " +
+ " WHEN tr.TYPE='S' THEN 'STATEMENT' " +
+ " END AS type, " +
+ " t.TABLENAME AS TABLENAME " +
+ "from SYS.SYSTRIGGERS tr, SYS.SYSSCHEMAS sc, SYS.SYSTABLES t " +
+ "where TRIGGERNAME = ? " +
+ "and sc.SCHEMANAME = ? " +
+ "and tr.SCHEMAID = sc.SCHEMAID " +
+ "and tr.TABLEID = t.TABLEID ";
+
+ /** Logger for this class. */
+ private final static ILogger s_log =
+ LoggerController.createLogger(TriggerDetailsTab.class);
+
+ public TriggerDetailsTab()
+ {
+ super(i18n.TITLE, i18n.HINT, true);
+ }
+
+ protected PreparedStatement createStatement() throws SQLException
+ {
+ ISession session = getSession();
+ IDatabaseObjectInfo doi = getDatabaseObjectInfo();
+ if (s_log.isDebugEnabled()) {
+ s_log.debug("Trigger details SQL: "+SQL);
+ s_log.debug("Trigger name: "+doi.getSimpleName());
+ s_log.debug("Trigger schema: "+doi.getSchemaName());
+ }
+ PreparedStatement pstmt = session.getSQLConnection().prepareStatement(SQL);
+ pstmt.setString(1, doi.getSimpleName());
+ pstmt.setString(2, doi.getSchemaName());
+ return pstmt;
+ }
+}
Copied: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerSourceTab.java (from rev 5805, trunk/sql12/plugins/derby/src/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerSourceTab.java)
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerSourceTab.java (rev 0)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerSourceTab.java 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,82 @@
+package net.sourceforge.squirrel_sql.plugins.derby.tab;
+
+/*
+ * Copyright (C) 2006 Rob Manning
+ * man...@us...
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab;
+import net.sourceforge.squirrel_sql.fw.sql.IDatabaseObjectInfo;
+import net.sourceforge.squirrel_sql.fw.sql.ISQLConnection;
+import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
+import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
+
+/**
+ * This class will display the source for a Derby trigger.
+ *
+ * @author manningr
+ */
+public class TriggerSourceTab extends BaseSourceTab
+{
+ /** SQL that retrieves the source of a stored procedure. */
+ private static String SQL = "select 'CREATE TRIGGER ' || t.TRIGGERNAME||' \n' " + " ||(select "
+ + " CASE " + " WHEN t3.FIRINGTIME='B' THEN 'BEFORE' "
+ + " WHEN t3.FIRINGTIME='A' THEN 'AFTER' " + " END "
+ + " from SYS.SYSTRIGGERS t3 " + " where t.TRIGGERID = t3.TRIGGERID) " + " || ' ' "
+ + " ||(select CASE " + " WHEN t2.EVENT='U' THEN 'UPDATE' "
+ + " WHEN t2.EVENT='D' THEN 'DELETE' " + " WHEN t2.EVENT='I' THEN 'INSERT' "
+ + " END " + " from SYS.SYSTRIGGERS t2 " + " where t.TRIGGERID = t2.TRIGGERID) "
+ + " ||' ON ' " + " || ta.TABLENAME || ' \n'" + " ||(select " + " CASE "
+ + " WHEN t4.REFERENCINGOLD = 0 THEN '' " + " WHEN t4.REFERENCINGOLD = 1 "
+ + " THEN ' REFERENCING OLD AS ' || t4.OLDREFERENCINGNAME || ' \n'" + " END "
+ + " from SYS.SYSTRIGGERS t4 " + " where t.TRIGGERID = t4.TRIGGERID) "
+ + " ||(select " + " CASE " + " WHEN t5.REFERENCINGNEW = 0 THEN '' "
+ + " WHEN t5.REFERENCINGNEW = 1 "
+ + " THEN ' REFERENCING NEW AS ' || t5.NEWREFERENCINGNAME || ' \n'" + " END "
+ + " from SYS.SYSTRIGGERS t5 " + " where t.TRIGGERID = t5.TRIGGERID) "
+ + " ||' FOR EACH ROW MODE DB2SQL \n' " + " || t.triggerdefinition "
+ + "from SYS.SYSTRIGGERS t, SYS.SYSTABLES ta, SYS.SYSSCHEMAS s " + "where t.TABLEID = ta.TABLEID "
+ + "and s.SCHEMAID = t.SCHEMAID " + "and t.TRIGGERNAME = ? " + "and s.SCHEMANAME = ? ";
+
+ /** Logger for this class. */
+ private final static ILogger s_log = LoggerController.createLogger(TriggerSourceTab.class);
+
+ public TriggerSourceTab(String hint) {
+ super(hint);
+ }
+
+ protected PreparedStatement createStatement() throws SQLException
+ {
+ final ISession session = getSession();
+ final IDatabaseObjectInfo doi = getDatabaseObjectInfo();
+
+ if (s_log.isDebugEnabled())
+ {
+ s_log.debug("Running SQL: " + SQL);
+ s_log.debug("Trigger Name=" + doi.getSimpleName());
+ s_log.debug("Schema Name=" + doi.getSchemaName());
+ }
+ ISQLConnection conn = session.getSQLConnection();
+ PreparedStatement pstmt = conn.prepareStatement(SQL);
+ pstmt.setString(1, doi.getSimpleName());
+ pstmt.setString(2, doi.getSchemaName());
+ return pstmt;
+ }
+}
Copied: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/ViewSourceTab.java (from rev 5805, trunk/sql12/plugins/derby/src/net/sourceforge/squirrel_sql/plugins/derby/tab/ViewSourceTab.java)
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/ViewSourceTab.java (rev 0)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/ViewSourceTab.java 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,70 @@
+package net.sourceforge.squirrel_sql.plugins.derby.tab;
+/*
+ * Copyright (C) 2006 Rob Manning
+ * man...@us...
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab;
+import net.sourceforge.squirrel_sql.fw.sql.IDatabaseObjectInfo;
+import net.sourceforge.squirrel_sql.fw.sql.ISQLConnection;
+import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
+import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
+/**
+ * This class will display the source for an Derby view.
+ *
+ * @author manningr
+ */
+public class ViewSourceTab extends BaseSourceTab
+{
+ /** SQL that retrieves the source of a stored procedure. */
+ private static String SQL =
+ "select v.VIEWDEFINITION " +
+ "from sys.SYSVIEWS v, sys.SYSTABLES t, sys.SYSSCHEMAS s " +
+ "where v.TABLEID = t.TABLEID " +
+ "and s.SCHEMAID = t.SCHEMAID " +
+ "and t.TABLENAME = ? " +
+ "and s.SCHEMANAME = ? ";
+
+ /** Logger for this class. */
+ private final static ILogger s_log =
+ LoggerController.createLogger(ViewSourceTab.class);
+
+ public ViewSourceTab(String hint)
+ {
+ super(hint);
+ }
+
+ protected PreparedStatement createStatement() throws SQLException
+ {
+ final ISession session = getSession();
+ final IDatabaseObjectInfo doi = getDatabaseObjectInfo();
+
+ ISQLConnection conn = session.getSQLConnection();
+ if (s_log.isDebugEnabled()) {
+ s_log.debug("Running View Source SQL: "+SQL);
+ s_log.debug("View Name="+doi.getSimpleName());
+ s_log.debug("Schema Name="+doi.getSchemaName());
+ }
+ PreparedStatement pstmt = conn.prepareStatement(SQL);
+ pstmt.setString(1, doi.getSimpleName()); // view name
+ pstmt.setString(2, doi.getSchemaName()); // schema name
+ return pstmt;
+ }
+}
Copied: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tokenizer/DerbyQueryTokenizer.java (from rev 5805, trunk/sql12/plugins/derby/src/net/sourceforge/squirrel_sql/plugins/derby/tokenizer/DerbyQueryTokenizer.java)
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tokenizer/DerbyQueryTokenizer.java (rev 0)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tokenizer/DerbyQueryTokenizer.java 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,70 @@
+package net.sourceforge.squirrel_sql.plugins.derby.tokenizer;
+/*
+ * Copyright (C) 2007 Rob Manning
+ * man...@us...
+ *
+ * Based on initial work from Johan Compagner.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+import net.sourceforge.squirrel_sql.fw.sql.IQueryTokenizer;
+import net.sourceforge.squirrel_sql.fw.sql.ITokenizerFactory;
+import net.sourceforge.squirrel_sql.fw.sql.QueryTokenizer;
+
+/**
+ * This class is loaded by the Derby Plugin and registered with all Derby
+ * Sessions as the query tokenizer if the plugin is loaded. It handles some
+ * of the syntax allowed in ij scripts that would be hard to parse in a
+ * generic way for any database. Specifically, it handles "run 'script'"
+ * commands which
+ *
+ * @author manningr
+ */
+public class DerbyQueryTokenizer extends QueryTokenizer implements IQueryTokenizer
+{
+ private static final String DERBY_SCRIPT_INCLUDE_PREFIX = "run ";
+
+ public DerbyQueryTokenizer(String sep,
+ String linecomment,
+ boolean removeMultiLineComment)
+ {
+ super(sep, linecomment, removeMultiLineComment);
+ }
+
+ public void setScriptToTokenize(String script) {
+ super.setScriptToTokenize(script);
+
+ expandFileIncludes(DERBY_SCRIPT_INCLUDE_PREFIX);
+
+ _queryIterator = _queries.iterator();
+ }
+
+ /**
+ * Sets the ITokenizerFactory which is used to create additional instances
+ * of the IQueryTokenizer - this is used for handling file includes
+ * recursively.
+ */
+ protected void setFactory() {
+ _tokenizerFactory = new ITokenizerFactory() {
+ public IQueryTokenizer getTokenizer() {
+ return new DerbyQueryTokenizer(
+ DerbyQueryTokenizer.this._querySep,
+ DerbyQueryTokenizer.this._lineCommentBegin,
+ DerbyQueryTokenizer.this._removeMultiLineComment);
+ }
+ };
+ }
+
+}
Copied: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/types/DerbyClobDataTypeComponent.java (from rev 5805, trunk/sql12/plugins/derby/src/net/sourceforge/squirrel_sql/plugins/derby/types/DerbyClobDataTypeComponent.java)
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/types/DerbyClobDataTypeComponent.java (rev 0)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/types/DerbyClobDataTypeComponent.java 2010-08-21 17:38:39 UTC (rev 5812)
@@ -0,0 +1,621 @@
+package net.sourceforge.squirrel_sql.plugins.derby.types;
+
+/*
+ * Copyright (C) 2001-2004 Colin Bell
+ * co...@us...
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.StringReader;
+import java.sql.Clob;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
+import javax.swing.text.JTextComponent;
+
+import net.sourceforge.squirrel_sql.fw.datasetviewer.CellDataPopup;
+import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition;
+import net.sourceforge.squirrel_sql....
[truncated message content] |