User: mnf999
Date: 01/08/29 19:37:56
Modified: varia/src/main/org/jboss/jdbc HypersonicDatabase.java
HypersonicDatabaseMBean.java InstantDBDatabase.java
InstantDBDatabaseMBean.java
Log:
working from http installs correctly
Revision Changes Path
1.2 +190 -169 contrib/varia/src/main/org/jboss/jdbc/HypersonicDatabase.java
Index: HypersonicDatabase.java
===================================================================
RCS file:
/cvsroot/jboss/contrib/varia/src/main/org/jboss/jdbc/HypersonicDatabase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HypersonicDatabase.java 2001/08/01 00:39:59 1.1
+++ HypersonicDatabase.java 2001/08/30 02:37:56 1.2
@@ -1,10 +1,10 @@
/*
- * JBoss, the OpenSource EJB server
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-
+* JBoss, the OpenSource EJB server
+*
+* Distributable under LGPL license.
+* See terms of license at gnu.org.
+*/
+
package org.jboss.jdbc;
import java.io.File;
@@ -22,171 +22,192 @@
import org.hsql.Server;
import org.jboss.logging.Log;
-import org.jboss.util.ServiceMBeanSupport;
+import org.jboss.system.URLClassLoader;
+import org.jboss.system.ServiceMBeanSupport;
/**
- * Integration with Hypersonic SQL (http://hsql.oron.ch/). Starts a Hypersonic
database in-VM.
- *
- * @see HypersonicDatabaseMBean
- * @author <a href="mailto:[EMAIL PROTECTED]">Rickard �berg</a>
- * @author <a href="mailto:[EMAIL PROTECTED]">Scott Stark</a>.
- * @author Peter Fagerlund [EMAIL PROTECTED] @see stopService()
- * @version $Revision: 1.1 $
- */
+* Integration with Hypersonic SQL (http://hsql.oron.ch/). Starts a Hypersonic
database in-VM.
+*
+* @see HypersonicDatabaseMBean
+* @author <a href="mailto:[EMAIL PROTECTED]">Rickard �berg</a>
+* @author <a href="mailto:[EMAIL PROTECTED]">Scott Stark</a>.
+* @author Peter Fagerlund [EMAIL PROTECTED] @see stopService()
+* @version $Revision: 1.2 $
+*/
public class HypersonicDatabase
- extends ServiceMBeanSupport
- implements HypersonicDatabaseMBean, MBeanRegistration
+extends ServiceMBeanSupport
+implements HypersonicDatabaseMBean, MBeanRegistration
{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
- Thread runner;
- Process proc;
- MBeanServer server;
-
- String name = "jboss"; // Database name will be appended to "<db.properties
location>/hypersonic/"
- int port = 1476; // Default port
- boolean silent = false;
- boolean trace = true;
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
- public HypersonicDatabase()
- {
- }
-
- // Public --------------------------------------------------------
- // Settings
- public void setDatabase(String name)
- {
- this.name = name;
- }
-
- public String getDatabase()
- {
- return name;
- }
-
- public void setPort(int port)
- {
- this.port = port;
- }
-
- public int getPort()
- {
- return port;
- }
-
- public void setSilent(boolean silent)
- {
- this.silent = silent;
- }
-
- public boolean getSilent()
- {
- return silent;
- }
-
- public void setTrace(boolean trace)
- {
- this.trace = trace;
- }
-
- public boolean getTrace()
- {
- return trace;
- }
-
- public ObjectName getObjectName(MBeanServer server, ObjectName name)
- throws javax.management.MalformedObjectNameException
- {
- this.server = server;
- return name == null ? new ObjectName(OBJECT_NAME) : name;
- }
-
- public String getName()
- {
- return "Hypersonic";
- }
-
- public void startService()
- throws Exception
- {
- // Start DB in new thread, or else it will block us
- runner = new Thread(new Runnable()
- {
- public void run()
- {
- // Get DB directory
- URL dbLocator = this.getClass().getResource("/db.properties");
- File dbDir = new File(dbLocator.getFile()).getParentFile();
- File dbName = new File(dbDir, "hypersonic/"+name);
-
- // Create startup arguments
- String[] args = new String[]
- {
- "-database", dbName.toString(),
- "-port", port+"",
- "-silent", silent+"",
- "-trace", trace+""
- };
-
- // Start server
- org.hsql.Server.main(args);
- }
- });
-
- // Wait for startup message
- runner.start();
- log.log("Database started");
- }
-
- /**
- * @author Peter Fagerlund [EMAIL PROTECTED]
- *
- * We now close the connection clean by calling the
- * serverSocket throught jdbc. The MBeanServer calls
- * this method at closing time
- */
- public void stopService()
- {
- Connection connection;
- Statement statement;
-
- String cmd = "SHUTDOWN";
- String jdbcDriver = "org.hsql.jdbcDriver";
- String dbStrVersion_1_4 = "jdbc:HypersonicSQL:hsql://localhost:"+port;
- String dbStrVersion_1_6 = "jdbc:hsqldb:hsql://localhost:"+port;
- String user = "sa";
- String password = "";
-
- try
- {
- new org.hsql.jdbcDriver();
- Class.forName(jdbcDriver).newInstance();
- connection=DriverManager.getConnection(dbStrVersion_1_4, user,
password);
- statement=connection.createStatement();
- statement.executeQuery(cmd);
-
- log.log("Database closed clean");
- return;
-
- } catch(ClassNotFoundException cnfe)
- {
- log.log("ClassNotFound " + cnfe.getMessage());
- } catch(IllegalAccessException iae)
- {
- log.log("Illegal Access " + iae.getMessage());
- } catch(InstantiationException ie)
- {
- log.log("Instantiation " + ie.getMessage());
- } catch(SQLException sqle)
- {
- log.log("SQL " + sqle.getMessage());
- }
- log.log("Database unable to close clean");
- }
-
- // Protected -----------------------------------------------------
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+ Thread runner;
+ Process proc;
+ MBeanServer server;
+
+ String name = "jboss"; // Database name will be appended to "<db.properties
location>/hypersonic/"
+ int port = 1476; // Default port
+ boolean silent = true;
+ boolean trace = false;
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+ public HypersonicDatabase()
+ {
+ }
+
+ // Public --------------------------------------------------------
+ // Settings
+ public void setDatabase(String name)
+ {
+ this.name = name;
+ }
+
+ public String getDatabase()
+ {
+ return name;
+ }
+
+ public void setPort(int port)
+ {
+ this.port = port;
+ }
+
+ public int getPort()
+ {
+ return port;
+ }
+
+ public void setSilent(boolean silent)
+ {
+ this.silent = silent;
+ }
+
+ public boolean getSilent()
+ {
+ return silent;
+ }
+
+ public void setTrace(boolean trace)
+ {
+ this.trace = trace;
+ }
+
+ public boolean getTrace()
+ {
+ return trace;
+ }
+
+ public ObjectName getObjectName(MBeanServer server, ObjectName name)
+ throws javax.management.MalformedObjectNameException
+ {
+ this.server = server;
+ return name == null ? new ObjectName(OBJECT_NAME) : name;
+ }
+
+ public String getName()
+ {
+ return "Hypersonic";
+ }
+
+ public void startService()
+ throws Exception
+ {
+
+
+ // Start DB in new thread, or else it will block us
+ runner = new Thread(new Runnable()
+ {
+ public void run()
+ {
+ try {
+ // Get DB directory
+ File jbossHomeDir = new
File(System.getProperty("jboss.system.home"));
+ File dbName = new File(jbossHomeDir,
"db"+File.separator+
+ "hypersonic"+File.separator+
+ name);
+
+ // Create startup arguments
+ String[] args = new String[]
+ {
+ "-database", dbName.toString(),
+ "-port", port+"",
+ "-silent", silent+"",
+ "-trace", trace+""
+ };
+
+ // Start server
+ org.hsql.Server.main(args);
+
+ } catch (Exception e) {e.printStackTrace();}
+ }
+ });
+
+
+
+ // Wait for startup message
+ runner.start();
+
+ // We wait for the database to boot, if there is a problem with the
database we are hosed
+ // FIXME marcf HOW CAN WE BE NOTIFIED OF THE BOOT OF HSQL?? TALK TO
GABOR LITPAK??
+
+ synchronized (this) {
+ System.out.println("About to wait 5 seconds for hypersonic to
start");
+ try { Thread.yield(); wait(5000);} catch (Exception e)
{e.printStackTrace();}
+ }
+ log.log("Database started");
+
+ }
+
+ /**
+ * @author Peter Fagerlund [EMAIL PROTECTED]
+ *
+ * marcf FIXME: it doesn't seem to work very well on Linux...
+ * is there a way to hack the hsql to get a more tight control over the
shutdown
+ *
+ * We now close the connection clean by calling the
+ * serverSocket throught jdbc. The MBeanServer calls
+ * this method at closing time
+ */
+ public void stopService()
+ {
+ Connection connection;
+ Statement statement;
+
+ String cmd = "SHUTDOWN";
+ String jdbcDriver = "org.hsql.jdbcDriver";
+ String dbStrVersion_1_4 = "jdbc:HypersonicSQL:hsql://localhost:"+port;
+ String dbStrVersion_1_6 = "jdbc:hsqldb:hsql://localhost:"+port;
+ String user = "sa";
+ String password = "";
+
+ try
+ {
+ new org.hsql.jdbcDriver();
+ Class.forName(jdbcDriver).newInstance();
+ connection=DriverManager.getConnection(dbStrVersion_1_4, user,
password);
+ statement=connection.createStatement();
+ statement.executeQuery(cmd);
+
+ log.log("Database closed clean");
+ return;
+
+ } catch(ClassNotFoundException cnfe)
+ {
+ log.log("ClassNotFound " + cnfe.getMessage());
+ } catch(IllegalAccessException iae)
+ {
+ log.log("Illegal Access " + iae.getMessage());
+ } catch(InstantiationException ie)
+ {
+ log.log("Instantiation " + ie.getMessage());
+ } catch(SQLException sqle)
+ {
+ log.log("SQL error" + sqle.getMessage());
+ }
+ log.log("Database unable to close clean");
+ }
+
+ // Protected -----------------------------------------------------
}
1.2 +2 -2
contrib/varia/src/main/org/jboss/jdbc/HypersonicDatabaseMBean.java
Index: HypersonicDatabaseMBean.java
===================================================================
RCS file:
/cvsroot/jboss/contrib/varia/src/main/org/jboss/jdbc/HypersonicDatabaseMBean.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HypersonicDatabaseMBean.java 2001/08/01 00:39:59 1.1
+++ HypersonicDatabaseMBean.java 2001/08/30 02:37:56 1.2
@@ -12,10 +12,10 @@
*
* @see <related>
* @author <a href="mailto:[EMAIL PROTECTED]">Rickard �berg</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public interface HypersonicDatabaseMBean
- extends org.jboss.util.ServiceMBean
+ extends org.jboss.system.ServiceMBean
{
// Constants -----------------------------------------------------
public static final String OBJECT_NAME = ":service=Hypersonic";
1.2 +2 -2 contrib/varia/src/main/org/jboss/jdbc/InstantDBDatabase.java
Index: InstantDBDatabase.java
===================================================================
RCS file:
/cvsroot/jboss/contrib/varia/src/main/org/jboss/jdbc/InstantDBDatabase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InstantDBDatabase.java 2001/08/01 00:39:59 1.1
+++ InstantDBDatabase.java 2001/08/30 02:37:56 1.2
@@ -19,14 +19,14 @@
import javax.sql.DataSource;
import org.jboss.logging.Log;
-import org.jboss.util.ServiceMBeanSupport;
+import org.jboss.system.ServiceMBeanSupport;
/**
* <description>
*
* @see <related>
* @author <a href="mailto:[EMAIL PROTECTED]">Rickard �berg</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class InstantDBDatabase
extends ServiceMBeanSupport
1.2 +2 -2
contrib/varia/src/main/org/jboss/jdbc/InstantDBDatabaseMBean.java
Index: InstantDBDatabaseMBean.java
===================================================================
RCS file:
/cvsroot/jboss/contrib/varia/src/main/org/jboss/jdbc/InstantDBDatabaseMBean.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InstantDBDatabaseMBean.java 2001/08/01 00:39:59 1.1
+++ InstantDBDatabaseMBean.java 2001/08/30 02:37:56 1.2
@@ -12,10 +12,10 @@
*
* @see <related>
* @author <a href="mailto:[EMAIL PROTECTED]">Rickard �berg</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public interface InstantDBDatabaseMBean
- extends org.jboss.util.ServiceMBean
+ extends org.jboss.system.ServiceMBean
{
// Constants -----------------------------------------------------
public static final String OBJECT_NAME = ":service=InstantDB";
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development